diff --git a/linux-core/intel_sdvo.c b/linux-core/intel_sdvo.c index 0ed72d47..b8eeb60c 100644 --- a/linux-core/intel_sdvo.c +++ b/linux-core/intel_sdvo.c @@ -930,6 +930,11 @@ void intel_sdvo_set_hotplug(struct drm_output *output, int on) u8 response[2]; u8 status; + DRM_DEBUG("read\n"); + intel_sdvo_write_cmd(output, SDVO_CMD_GET_ACTIVE_HOT_PLUG, NULL, 0); + intel_sdvo_read_response(output, &response, 2); + + DRM_DEBUG("write\n"); if (on) { intel_sdvo_write_cmd(output, SDVO_CMD_GET_HOT_PLUG_SUPPORT, NULL, 0); status = intel_sdvo_read_response(output, &response, 2); diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index 07ff7a4f..eac1c5e5 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -409,6 +409,7 @@ static void i915_hotplug_sdvo(struct drm_device *dev, int sdvoB) if (status != output_status_connected) { DRM_DEBUG("disconnect or unkown we don't do anything then\n"); + intel_sdvo_set_hotplug(output, 1); goto unlock; } @@ -417,6 +418,8 @@ static void i915_hotplug_sdvo(struct drm_device *dev, int sdvoB) i915_hotplug_stage2(dev, output); + intel_sdvo_set_hotplug(output, 1); + mutex_unlock(&dev->mode_config.mutex); return;