> The passthrough mode is not default, it gets activated by the driver so that
> drm_get_edid can then fetch the EDID. One other nasty thing is that to end 
> the conversation
> with the monitor you are supposed to write 0x00 to register 0x1a of the HDMI 
> transmitter,
> which means the SoC puts address 0x39 on the bus, but the HDMI transmitter 
> lets that
> through, the monitor NACKs the address (because its address is 0x50), and 
> from that
> moment on the control is back with the HDMI transmitter.
> Unfortunately I don't have any other slave on the same bus, but I wonder what 
> happens
> if someone else tries to use the same bus while the pass through mode is 
> operating...

Wouldn't all this really speak for an i2c gate? Do all enablement stuff
in select(), all disablement stuff in deselect(), and make sure
deselect() is called after every transfer. That would mean the
passthrough is only active when the EDID eeprom is accessed. Would that
work? Given the above, it looks quite sane to do it like that in order
to avoid side-effects of the open passthrough.

Attachment: signature.asc
Description: PGP signature

Reply via email to