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 |
- |
|
|