Skip to content

Commit 34e0259

Browse files
committed
drm/i915/pps: debug log the remaining power cycle delay to wait
While pps_init_delays() debug logs the power cycle delay, also debug log the actual remaining time to wait in wait_panel_power_cycle(). Note that this still isn't the full picture; the power sequencer may still wait after this one. Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13007 Reviewed-by: Chaitanya Kumar Borah <[email protected]> Tested-by: Paul Menzel <[email protected]> # Dell XPS 13 Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Jani Nikula <[email protected]>
1 parent f5d38d4 commit 34e0259

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

drivers/gpu/drm/i915/display/intel_pps.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -668,23 +668,24 @@ static void wait_panel_power_cycle(struct intel_dp *intel_dp)
668668
struct intel_display *display = to_intel_display(intel_dp);
669669
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
670670
ktime_t panel_power_on_time;
671-
s64 panel_power_off_duration;
672-
673-
drm_dbg_kms(display->drm,
674-
"[ENCODER:%d:%s] %s wait for panel power cycle\n",
675-
dig_port->base.base.base.id, dig_port->base.base.name,
676-
pps_name(intel_dp));
671+
s64 panel_power_off_duration, remaining;
677672

678673
/* take the difference of current time and panel power off time
679674
* and then make panel wait for power_cycle if needed. */
680675
panel_power_on_time = ktime_get_boottime();
681676
panel_power_off_duration = ktime_ms_delta(panel_power_on_time, intel_dp->pps.panel_power_off_time);
682677

678+
remaining = max(0, intel_dp->pps.panel_power_cycle_delay - panel_power_off_duration);
679+
680+
drm_dbg_kms(display->drm,
681+
"[ENCODER:%d:%s] %s wait for panel power cycle (%lld ms remaining)\n",
682+
dig_port->base.base.base.id, dig_port->base.base.name,
683+
pps_name(intel_dp), remaining);
684+
683685
/* When we disable the VDD override bit last we have to do the manual
684686
* wait. */
685-
if (panel_power_off_duration < (s64)intel_dp->pps.panel_power_cycle_delay)
686-
wait_remaining_ms_from_jiffies(jiffies,
687-
intel_dp->pps.panel_power_cycle_delay - panel_power_off_duration);
687+
if (remaining)
688+
wait_remaining_ms_from_jiffies(jiffies, remaining);
688689

689690
wait_panel_status(intel_dp, IDLE_CYCLE_MASK, IDLE_CYCLE_VALUE);
690691
}

0 commit comments

Comments
 (0)