aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2014-03-14 10:51:14 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-03-18 05:53:16 -0400
commit884f19e948894fc87b03b631fd03a0998c0ca1ef (patch)
treec32cfaaa69fd807cabd7c3c82c3146253dd92091
parentadddaaf4885403a2f2180fb522b5b97e1469b328 (diff)
drm/i915/dp: move edp vdd enable/disable at a lower level in i2c-over-aux
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>
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index b463769b93e5..17d73511e148 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -461,6 +461,9 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
461 uint32_t status; 461 uint32_t status;
462 int try, clock = 0; 462 int try, clock = 0;
463 bool has_aux_irq = HAS_AUX_IRQ(dev); 463 bool has_aux_irq = HAS_AUX_IRQ(dev);
464 bool vdd;
465
466 vdd = _edp_panel_vdd_on(intel_dp);
464 467
465 /* dp aux is extremely sensitive to irq latency, hence request the 468 /* dp aux is extremely sensitive to irq latency, hence request the
466 * lowest possible wakeup latency and so prevent the cpu from going into 469 * lowest possible wakeup latency and so prevent the cpu from going into
@@ -566,6 +569,9 @@ out:
566 pm_qos_update_request(&dev_priv->pm_qos, PM_QOS_DEFAULT_VALUE); 569 pm_qos_update_request(&dev_priv->pm_qos, PM_QOS_DEFAULT_VALUE);
567 intel_aux_display_runtime_put(dev_priv); 570 intel_aux_display_runtime_put(dev_priv);
568 571
572 if (vdd)
573 edp_panel_vdd_off(intel_dp, false);
574
569 return ret; 575 return ret;
570} 576}
571 577
@@ -678,8 +684,6 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
678 int reply_bytes; 684 int reply_bytes;
679 int ret; 685 int ret;
680 686
681 edp_panel_vdd_on(intel_dp);
682 intel_dp_check_edp(intel_dp);
683 /* Set up the command byte */ 687 /* Set up the command byte */
684 if (mode & MODE_I2C_READ) 688 if (mode & MODE_I2C_READ)
685 msg[0] = DP_AUX_I2C_READ << 4; 689 msg[0] = DP_AUX_I2C_READ << 4;
@@ -781,7 +785,6 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
781 ret = -EREMOTEIO; 785 ret = -EREMOTEIO;
782 786
783out: 787out:
784 edp_panel_vdd_off(intel_dp, false);
785 return ret; 788 return ret;
786} 789}
787 790