On Sat, 08 Mar 2014, Paulo Zanoni <przanoni@xxxxxxxxx> wrote: > From: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > > Commit b3064154dfd37deb386b1e459c54e1ca2460b3d5 tried to revert commit > dff392dbd258381a6c3164f38420593f2d291e3b, but wasn't complete, which > resulted in regressions on Haswell. So this commit should fix > b3064154dfd37deb386b1e459c54e1ca2460b3d5 by undoing what it did and > providing an actual complete revert of > dff392dbd258381a6c3164f38420593f2d291e3b. > > Fixes regression introduced by: > commit b3064154dfd37deb386b1e459c54e1ca2460b3d5 > Author: Patrik Jakobsson <patrik.r.jakobsson@xxxxxxxxx> > Date: Tue Mar 4 00:42:44 2014 +0100 > drm/i915: Don't just say it, actually force edp vdd Patrik, would you mind acking/testing this patch, as it blames your commit for regressing? Thanks, Jani. > > Testcase: igt/pm_pc8 > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_ddi.c | 1 + > drivers/gpu/drm/i915/intel_dp.c | 9 ++++++--- > drivers/gpu/drm/i915/intel_drv.h | 1 + > 3 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > index e2665e0..34e8bb3 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -1340,6 +1340,7 @@ static void intel_ddi_post_disable(struct intel_encoder *intel_encoder) > if (type == INTEL_OUTPUT_DISPLAYPORT || type == INTEL_OUTPUT_EDP) { > struct intel_dp *intel_dp = enc_to_intel_dp(encoder); > intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); > + edp_panel_vdd_on(intel_dp); > intel_edp_panel_off(intel_dp); > } > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 22e1bdd..e936f36 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -91,7 +91,6 @@ static struct intel_dp *intel_attached_dp(struct drm_connector *connector) > } > > static void intel_dp_link_down(struct intel_dp *intel_dp); > -static void edp_panel_vdd_on(struct intel_dp *intel_dp); > static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync); > > static int > @@ -1162,7 +1161,7 @@ static u32 ironlake_get_pp_control(struct intel_dp *intel_dp) > return control; > } > > -static void edp_panel_vdd_on(struct intel_dp *intel_dp) > +void edp_panel_vdd_on(struct intel_dp *intel_dp) > { > struct drm_device *dev = intel_dp_to_dev(intel_dp); > struct drm_i915_private *dev_priv = dev->dev_private; > @@ -1338,11 +1337,16 @@ void intel_edp_panel_off(struct intel_dp *intel_dp) > > pp_ctrl_reg = _pp_ctrl_reg(intel_dp); > > + intel_dp->want_panel_vdd = false; > + > I915_WRITE(pp_ctrl_reg, pp); > POSTING_READ(pp_ctrl_reg); > > intel_dp->last_power_cycle = jiffies; > wait_panel_off(intel_dp); > + > + /* We got a reference when we enabled the VDD. */ > + intel_runtime_pm_put(dev_priv); > } > > void intel_edp_backlight_on(struct intel_dp *intel_dp) > @@ -1880,7 +1884,6 @@ static void intel_disable_dp(struct intel_encoder *encoder) > intel_edp_backlight_off(intel_dp); > intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); > intel_edp_panel_off(intel_dp); > - edp_panel_vdd_off(intel_dp, true); > > /* cpu edp my only be disable _after_ the cpu pipe/plane is disabled. */ > if (!(port == PORT_A || IS_VALLEYVIEW(dev))) > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 9c70905..805d207 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -762,6 +762,7 @@ void intel_edp_panel_off(struct intel_dp *intel_dp); > void intel_edp_psr_enable(struct intel_dp *intel_dp); > void intel_edp_psr_disable(struct intel_dp *intel_dp); > void intel_edp_psr_update(struct drm_device *dev); > +void edp_panel_vdd_on(struct intel_dp *intel_dp); > > > /* intel_dsi.c */ > -- > 1.8.5.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx