drm/i915/psr: Add Early Transport into psr debugfs interface
authorJouni Högander <jouni.hogander@intel.com>
Wed, 29 May 2024 09:38:49 +0000 (12:38 +0300)
committerJouni Högander <jouni.hogander@intel.com>
Mon, 3 Jun 2024 08:23:18 +0000 (11:23 +0300)
We want to have sink Early Transport capability and usage in our psr
debugfs status interface.

v4: use su_region_et_enabled instead of psr2_su_region_et_valid
v3: remove extra space from "PSR mode:  disabled"
v2: printout "Selective Update enabled (Early Transport)" instead of
    "Selective Update Early Transport enabled"

Reviewed-by: Animesh Manna <animesh.manna@intel.com>
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240529093849.1016172-7-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_psr.c

index b6162a8b2db66496dc46154c1fc6d3d30c7fffe2..4a4124a92a0df8908778fac513ce2588a9200813 100644 (file)
@@ -3332,25 +3332,44 @@ static void intel_psr_sink_capability(struct intel_dp *intel_dp,
 
        if (psr->sink_support)
                seq_printf(m, " [0x%02x]", intel_dp->psr_dpcd[0]);
+       if (intel_dp->psr_dpcd[0] == DP_PSR2_WITH_Y_COORD_ET_SUPPORTED)
+               seq_printf(m, " (Early Transport)");
        seq_printf(m, ", Panel Replay = %s", str_yes_no(psr->sink_panel_replay_support));
-       seq_printf(m, ", Panel Replay Selective Update = %s\n",
+       seq_printf(m, ", Panel Replay Selective Update = %s",
                   str_yes_no(psr->sink_panel_replay_su_support));
+       if (intel_dp->pr_dpcd & DP_PANEL_REPLAY_EARLY_TRANSPORT_SUPPORT)
+               seq_printf(m, " (Early Transport)");
+       seq_printf(m, "\n");
 }
 
 static void intel_psr_print_mode(struct intel_dp *intel_dp,
                                 struct seq_file *m)
 {
        struct intel_psr *psr = &intel_dp->psr;
-       const char *status;
+       const char *status, *mode, *region_et;
 
-       if (psr->panel_replay_enabled)
-               status = psr->sel_update_enabled ? "Panel Replay Selective Update Enabled" :
-                       "Panel Replay Enabled";
-       else if (psr->enabled)
-               status = psr->sel_update_enabled ? "PSR2" : "PSR1";
+       if (psr->enabled)
+               status = " enabled";
        else
                status = "disabled";
-       seq_printf(m, "PSR mode: %s\n", status);
+
+       if (psr->panel_replay_enabled && psr->sel_update_enabled)
+               mode = "Panel Replay Selective Update";
+       else if (psr->panel_replay_enabled)
+               mode = "Panel Replay";
+       else if (psr->sel_update_enabled)
+               mode = "PSR2";
+       else if (psr->enabled)
+               mode = "PSR1";
+       else
+               mode = "";
+
+       if (psr->su_region_et_enabled)
+               region_et = " (Early Transport)";
+       else
+               region_et = "";
+
+       seq_printf(m, "PSR mode: %s%s%s\n", mode, status, region_et);
 }
 
 static int intel_psr_status(struct seq_file *m, struct intel_dp *intel_dp)