drm/i915/dpt: Use shmem for dpt objects
authorRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Tue, 18 Jul 2023 22:51:18 +0000 (15:51 -0700)
committerRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Fri, 21 Jul 2023 15:25:28 +0000 (08:25 -0700)
commite91a777a6e602ba0e3366e053e4e094a334a1244
treeab4fb1c29ae91a452d068784fafe17e203d99300
parenta86c75dcdd0374444514c1e40411177ff7afe9bd
drm/i915/dpt: Use shmem for dpt objects

Dpt objects that are created from internal get evicted when there is
memory pressure and do not get restored when pinned during scanout. The
pinned page table entries look corrupted and programming the display
engine with the incorrect pte's result in DE throwing pipe faults.

Create DPT objects from shmem and mark the object as dirty when pinning so
that the object is restored when shrinker evicts an unpinned buffer object.

v2: Unconditionally mark the dpt objects dirty during pinning(Chris).

Fixes: 0dc987b699ce ("drm/i915/display: Add smem fallback allocation for dpt")
Cc: <stable@vger.kernel.org> # v6.0+
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Suggested-by: Chris Wilson <chris.p.wilson@intel.com>
Signed-off-by: Fei Yang <fei.yang@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230718225118.2562132-1-radhakrishna.sripada@intel.com
drivers/gpu/drm/i915/display/intel_dpt.c