diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-27 07:08:39 -0700 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-27 07:08:39 -0700 | 
| commit | 9db48aaf18d675ac41f550c9384154e0c00de2ef (patch) | |
| tree | 70a19b9164c103e5f52dddff609e01672f8ef616 /drivers/gpu/drm/i915/intel_dp.c | |
| parent | 0592969e73ae50ce6852d1aff3d222a335289094 (diff) | |
| parent | fea7a08acb13524b47711625eebea40a0ede69a0 (diff) | |
| download | olio-linux-3.10-9db48aaf18d675ac41f550c9384154e0c00de2ef.tar.xz olio-linux-3.10-9db48aaf18d675ac41f550c9384154e0c00de2ef.zip  | |
Merge 3.6-rc3 into driver-core-next
This picks up the printk fixes in 3.6-rc3 that are needed in this branch.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 0a56b9ab0f5..a6c426afaa7 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1174,10 +1174,14 @@ static void ironlake_edp_panel_off(struct intel_dp *intel_dp)  	WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");  	pp = ironlake_get_pp_control(dev_priv); -	pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE); +	/* We need to switch off panel power _and_ force vdd, for otherwise some +	 * panels get very unhappy and cease to work. */ +	pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);  	I915_WRITE(PCH_PP_CONTROL, pp);  	POSTING_READ(PCH_PP_CONTROL); +	intel_dp->want_panel_vdd = false; +  	ironlake_wait_panel_off(intel_dp);  } @@ -1287,11 +1291,9 @@ static void intel_dp_prepare(struct drm_encoder *encoder)  	 * ensure that we have vdd while we switch off the panel. */  	ironlake_edp_panel_vdd_on(intel_dp);  	ironlake_edp_backlight_off(intel_dp); -	ironlake_edp_panel_off(intel_dp); -  	intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); +	ironlake_edp_panel_off(intel_dp);  	intel_dp_link_down(intel_dp); -	ironlake_edp_panel_vdd_off(intel_dp, false);  }  static void intel_dp_commit(struct drm_encoder *encoder) @@ -1326,11 +1328,9 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)  		/* Switching the panel off requires vdd. */  		ironlake_edp_panel_vdd_on(intel_dp);  		ironlake_edp_backlight_off(intel_dp); -		ironlake_edp_panel_off(intel_dp); -  		intel_dp_sink_dpms(intel_dp, mode); +		ironlake_edp_panel_off(intel_dp);  		intel_dp_link_down(intel_dp); -		ironlake_edp_panel_vdd_off(intel_dp, false);  		if (is_cpu_edp(intel_dp))  			ironlake_edp_pll_off(encoder);  |