View | Details | Raw Unified | Return to bug 45671 | Differences between
and this patch

Collapse All | Expand All

(-)a/drivers/gpu/drm/i915/intel_dp.c (-11 / +4 lines)
Lines 1171-1180 static void ironlake_edp_panel_off(struct intel_dp *intel_dp) Link Here
1171
1171
1172
	DRM_DEBUG_KMS("Turn eDP power off\n");
1172
	DRM_DEBUG_KMS("Turn eDP power off\n");
1173
1173
1174
	WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
1174
	WARN(intel_dp->want_panel_vdd, "Force VDD must be off to turn off panel\n");
1175
1175
1176
	pp = ironlake_get_pp_control(dev_priv);
1176
	pp = ironlake_get_pp_control(dev_priv);
1177
	pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);
1177
	pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);
1178
	I915_WRITE(PCH_PP_CONTROL, pp);
1178
	I915_WRITE(PCH_PP_CONTROL, pp);
1179
	POSTING_READ(PCH_PP_CONTROL);
1179
	POSTING_READ(PCH_PP_CONTROL);
1180
1180
Lines 1285-1297 static void intel_dp_prepare(struct drm_encoder *encoder) Link Here
1285
1285
1286
	/* Make sure the panel is off before trying to change the mode. But also
1286
	/* Make sure the panel is off before trying to change the mode. But also
1287
	 * ensure that we have vdd while we switch off the panel. */
1287
	 * ensure that we have vdd while we switch off the panel. */
1288
	ironlake_edp_panel_vdd_on(intel_dp);
1289
	ironlake_edp_backlight_off(intel_dp);
1288
	ironlake_edp_backlight_off(intel_dp);
1290
	ironlake_edp_panel_off(intel_dp);
1291
1292
	intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
1289
	intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
1290
	ironlake_edp_panel_off(intel_dp);
1293
	intel_dp_link_down(intel_dp);
1291
	intel_dp_link_down(intel_dp);
1294
	ironlake_edp_panel_vdd_off(intel_dp, false);
1295
}
1292
}
1296
1293
1297
static void intel_dp_commit(struct drm_encoder *encoder)
1294
static void intel_dp_commit(struct drm_encoder *encoder)
Lines 1324-1336 intel_dp_dpms(struct drm_encoder *encoder, int mode) Link Here
1324
1321
1325
	if (mode != DRM_MODE_DPMS_ON) {
1322
	if (mode != DRM_MODE_DPMS_ON) {
1326
		/* Switching the panel off requires vdd. */
1323
		/* Switching the panel off requires vdd. */
1327
		ironlake_edp_panel_vdd_on(intel_dp);
1328
		ironlake_edp_backlight_off(intel_dp);
1324
		ironlake_edp_backlight_off(intel_dp);
1329
		ironlake_edp_panel_off(intel_dp);
1330
1331
		intel_dp_sink_dpms(intel_dp, mode);
1325
		intel_dp_sink_dpms(intel_dp, mode);
1326
		ironlake_edp_panel_off(intel_dp);
1332
		intel_dp_link_down(intel_dp);
1327
		intel_dp_link_down(intel_dp);
1333
		ironlake_edp_panel_vdd_off(intel_dp, false);
1334
1328
1335
		if (is_cpu_edp(intel_dp))
1329
		if (is_cpu_edp(intel_dp))
1336
			ironlake_edp_pll_off(encoder);
1330
			ironlake_edp_pll_off(encoder);
1337
- 

Return to bug 45671