]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/migrate: Evict and restore the flatccs capable lmem obj
authorRamalingam C <ramalingam.c@intel.com>
Tue, 5 Apr 2022 15:08:40 +0000 (20:38 +0530)
committerRamalingam C <ramalingam.c@intel.com>
Thu, 14 Apr 2022 07:50:29 +0000 (13:20 +0530)
commitca3164e43baa3eb9d8f2816606c5573848754d29
tree43b9b4dde275cb5746b4cfd092b8d4fd440e0b50
parent55a8c51b9551f145d98cf6c65765293f36de3e57
drm/i915/migrate: Evict and restore the flatccs capable lmem obj

When we are swapping out the local memory obj on flat-ccs capable platform,
we need to capture the ccs data too along with main meory and we need to
restore it when we are swapping in the content.

When lmem object is swapped into a smem obj, smem obj will
have the extra pages required to hold the ccs data corresponding to the
lmem main memory. So main memory of lmem will be copied into the initial
pages of the smem and then ccs data corresponding to the main memory
will be copied to the subsequent pages of smem. ccs data is 1/256 of
lmem size.

Swapin happens exactly in reverse order. First main memory of lmem is
restored from the smem's initial pages and the ccs data will be restored
from the subsequent pages of smem.

Extracting and restoring the CCS data is done through a special cmd called
XY_CTRL_SURF_COPY_BLT

v2: Fixing the ccs handling
v3: Handle the ccs data at same loop as main memory [Thomas]
v4: changes for emit_copy_ccs
v5: handle non-flat-ccs scenario

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220405150840.29351-10-ramalingam.c@intel.com
drivers/gpu/drm/i915/gt/intel_migrate.c