drm/i915/dp: move edp vdd enable/disable at a lower level in i2c-over-aux
authorJani Nikula <jani.nikula@intel.com>
Fri, 14 Mar 2014 14:51:14 +0000 (16:51 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 18 Mar 2014 09:53:16 +0000 (10:53 +0100)
This is prep work for conversion to generic drm i2c-over-aux helpers
where we won't have the function to do this at.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c

index b463769b93e5d354a63689aa4f5e8686d5e5c9bc..17d73511e1482a74687cfa0d33388562d308793c 100644 (file)
@@ -461,6 +461,9 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
        uint32_t status;
        int try, clock = 0;
        bool has_aux_irq = HAS_AUX_IRQ(dev);
+       bool vdd;
+
+       vdd = _edp_panel_vdd_on(intel_dp);
 
        /* dp aux is extremely sensitive to irq latency, hence request the
         * lowest possible wakeup latency and so prevent the cpu from going into
@@ -566,6 +569,9 @@ out:
        pm_qos_update_request(&dev_priv->pm_qos, PM_QOS_DEFAULT_VALUE);
        intel_aux_display_runtime_put(dev_priv);
 
+       if (vdd)
+               edp_panel_vdd_off(intel_dp, false);
+
        return ret;
 }
 
@@ -678,8 +684,6 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
        int reply_bytes;
        int ret;
 
-       edp_panel_vdd_on(intel_dp);
-       intel_dp_check_edp(intel_dp);
        /* Set up the command byte */
        if (mode & MODE_I2C_READ)
                msg[0] = DP_AUX_I2C_READ << 4;
@@ -781,7 +785,6 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
        ret = -EREMOTEIO;
 
 out:
-       edp_panel_vdd_off(intel_dp, false);
        return ret;
 }