Commit f30bece4 authored by Jouni Högander's avatar Jouni Högander Committed by Tvrtko Ursulin
Browse files

drm/i915/psr: Read Intel DPCD workaround register



Read Intel DPCD workaround register and store it into
intel_connector->dp.psr_caps. psr_caps was chosen as currently it contains
only PSR workaround for PSR2 SDP on prior scanline implementation.

Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Reviewed-by: default avatarSuraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260515095756.2799483-3-jouni.hogander@intel.com


(cherry picked from commit c48ff24d0f4ab7ad696b2d35ad64ce7e049c668c)
Signed-off-by: default avatarTvrtko Ursulin <tursulin@ursulin.net>
parent fbceb39b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -584,6 +584,7 @@ struct intel_connector {

		struct {
			u8 dpcd[EDP_PSR_RECEIVER_CAP_SIZE];
			u8 intel_wa_dpcd;

			bool support;
			bool su_support;
+8 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
#include "intel_display_wa.h"
#include "intel_dmc.h"
#include "intel_dp.h"
#include "intel_dpcd.h"
#include "intel_dp_aux.h"
#include "intel_dsb.h"
#include "intel_frontbuffer.h"
@@ -716,9 +717,15 @@ static void _psr_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *co
			    connector->dp.psr_caps.su_support ? "" : "not ");
	}

	if (connector->dp.psr_caps.su_support)
	if (connector->dp.psr_caps.su_support) {
		ret = drm_dp_dpcd_read_byte(&intel_dp->aux,
					    INTEL_DPCD_INTEL_WA_REGISTER_CAPS,
					    &connector->dp.psr_caps.intel_wa_dpcd);
		if (ret < 0)
			return;
		_psr_compute_su_granularity(intel_dp, connector);
	}
}

void intel_psr_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector)
{