]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/i915/xe3p_lpd: Enable display use of system cache for FBC
authorVinod Govindapillai <vinod.govindapillai@intel.com>
Fri, 28 Nov 2025 11:35:57 +0000 (13:35 +0200)
committerVinod Govindapillai <vinod.govindapillai@intel.com>
Thu, 4 Dec 2025 12:33:04 +0000 (14:33 +0200)
commit0b806d62fd5f59bcf07b971af15bab5bef191279
tree6c920f3a807eba07b29537abc8feab1c78c612cb
parent6cc3776b1f41cfc10bbe3dc6c70d0bf036a868d8
drm/i915/xe3p_lpd: Enable display use of system cache for FBC

One of the FBC instances can utilize the reserved area of SoC
level cache for the fbc transactions to benefit reduced memory
system power especially in idle scenarios. Reserved area of the
system cache can be assigned to an fbc instance by configuring
the cacheability configuration register with offset of the
compressed frame buffer in stolen memoty of that fbc. There is
a limit to this reserved area which is programmable and for
xe3p_lpd the limit is defined as 2MB. The first FBC instance
enabled will utilize the system cache as of now.

v2: - better to track fbc sys cache usage from intel_display level,
      sanitize the cacheability config register on probe (Matt)
    - limit this for integrated graphics solutions, confirmed that
      no default value set for cache range by hw (Gustavo)

v3: - changes related to the use of fbc substruct in intel_display
    - use intel_de_write() instead of intel_rmw() by hardcoding the
      default value fields

v4: - protect sys cache config accesses, sys cache usage status in
      debugfs per fbc instance (Jani)

v5: - mutex_init and missing mutex_lock in sanitize call

v6: - changes to commit message and some obvious comments removed

Bspec: 68881, 74722
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Link: https://patch.msgid.link/20251128113557.129192-1-vinod.govindapillai@intel.com
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
drivers/gpu/drm/i915/display/intel_display_core.h
drivers/gpu/drm/i915/display/intel_display_device.h
drivers/gpu/drm/i915/display/intel_fbc.c
drivers/gpu/drm/i915/display/intel_fbc_regs.h