[PATCH 0/6] eDP panel power sequencing optimizations

Paulo Zanoni
2013-12-19T16:29:54Z

From: Paulo Zanoni <paulo.r.zanoni@intel.com>

Hi

These patches save a lot of time on our eDP panel power sequencing times. We
were doing a lot of needless waits, so now our load times should be much
shorter.

This series should improve a little bit our driver load time, and it should
greatly improve our suspend time. The most relevant thing is that when we were
waiting for the "panel off" timeout (50ms on my machine), we were not just
waiting for it, but also waiting for the "backlight off" timeout (200ms) and the
"panel power cycle" timeout (500ms). QA did some measurements of a branch
containing these 6 patches + two patches removing the "wait for vblank timeout"
problems we have on Haswell, and the results are reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=72211.

One of my worries about this series is that, due to the extremely smaller wait
times, we may get regression reports saying "my panel is now black!" due to
broken VBT/BIOS/panel/whatever. If this happens, IMHO instead of just reverting
the current patches, we should add some extra msleep() calls surrounded by FIXME
comments explicitly saying why we are waiting more than we should, because the
current code was silently hiding the fact that we were waiting more than we
should.

Thanks,
Paulo

Paulo Zanoni (6):
drm/i915: init the DP panel power seq variables earlier
drm/i915: save some time when waiting the eDP timings
drm/i915: reset eDP timestamps on resume
drm/i915: remove a column of zeros from the eDP wait definitions
drm/i915: don't wait for power cycle when waiting for power off
drm/i915: set the backlight panel delays registers to 1

drivers/gpu/drm/i915/i915_drv.c | 2 +
drivers/gpu/drm/i915/i915_drv.h | 29 ++++++++++++
drivers/gpu/drm/i915/intel_ddi.c | 1 +
drivers/gpu/drm/i915/intel_display.c | 11 +++++
drivers/gpu/drm/i915/intel_dp.c | 88 ++++++++++++++++++++++++++++--------
drivers/gpu/drm/i915/intel_drv.h | 6 +++
6 files changed, 118 insertions(+), 19 deletions(-)

--
1.8.3.1