lkml.org 
[lkml]   [2022]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6.0 189/862] drm/i915: Fix display problems after resume
    Date
    From: Thomas Hellström <thomas.hellstrom@linux.intel.com>

    commit 6c482c62a635aa4f534d2439fbf8afa37452b986 upstream.

    Commit 39a2bd34c933 ("drm/i915: Use the vma resource as argument for gtt
    binding / unbinding") introduced a regression that due to the vma resource
    tracking of the binding state, dpt ptes were not correctly repopulated.
    Fix this by clearing the vma resource state before repopulating.
    The state will subsequently be restored by the bind_vma operation.

    Fixes: 39a2bd34c933 ("drm/i915: Use the vma resource as argument for gtt binding / unbinding")
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220912121957.31310-1-thomas.hellstrom@linux.intel.com
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: intel-gfx@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v5.18+
    Reported-and-tested-by: Kevin Boulain <kevinboulain@gmail.com>
    Tested-by: David de Sousa <davidesousa@gmail.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221005121159.340245-1-thomas.hellstrom@linux.intel.com
    (cherry picked from commit bc2472538c0d1cce334ffc9e97df0614cd2b1469)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/i915/gt/intel_ggtt.c | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    --- a/drivers/gpu/drm/i915/gt/intel_ggtt.c
    +++ b/drivers/gpu/drm/i915/gt/intel_ggtt.c
    @@ -1267,10 +1267,16 @@ bool i915_ggtt_resume_vm(struct i915_add
    atomic_read(&vma->flags) & I915_VMA_BIND_MASK;

    GEM_BUG_ON(!was_bound);
    - if (!retained_ptes)
    + if (!retained_ptes) {
    + /*
    + * Clear the bound flags of the vma resource to allow
    + * ptes to be repopulated.
    + */
    + vma->resource->bound_flags = 0;
    vma->ops->bind_vma(vm, NULL, vma->resource,
    obj ? obj->cache_level : 0,
    was_bound);
    + }
    if (obj) { /* only used during resume => exclusive access */
    write_domain_objs |= fetch_and_zero(&obj->write_domain);
    obj->read_domains |= I915_GEM_DOMAIN_GTT;

    \
     
     \ /
      Last update: 2022-10-19 12:48    [W:2.425 / U:0.212 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site