I have a pineview system with VGA output that takes anywhere from 1 to 5 seconds to detect an external monitor plug in/out, and I am trying to reduce that latency.  But I do not know how hotplug detection works.<div><br></div>
<div>My first sign of detection is in i915_driver_irq_handler() where we read PORT_HOTPLUG_STAT (0x61114).  We quickly get to i915_hotplug_work_func() and drm_sysfs_hotplug_event() after that, but just getting to i915_driver_irq_handler() takes 1 to 5 seconds.</div>
<div><br></div><div>My questions are 1) what takes so long to trigger the irq, and 2) what is the irq mechanism?</div><div><br></div><div>I first thought the i915 was polling over ddc to detect a monitor status change.  But I do not see any activity when I probe DDC_DATA or DDC_CLK.</div>
<div>I have not probed while plugging in an actual monitor since that removes my easy-to-probe point.</div><div><br></div><div>Does i915 look for a glitch on one of the signals before it probes DDC?</div><div><br></div><div>
bryan.</div><div><br></div><div><br></div>