[PATCH RFC 5/5] drm/i2c: add tda998x/tda9950 CEC driver

Russell King - ARM Linux linux at armlinux.org.uk
Fri Aug 12 08:59:03 PDT 2016


On Fri, Aug 12, 2016 at 05:53:17PM +0200, Hans Verkuil wrote:
> There are three possible 'states' of a CEC adapter w.r.t. logical addresses:
> 
> 1) There is no physical address or no logical addresses have been set
> by the application (CEC_ADAP_S_LOG_ADDRS): in that case the device
> will not participate on the bus, it doesn't care about receiving messages
> let alone replying to them. The only exception is if the device can
> snoop messages, that is allowed even if CEC_ADAP_S_LOG_ADDRS is never
> called. That is ideal to have a 'neutral' observer of the bus that just
> listens but never participates. Not all hardware supports snooping, though.
> 
> 2) CEC_ADAP_S_LOG_ADDRS is called and the device becomes an 'Unregistered'
> device (i.e. it gets logical address 15). In that case it should receive
> broadcast messages and be able to transmit messages.
> 
> 3) CEC_ADAP_S_LOG_ADDRS is called and the device claims one or more logical
> addresses in the range 0-14. Then it can receive broadcast and directed
> messages, and of course transmit messages.
> 
> From the point of view of the hardware state 1 is selected if adap_log_addr
> is called with LOG_ADDR_INVALID. Some hardware might still receive broadcast
> messages (because they can't turn that off) and those should be filtered out
> by the CEC framework. But I think that doesn't happen, which would be a bug.
> I'll verify that tomorrow.
> 
> State 2 is a problem for hardware that has to enable support to receive
> broadcast messages since adap_log_addr is never called with
> LOG_ADDR_UNREGISTERED as argument. I missed that, since the hardware I tested
> with always accepts broadcast messages. I'll look into this tomorrow as well.
> It should be easy to fix.
> 
> State 3 works OK.
> 
> So for the dw-hdmi cec driver that means that for state 1 you set 'addresses'
> to 0, for state 2 you set it to BIT(15) and for state 3 you always
> OR with BIT(15). At least, as I understand your hardware.

Thanks, I think that needs documenting in Documentation/cec.txt.

> BTW, if either the tda or dw-hdmi supports snooping mode, then I strongly
> recommend supporting that. It's great for debugging.

Neither do.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list