drm/i915: Wait for power cycle delay after turning off DSI panel power
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 18 Apr 2016 16:17:51 +0000 (19:17 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 19 Apr 2016 11:57:33 +0000 (14:57 +0300)
The power cycle delay starts _after_ turning off the panel power. Do the
msleep after frobbing the pmic panel power gpio.

Also toss in a FIXME about optimizing away needless waits.

Cc: Shobhit Kumar <shobhit.kumar@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Fixes: fc45e8219907 ("drm/i915: Use the CRC gpio for panel enable/disable")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1460996271-29795-1-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Shobhit Kumar <shobhit.kumar@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_dsi.c

index 34328ddaaab582f47b5cac51b711c6f40493e95f..2b22bb9bb86f01841be78dabce7a3b18b86fb7f3 100644 (file)
@@ -688,11 +688,16 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder)
        drm_panel_unprepare(intel_dsi->panel);
 
        msleep(intel_dsi->panel_off_delay);
-       msleep(intel_dsi->panel_pwr_cycle_delay);
 
        /* Panel Disable over CRC PMIC */
        if (intel_dsi->gpio_panel)
                gpiod_set_value_cansleep(intel_dsi->gpio_panel, 0);
+
+       /*
+        * FIXME As we do with eDP, just make a note of the time here
+        * and perform the wait before the next panel power on.
+        */
+       msleep(intel_dsi->panel_pwr_cycle_delay);
 }
 
 static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,