• Ramalingam C's avatar
    drm/i915/migrate: Evict and restore the flatccs capable lmem obj · da0595ae
    Ramalingam C authored
    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: default avatarRamalingam C <ramalingam.c@intel.com>
    Reviewed-by: default avatarThomas Hellstrom <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220405150840.29351-10-ramalingam.c@intel.com
    da0595ae
intel_migrate.c 27.9 KB