mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/i915/psr: Fix for Panel Replay X granularity DPCD register handling
DP specification is saying value 0xff 0xff in PANEL REPLAY SELECTIVE UPDATE X GRANULARITY CAPABILITY registers (0xb2 and 0xb3) means full-line granularity. Take this into account when handling Panel Replay X granularity informed by the panel. Fixes:1cc8546474("drm/i915/psr: Use SU granularity information available in intel_connector") Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7284 Tested-by: Mark Pearson <mpearson-lenovo@squebb.ca> Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260225074221.1744330-2-jouni.hogander@intel.com (cherry picked from commitf5c8f824a4) Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
This commit is contained in:
committed by
Joonas Lahtinen
parent
ace7dcc818
commit
a99cac460d
@@ -1307,9 +1307,14 @@ static bool psr2_granularity_check(struct intel_crtc_state *crtc_state,
|
||||
u16 sink_y_granularity = crtc_state->has_panel_replay ?
|
||||
connector->dp.panel_replay_caps.su_y_granularity :
|
||||
connector->dp.psr_caps.su_y_granularity;
|
||||
u16 sink_w_granularity = crtc_state->has_panel_replay ?
|
||||
connector->dp.panel_replay_caps.su_w_granularity :
|
||||
connector->dp.psr_caps.su_w_granularity;
|
||||
u16 sink_w_granularity;
|
||||
|
||||
if (crtc_state->has_panel_replay)
|
||||
sink_w_granularity = connector->dp.panel_replay_caps.su_w_granularity ==
|
||||
DP_PANEL_REPLAY_FULL_LINE_GRANULARITY ?
|
||||
crtc_hdisplay : connector->dp.panel_replay_caps.su_w_granularity;
|
||||
else
|
||||
sink_w_granularity = connector->dp.psr_caps.su_w_granularity;
|
||||
|
||||
/* PSR2 HW only send full lines so we only need to validate the width */
|
||||
if (crtc_hdisplay % sink_w_granularity)
|
||||
|
||||
Reference in New Issue
Block a user