> -----Original Message----- > From: Hogander, Jouni <jouni.hogander@xxxxxxxxx> > Sent: Wednesday, June 5, 2024 3:56 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Manna, Animesh <animesh.manna@xxxxxxxxx>; Kahola, Mika > <mika.kahola@xxxxxxxxx>; Hogander, Jouni <jouni.hogander@xxxxxxxxx> > Subject: [PATCH v6 10/26] drm/i915/psr: Print Panel Replay status instead of > frame lock status > > Currently Panel Replay status printout is printing frame lock status. It > should print Panel Replay status instead. Panel Replay status register > field follows PSR status register field. Use existing PSR code for that. > > Fixes: ef75c25e8fed ("drm/i915/panelreplay: Debugfs support for panel > replay") > Signed-off-by: Jouni Högander <jouni.hogander@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_psr.c | 22 +++++----------------- > 1 file changed, 5 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c > b/drivers/gpu/drm/i915/display/intel_psr.c > index 7bdae0d0ea45..3530e5f44096 100644 > --- a/drivers/gpu/drm/i915/display/intel_psr.c > +++ b/drivers/gpu/drm/i915/display/intel_psr.c > @@ -3579,16 +3579,9 @@ static int i915_psr_sink_status_show(struct > seq_file *m, void *data) > "reserved", > "sink internal error", > }; > - static const char * const panel_replay_status[] = { > - "Sink device frame is locked to the Source device", > - "Sink device is coasting, using the VTotal target", > - "Sink device is governing the frame rate (frame rate unlock is > granted)", > - "Sink device in the process of re-locking with the Source > device", > - }; > const char *str; > int ret; > u8 status, error_status; > - u32 idx; > > if (!(CAN_PSR(intel_dp) || CAN_PANEL_REPLAY(intel_dp))) { > seq_puts(m, "PSR/Panel-Replay Unsupported\n"); > @@ -3602,16 +3595,11 @@ static int i915_psr_sink_status_show(struct > seq_file *m, void *data) > if (ret) > return ret; > > - str = "unknown"; > - if (intel_dp->psr.panel_replay_enabled) { > - idx = (status & DP_SINK_FRAME_LOCKED_MASK) >> > DP_SINK_FRAME_LOCKED_SHIFT; > - if (idx < ARRAY_SIZE(panel_replay_status)) > - str = panel_replay_status[idx]; > - } else if (intel_dp->psr.enabled) { > - idx = status & DP_PSR_SINK_STATE_MASK; > - if (idx < ARRAY_SIZE(sink_status)) > - str = sink_status[idx]; > - } > + status &= DP_PSR_SINK_STATE_MASK; > + if (status < ARRAY_SIZE(sink_status)) > + str = sink_status[status]; > + else > + str = "unknown"; psr_get_status_and_error_status() is returning frame-locked-status for panel replay, Its different dpcd DP_SINK_DEVICE_PR_AND_FRAME_LOCK_STATUS, not same like psr. Regards, Animesh > > seq_printf(m, "Sink %s status: 0x%x [%s]\n", psr_mode_str(intel_dp), > status, str); > > -- > 2.34.1