[PATCH v6 1/4] drm/xe: Use devm_ioremap_wc for VRAM mapping and drop manual unmap

Matthew Auld matthew.auld at intel.com
Fri Jun 27 08:43:11 UTC 2025


On 26/06/2025 08:14, Piórkowski, Piotr wrote:
> From: Piotr Piórkowski <piotr.piorkowski at intel.com>
> 
> Let's replace the manual call to ioremap_wc function with devm_ioremap_wc
> function, ensuring that VRAM mappings are automatically released when
> the driver is detached.
> Since devm_ioremap_wc registers the mapping with the device's managed
> resources, the explicit iounmap call in vram_fini is no longer needed,
> so let's remove it.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
> Suggested-by: Matthew Auld <matthew.auld at intel.com>

Reviewed-by: Matthew Auld <matthew.auld at intel.com>

> ---
>   drivers/gpu/drm/xe/xe_vram.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
> index e421a74fb87c..3a4c84e9efc6 100644
> --- a/drivers/gpu/drm/xe/xe_vram.c
> +++ b/drivers/gpu/drm/xe/xe_vram.c
> @@ -156,7 +156,8 @@ static int determine_lmem_bar_size(struct xe_device *xe)
>   	xe->mem.vram.dpa_base = 0;
>   
>   	/* set up a map to the total memory area. */
> -	xe->mem.vram.mapping = ioremap_wc(xe->mem.vram.io_start, xe->mem.vram.io_size);
> +	xe->mem.vram.mapping = devm_ioremap_wc(&pdev->dev, xe->mem.vram.io_start,
> +					       xe->mem.vram.io_size);
>   
>   	return 0;
>   }
> @@ -278,9 +279,6 @@ static void vram_fini(void *arg)
>   	struct xe_tile *tile;
>   	int id;
>   
> -	if (xe->mem.vram.mapping)
> -		iounmap(xe->mem.vram.mapping);
> -
>   	xe->mem.vram.mapping = NULL;
>   
>   	for_each_tile(tile, xe, id)



More information about the Intel-xe mailing list