[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