diff options
| author | Srinivasan Shanmugam <srinivasan.shanmugam@amd.com> | 2025-08-20 16:17:52 +0530 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2025-09-09 16:18:34 -0400 | 
| commit | 11aaec3566480e6cde0edb8e663c4b5ee32318f5 (patch) | |
| tree | 7d437534c43b7496d7bdf089f531f78d6085ce5b /drivers/gpu | |
| parent | 357fe94b66f851c8824415d0168a8a72c4778698 (diff) | |
drm/amdgpu: Wire up MMIO_REMAP placement and User-visible strings
Wire up the conversions and strings for the new MMIO_REMAP placement:
* amdgpu_mem_type_to_domain() maps AMDGPU_PL_MMIO_REMAP -> domain
* amdgpu_bo_placement_from_domain() accepts the new domain
* amdgpu_bo_mem_stats_placement() and amdgpu_bo_print_info() report it
* res cursor supports the new placement
* fdinfo prints "mmioremap" for the new placement
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h | 2 | 
4 files changed, 18 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c index 91d638098889..b349bb3676d5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c @@ -70,6 +70,7 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)  		[AMDGPU_PL_GWS] = "gws",  		[AMDGPU_PL_OA] = "oa",  		[AMDGPU_PL_DOORBELL] = "doorbell", +		[AMDGPU_PL_MMIO_REMAP] = "mmioremap",  	};  	unsigned int hw_ip, i; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 122a88294883..fe486988a738 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -153,6 +153,14 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)  		c++;  	} +	if (domain & AMDGPU_GEM_DOMAIN_MMIO_REMAP) { +		places[c].fpfn = 0; +		places[c].lpfn = 0; +		places[c].mem_type = AMDGPU_PL_MMIO_REMAP; +		places[c].flags = 0; +		c++; +	} +  	if (domain & AMDGPU_GEM_DOMAIN_GTT) {  		places[c].fpfn = 0;  		places[c].lpfn = 0; @@ -1545,6 +1553,8 @@ uint32_t amdgpu_bo_mem_stats_placement(struct amdgpu_bo *bo)  		return AMDGPU_PL_OA;  	case AMDGPU_GEM_DOMAIN_DOORBELL:  		return AMDGPU_PL_DOORBELL; +	case AMDGPU_GEM_DOMAIN_MMIO_REMAP: +		return AMDGPU_PL_MMIO_REMAP;  	default:  		return TTM_PL_SYSTEM;  	} @@ -1628,6 +1638,9 @@ u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)  			case AMDGPU_PL_DOORBELL:  				placement = "DOORBELL";  				break; +			case AMDGPU_PL_MMIO_REMAP: +				placement = "MMIO REMAP"; +				break;  			case TTM_PL_SYSTEM:  			default:  				placement = "CPU"; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h index 87523fcd4386..656b8a931dae 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h @@ -167,6 +167,8 @@ static inline unsigned amdgpu_mem_type_to_domain(u32 mem_type)  		return AMDGPU_GEM_DOMAIN_OA;  	case AMDGPU_PL_DOORBELL:  		return AMDGPU_GEM_DOMAIN_DOORBELL; +	case AMDGPU_PL_MMIO_REMAP: +		return AMDGPU_GEM_DOMAIN_MMIO_REMAP;  	default:  		break;  	} diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h index 50fcd86e1033..be2e56ce1355 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h @@ -91,6 +91,7 @@ static inline void amdgpu_res_first(struct ttm_resource *res,  		break;  	case TTM_PL_TT:  	case AMDGPU_PL_DOORBELL: +	case AMDGPU_PL_MMIO_REMAP:  		node = to_ttm_range_mgr_node(res)->mm_nodes;  		while (start >= node->size << PAGE_SHIFT)  			start -= node++->size << PAGE_SHIFT; @@ -153,6 +154,7 @@ static inline void amdgpu_res_next(struct amdgpu_res_cursor *cur, uint64_t size)  		break;  	case TTM_PL_TT:  	case AMDGPU_PL_DOORBELL: +	case AMDGPU_PL_MMIO_REMAP:  		node = cur->node;  		cur->node = ++node; | 
