[PATCH v6 10/26] drm/i915/psr: Print Panel Replay status instead of frame lock status
Hogander, Jouni
jouni.hogander at intel.com
Thu Jun 6 15:37:35 UTC 2024
On Thu, 2024-06-06 at 14:35 +0000, Manna, Animesh wrote:
>
>
> > -----Original Message-----
> > From: Hogander, Jouni <jouni.hogander at intel.com>
> > Sent: Wednesday, June 5, 2024 3:56 PM
> > To: intel-gfx at lists.freedesktop.org
> > Cc: Manna, Animesh <animesh.manna at intel.com>; Kahola, Mika
> > <mika.kahola at intel.com>; Hogander, Jouni <jouni.hogander at intel.com>
> > 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 at intel.com>
> > ---
> > 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.
Panel Replay STATUS ~= PSR STATUS if you look at description of the
registers. Frame lock status is completely different thing. I don't
understand why psr sink status debugfs interface should print frame
lock status for Panel Replay?
BR,
Jouni Högander
>
> Regards,
> Animesh
>
> >
> > seq_printf(m, "Sink %s status: 0x%x [%s]\n",
> > psr_mode_str(intel_dp),
> > status, str);
> >
> > --
> > 2.34.1
>
More information about the Intel-gfx
mailing list