CEC blocks idle on omap4

Hans Verkuil hverkuil at xs4all.nl
Mon Mar 25 16:27:37 UTC 2019


On 3/25/19 5:21 PM, Tony Lindgren wrote:
> * Hans Verkuil <hverkuil at xs4all.nl> [190325 16:12]:
>> On 3/25/19 4:55 PM, Laurent Pinchart wrote:
>>>> The reality is that HDMI CEC and HDMI video are really independent of
>>>> one another. So I wonder if it isn't better to explain the downsides
>>>> of enabling CEC for the omap4 in the CONFIG_OMAP4_DSS_HDMI_CEC
>>>> description. And perhaps disable it by default?
>>>
>>> This should be controllable by userspace. From a product point of view,
>>> it should be possible to put the system in a deep sleep state where CEC
>>> isn't available, or in a low sleep state where CEC works as expected.
>>>
>>
>> Userspace can always disable CEC. The hdmi_cec_adap_enable() callback in
>> hdmi4_cec.c is called whenever the CEC adapter is enabled or disabled.
> 
> OK
> 
>> I'm not actually sure why hdmi4_cec_init() would block anything since it
>> just registers the CEC device. It does not enable it until userspace
>> explicitly enables it with e.g. 'cec-ctl --playback'.
>>
>> hdmi4_cec_init() does configure a CEC clock, but that can be moved to
>> hdmi_cec_adap_enable() if necessary.
> 
> Hey I'm pretty sure that's the right fix then :)
> 
>> Note that I am not sure what is meant with 'SoC core retention idle',
>> so perhaps I just misunderstand the problem.
> 
> If certain SoC clocks are busy, the SoC will not enter deeper
> idle states. The hardware has autoidle type features on omaps.

Can you make a patch? It is very easy to test:

To configure the CEC adapter: cec-ctl --playback
To unconfigure the CEC adapter: cec-ctl --clear

As long as the CEC adapter is unconfigured you should be able to enter
the deeper idle states. But not if it is configured.

And if you are moving code anyway, can you fix the typo in the comment?
devider -> divider

That hurts my eyes...

Regards,

	Hans


More information about the dri-devel mailing list