Delete the hotplug detection for HDMI. It depends on the EDID. If there is no EDID or the EDID type is analog, it should be marked as disconnected. --- src/i830_hdmi.c | 41 ----------------------------------------- 1 file changed, 41 deletions(-) Index: xf86_video_intel/src/i830_hdmi.c =================================================================== --- xf86_video_intel.orig/src/i830_hdmi.c 2009-08-31 13:10:08.000000000 +0800 +++ xf86_video_intel/src/i830_hdmi.c 2009-09-15 17:01:55.000000000 +0800 @@ -155,48 +155,7 @@ dev_priv->has_hdmi_sink = FALSE; - /* For G4X desktop chip, PEG_BAND_GAP_DATA 3:0 must first be written 0xd. - * Failure to do so will result in spurious interrupts being - * generated on the port when a cable is not attached. - */ - if (IS_G4X(pI830) && !IS_GM45(pI830)) { - temp = INREG(PEG_BAND_GAP_DATA); - OUTREG(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd); - } - - temp = INREG(PORT_HOTPLUG_EN); - - switch (dev_priv->output_reg) { - case SDVOB: - temp |= HDMIB_HOTPLUG_INT_EN; - break; - case SDVOC: - temp |= HDMIC_HOTPLUG_INT_EN; - break; - default: - return XF86OutputStatusUnknown; - } - - OUTREG(PORT_HOTPLUG_EN, temp); - - POSTING_READ(PORT_HOTPLUG_EN); - - i830WaitForVblank(pScrn); - switch (dev_priv->output_reg) { - case SDVOB: - bit = HDMIB_HOTPLUG_INT_STATUS; - break; - case SDVOC: - bit = HDMIC_HOTPLUG_INT_STATUS; - break; - default: - return XF86OutputStatusUnknown; - } - - if ((INREG(PORT_HOTPLUG_STAT) & bit) != 0) status = XF86OutputStatusConnected; - else - return XF86OutputStatusDisconnected; edid_mon = xf86OutputGetEDID (output, intel_output->pDDCBus); if (!edid_mon || !DIGITAL(edid_mon->features.input_type))