I have to say I've thoroughly enjoyed poking around with HDMI the last couple days. I hardly get a chance to do this kind of thing anymore.
Right now I've got the adv7520 driver kind-of communicating with hdmid, and the communication path between hdmid and the Android frameworks is OK. It threw me off for a couple hours that because of the way the communication is structured between hdmid and the framework, simply pushing a new hdmid to the phone and starting it wont allow the daemon to work as expected. You have to restart the phone so the framework sends out the "start" event again, otherwise hdmid will not work correctly.
hdmid appears that it is designed to work with a newer interface to the hdmi driver support, so right now I don't believe HDCP or HPD (isn't necessary) will work. I don't think it will detect powering up with the HDMI cable connected will utilize the display either. It's only triggering off the interrupt of cable detected right now. I also hard-coded in 720p@60Hz for now. The resolution detection can be changed in hdmid if we don't want to touch the driver level, but I believe to get HDCP to work we'd need to get the interface created in the driver.
I've got a blank screen coming up reliably on my TV--it no longer complains there's no signal present. The signal is killed when the phone's screen turns off and comes back when the phone's screen turns on as well. I don't have a picture up yet though.
This is the first time I've used HDMI on an Android device. Does anyone know if stock ROMs only output over the HDMI if a video app, etc. is playing? Or do they mirror the launcher and everything as well?
There's a couple changes upstream related to HDMI which are hung up in Gerrit which might help with getting it working 100%:
11978 and
12735. I also wonder if the problems we're seeing in other areas with getting some video to work is related.
For the curious, here's what my logcat looks like without klogd running at this point -