|
@@ -2559,12 +2559,15 @@ void intel_dp_encoder_destroy(struct drm_encoder *encoder)
|
|
|
{
|
|
|
struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
|
|
|
struct intel_dp *intel_dp = &intel_dig_port->dp;
|
|
|
+ struct drm_device *dev = intel_dp_to_dev(intel_dp);
|
|
|
|
|
|
i2c_del_adapter(&intel_dp->adapter);
|
|
|
drm_encoder_cleanup(encoder);
|
|
|
if (is_edp(intel_dp)) {
|
|
|
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
|
|
|
+ mutex_lock(&dev->mode_config.mutex);
|
|
|
ironlake_panel_vdd_off_sync(intel_dp);
|
|
|
+ mutex_unlock(&dev->mode_config.mutex);
|
|
|
}
|
|
|
kfree(intel_dig_port);
|
|
|
}
|