David Henningsson wrote at Thursday, May 19, 2011 3:55 AM:
On 2011-05-17 17:46, Takashi Iwai wrote:
At Tue, 17 May 2011 15:46:43 +0200, David Henningsson wrote:
Just as for headphones and microphone jacks, this patch adds reporting of HDMI jack status through the input layer.
...
To be honest; it's partially working, or rather it's working in the sense that it follows the eld proc file. It's also working in hda-emu.
I've tried it on one Nvidia (with binary drivers), and one Intel Graphics and well, and both seem to have the same problem essentially: There is no hotplug event coming in (through hdmi_unsol_event) when a monitor is removed. But with this patch in perhaps the graphics driver writers will feel more motivated to fix it? :-)
Note that the hotplug event is not coming in when you actually plug the cable but when you detect displays and/or apply the monitor configuration change.
That's certainly the expected behavior of our drivers at present.
The ELD data and PD/ELDV bits are only updated when we perform a modeset operation, which only happens in response to an explicit user request, either with XRandR or through our nvidia-settings application.
I'm not sure if there's a standard that says what our driver's behavior should be or not; I could argue that the current behavior makes sense to some degree, so that if the user unplugs their monitor then replugs it, we don't end up reprogramming all the display hardware. If we did disable the HDMI output path when a monitor was unplugged, given that I think the idea is that new paths don't get auto-programmed by the X driver when a new device is plugged in, but instead wait until XRandR is used to configure them, in which case if we'd just turned off all the display outputs, how would the user configure the new one without being able to see the desktop?
(While this may or may not be ideal, I'm simply pointing this out to indicate this behavior doesn't indicate any issue with David's patch)