Unverified Commit 737ec1e8 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin Committed by Rodrigo Vivi
Browse files

drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P



Now that we have implemented all the related missing bits we can enable
the AuxCCS compressed modifiers which were disabled in
cf48bddd ("drm/i915/display: Disable AuxCCS framebuffers if built for Xe").

Tested with KDE Wayland, on Lenovo Carbon X1 ADL-P:

        [PLANE:32:plane 1A]: type=PRI
                uapi: [FB:242] AR30 little-endian (0x30335241),0x100000000000008,2880x1800, visible=visible, src=28
                hw: [FB:242] AR30 little-endian (0x30335241),0x100000000000008,2880x1800, visible=yes, src=2880.000

Display is working fine - no artefacts, no DMAR/PIPE faults.

v2:
 * Adjust patch title. (Rodrigo)

v3:
 * Complete rewrite based on the display parent interface.

Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@igalia.com>
References: cf48bddd ("drm/i915/display: Disable AuxCCS framebuffers if built for Xe")
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/20260324084018.20353-13-tvrtko.ursulin@igalia.com


Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 91106757
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -541,6 +541,13 @@ static const struct intel_display_irq_interface xe_display_irq_interface = {
	.synchronize = irq_synchronize,
};

static bool has_auxccs(struct drm_device *drm)
{
	struct xe_device *xe = to_xe_device(drm);

	return xe->info.platform == XE_ALDERLAKE_P;
}

static const struct intel_display_parent_interface parent = {
	.bo = &xe_display_bo_interface,
	.dsb = &xe_display_dsb_interface,
@@ -552,6 +559,7 @@ static const struct intel_display_parent_interface parent = {
	.pcode = &xe_display_pcode_interface,
	.rpm = &xe_display_rpm_interface,
	.stolen = &xe_display_stolen_interface,
	.has_auxccs = has_auxccs,
};

/**