Re: [PATCH 07/16] drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma()

Jani Nikula
2026-04-24T10:02:32Z

On Thu, 23 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> No need to bother the higher level pinning code with the
> FORCE_WC assert. Move it into the lower level function.

Might mention that this introduces the check also to the
intel_fb_pin_to_ggtt() path.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/xe/display/xe_fb_pin.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index afb6cdda537e..487c092cd000 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -329,6 +329,9 @@ static struct i915_vma *__xe_pin_fb_vma(struct drm_gem_object *obj, bool is_dpt,
> struct drm_exec exec;
> int ret = 0;
>
> + /* We reject creating !SCANOUT fb's, so this is weird.. */
> + drm_WARN_ON(bo->ttm.base.dev, !(bo->flags & XE_BO_FLAG_FORCE_WC));
> +
> if (!vma)
> return ERR_PTR(-ENODEV);
>
> @@ -466,7 +469,6 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
> {
> struct drm_framebuffer *fb = new_plane_state->hw.fb;
> struct drm_gem_object *obj = intel_fb_bo(fb);
> - struct xe_bo *bo = gem_to_xe_bo(obj);
> struct i915_vma *vma;
> struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
> struct intel_fb_pin_params pin_params = {
> @@ -478,9 +480,6 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
> if (reuse_vma(new_plane_state, old_plane_state))
> return 0;
>
> - /* We reject creating !SCANOUT fb's, so this is weird.. */
> - drm_WARN_ON(bo->ttm.base.dev, !(bo->flags & XE_BO_FLAG_FORCE_WC));
> -
> vma = __xe_pin_fb_vma(obj, intel_fb_uses_dpt(fb), &pin_params);
>
> if (IS_ERR(vma))

--
Jani Nikula, Intel