If the panel is powered up, there's no need to delay for the 'off'
interval when turning the panel on.

Signed-off-by: Keith Packard <keithp at keithp.com>
---
 drivers/gpu/drm/i915/intel_dp.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f223504..a01cc2a 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -856,7 +856,16 @@ static void ironlake_wait_panel_off(struct intel_dp 
*intel_dp)
 {
        unsigned long   off_time;
        unsigned long   delay;
+
        DRM_DEBUG_KMS("Wait for panel power off time\n");
+
+       if (ironlake_edp_have_panel_power(intel_dp) ||
+           ironlake_edp_have_panel_vdd(intel_dp))
+       {
+               DRM_DEBUG_KMS("Panel still on, no delay needed\n");
+               return;
+       }
+
        off_time = intel_dp->panel_off_jiffies + 
msecs_to_jiffies(intel_dp->panel_power_down_delay);
        if (time_after(jiffies, off_time)) {
                DRM_DEBUG_KMS("Time already passed");
-- 
1.7.6.3

Reply via email to