[PATCH] drm/xe/display: Clarify XE_IOCTL_DBG message

Summers, Stuart stuart.summers at intel.com
Fri Jan 17 17:55:56 UTC 2025


On Fri, 2025-01-17 at 12:53 +0100, Maarten Lankhorst wrote:
> This should make it easier to understand from userspace why importing
> BO
> fails.
> 
> Signed-off-by: Maarten Lankhorst <dev at lankhorst.se>
> ---
>  drivers/gpu/drm/xe/display/intel_fb_bo.c |  5 +++--
>  drivers/gpu/drm/xe/xe_bo.c               | 16 ++++++++++++++++
>  drivers/gpu/drm/xe/xe_bo.h               |  1 +
>  3 files changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c
> b/drivers/gpu/drm/xe/display/intel_fb_bo.c
> index 4d209ebc26c2a..a3914b61b7049 100644
> --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c
> +++ b/drivers/gpu/drm/xe/display/intel_fb_bo.c
> @@ -24,6 +24,7 @@ void intel_fb_bo_framebuffer_fini(struct
> drm_gem_object *obj)
>         xe_bo_put(bo);
>  }
>  
> +

Drop the extra line break here on merge.

I agree this is way cleaner, thanks!

Reviewed-by: Stuart Summers <stuart.summers at intel.com>

>  int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
>                                  struct drm_gem_object *obj,
>                                  struct drm_mode_fb_cmd2 *mode_cmd)
> @@ -50,10 +51,10 @@ int intel_fb_bo_framebuffer_init(struct
> intel_framebuffer *intel_fb,
>                 /*
>                  * XE_BO_FLAG_SCANOUT should ideally be set at
> creation, or is
>                  * automatically set when creating FB. We cannot
> change caching
> -                * mode when the boect is VM_BINDed, so we can only
> set
> +                * mode when the bo is VM_BINDed, so we can only set
>                  * coherency with display when unbound.
>                  */
> -               if (XE_IOCTL_DBG(xe, !list_empty(&bo-
> >ttm.base.gpuva.list))) {
> +               if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) {
>                         ttm_bo_unreserve(&bo->ttm);
>                         ret = -EINVAL;
>                         goto err;
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 3f5391d416d46..03f93b8561659 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -124,6 +124,22 @@ bool xe_bo_is_stolen_devmem(struct xe_bo *bo)
>                 GRAPHICS_VERx100(xe_bo_device(bo)) >= 1270;
>  }
>  
> +/**
> + * xe_bo_is_vm_bound - check if BO has any mappings through VM_BIND
> + * @bo: The BO
> + *
> + * Check if a given bo is bound through VM_BIND. This requires the
> + * reservation lock for the BO to be held.
> + *
> + * Returns: boolean
> + */
> +bool xe_bo_is_vm_bound(struct xe_bo *bo)
> +{
> +       xe_bo_assert_held(bo);
> +
> +       return !list_empty(&bo->ttm.base.gpuva.list);
> +}
> +
>  static bool xe_bo_is_user(struct xe_bo *bo)
>  {
>         return bo->flags & XE_BO_FLAG_USER;
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index d9386ab031404..6d2f1086d533a 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -234,6 +234,7 @@ bool mem_type_is_vram(u32 mem_type);
>  bool xe_bo_is_vram(struct xe_bo *bo);
>  bool xe_bo_is_stolen(struct xe_bo *bo);
>  bool xe_bo_is_stolen_devmem(struct xe_bo *bo);
> +bool xe_bo_is_vm_bound(struct xe_bo *bo);
>  bool xe_bo_has_single_placement(struct xe_bo *bo);
>  uint64_t vram_region_gpu_offset(struct ttm_resource *res);
>  



More information about the Intel-xe mailing list