(EXT) HDMI CEC on ODROID-N2+

Stefan Agner stefan at agner.ch
Sat Jan 15 02:52:31 PST 2022


Hi Alexander,

On 2022-01-15 11:02, Alexander Stein wrote:
> Hi Stefan,
> 
> Am Donnerstag, 13. Januar 2022, 15:36:38 CET schrieb Stefan Agner:
>> Hi Neil,
>>
>> I am trying to use HDMI CEC on ODROID-N2+ using Linux 5.10.91. However,
>> I was unsuccessful: As far as I can tell cec-client uses the right
>> device (I disabled CONFIG_DRM_DW_HDMI_CEC since my kernel is still
>> missing your patch "drm/meson: dw-hdmi: disable DW-HDMI CEC
>> sub-driver"). But communication won't work, and dmesg prints timeout
>> messages:
>>
>> [   68.831253] cec-meson_g12a_ao_cec: message ff 84 20 00 06 timed out
>> [   71.134987] cec-meson_g12a_ao_cec: message ff 87 00 15 82 timed out
>> [   73.438826] cec-meson_g12a_ao_cec: message f0 timed out
>> [   75.742677] cec-meson_g12a_ao_cec: message f0 timed out
>> [   78.046555] cec-meson_g12a_ao_cec: message f0 timed out
>> [   80.350446] cec-meson_g12a_ao_cec: message f0 timed out
>> [   82.654358] cec-meson_g12a_ao_cec: message 11 timed out
>> [   84.958285] cec-meson_g12a_ao_cec: message 11 timed out
>> [   87.262194] cec-meson_g12a_ao_cec: message 11 timed out
>> [   89.566130] cec-meson_g12a_ao_cec: message 11 timed out
>>
>> I did a quick test with CoreELEC which uses the 4.9 downstream kernel,
>> CEC seems to work there. So it does not seem to be my hardware setup.
>>
>> A quick test with the latest Linux 5.16 shows the same errors.
>>
>> Do you happen to have an idea? Do you know if HDMI CEC using upstream
>> kernels worked at one point on that particular platform?
> 
> I'm using Arch Linux on my ODROID-n2 (non-plus) and HDMI CEC works as 
> expected.
> Currently I'm running a 5.15.13-1-aarch64-ARCH kernel. AFAICS the mentioned 
> patch is mainline since v5.14. I can see my TV without issues. I have to add 
> that not every cable is suitable for HDMI CEC, I have one where CEC does not 
> work (in general).

Hm, interesting, thanks for the datapoint!

I tried to reproduce your findings, unfortunately I am not successful in
booting mainline using Arch Linux ARM so far. It seems it comes with
downstream 4.9 kernel by default (where CEC seems to work in this case
too). I then installed linux-aarch64 and adjusted the device tree, but
it seems that the downstream U-Boot 2015.01-10 has some hardcoded
"rsvmem" command which fails. How are you booting v5.14?

It is a bit surprising that 5.15.13 works for you but 5.16 didn't for
me. That makes me wonder, could it be bootloader dependent? Are you
using downstream U-Boot?

--
Stefan

> 
> HTH
> Alexander
> ------
> $ cec-ctl --playback
> $ cec-ctl -S
> Driver Info:
>         Driver Name                : meson-ao-cec-g12a
>         Adapter Name               : meson_g12a_ao_cec
>         Capabilities               : 0x0000011e
>                 Logical Addresses
>                 Transmit
>                 Passthrough
>                 Remote Control Support
>                 Connector Info
>         Driver version             : 5.15.13
>         Available Logical Addresses: 4
>         DRM Connector Info         : card 1, connector 32
>         Physical Address           : 1.0.0.0
>         Logical Address Mask       : 0x0010
>         CEC Version                : 2.0
>         Vendor ID                  : 0x000c03 (HDMI)
>         OSD Name                   : 'Playback'
>         Logical Addresses          : 1 (Allow RC Passthrough)
> 
>           Logical Address          : 4 (Playback Device 1)
>             Primary Device Type    : Playback
>             Logical Address Type   : Playback
>             All Device Types       : Playback
>             RC TV Profile          : None
>             Device Features        :
>                 None
> 
>         System Information for device 0 (TV) from device 4 (Playback Device 
> 1):
>                 CEC Version                : 1.4
>                 Physical Address           : 0.0.0.0
>                 Primary Device Type        : TV
>                 Vendor ID                  : 0x080046 (Sony)
>                 OSD Name                   : 'TV'
>                 Power Status               : Standby
> 
>         Topology:
> 
>             0.0.0.0: TV
>                 1.0.0.0: Playback Device 1



More information about the linux-amlogic mailing list