[Intel-gfx] How does i915 CRT hotplug detection work?

Bryan Freed bfreed at chromium.org
Wed Dec 8 02:08:41 CET 2010


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.

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.

My questions are 1) what takes so long to trigger the irq, and 2) what is
the irq mechanism?

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.
I have not probed while plugging in an actual monitor since that removes my
easy-to-probe point.

Does i915 look for a glitch on one of the signals before it probes DDC?

bryan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20101207/2cdaa58c/attachment.html>


More information about the Intel-gfx mailing list