[PATCH 4/4] drm/bridge: dw-hdmi: add cec driver
Hans Verkuil
hverkuil at xs4all.nl
Fri Jun 2 09:28:08 UTC 2017
On 06/02/17 11:15, Russell King - ARM Linux wrote:
> On Fri, Jun 02, 2017 at 06:02:28AM +0100, Jose Abreu wrote:
>> You should check that CEC is: not in standy, acknowledges
>> broadcast messages, signal free time is 5bit period, and not lost
>> arbitration, which basically means CEC_CTRL must be 0x2 and
>> IH_CEC_STAT0 must not have ARB_LOST set.
>
> If ARB_LOST is set, that will trigger an interrupt, and the interrupt
> handler will clear the bit. So all the time that the interrupt handler
> is present, ARB_LOST should be clear whenever we try to send a message.
>
> When we enable the CEC interface, we zero the CEC_CTRL register, which
> takes the controller out of standby, and initialises the command
> register.
>
> Bits 2:1 select the signal free time, and there's no requirement
> specified to require them to be set to '01' before writing the
> message - in fact, it's legal for them to be set to other values,
> particularly when retrying, which is something I've missed.
>
> 2-1 Frame Type bit
> FRAME_TYP
> 00 Signal Free Time = 3-bit periods. Previous
> attempt to send frame is unsuccessful.
> 01 Signal Free Time = 5-bit periods. New initiator
> wants to send a frame.
> 10 Signal Free Time = 7-bit periods. Present
> initiator wants to send another frame
> immediately after its previous frame. (spec
> CEC 9.1)
> 11 Illegal value. If software write this value,
> hardware will set the value to the default 2'b01.
The 'signal_free_time' argument of adap_transmit will have the recommended
signal free time. You can test against the CEC_SIGNAL_FREE_TIME_* defines
from media/cec.h. You probably saw this already, but just in case you missed
this...
Regards,
Hans
More information about the dri-devel
mailing list