mirror of https://lore.kernel.org/linux-amlogic/
 help / color / mirror / Atom feed
From: Stefan Agner <stefan@agner.ch>
To: Alexander Stein <alexander.stein@mailbox.org>
Cc: narmstrong@baylibre.com, linux-amlogic@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: Re: (EXT) HDMI CEC on ODROID-N2+
Date: Sat, 15 Jan 2022 14:28:01 +0100	[thread overview]
Message-ID: <772e1613cd49ddac3941ae584e0e89c2@agner.ch> (raw)
In-Reply-To: <8112d37eaed169735ca8b46e5d587210@agner.ch>

Hi Alexander, Hi Neil,

On 2022-01-15 11:52, Stefan Agner wrote:
> 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?

FWIW, adjusted U-Boot load addresses fixed that issue:
# Set load addresses
setenv dtb_loadaddr "0x20000000"
setenv loadaddr "0x1080000"
setenv initrd_loadaddr "0x4080000"

And I can confirm, HDMI CEC works with Arch Linux 5.15.13 kernel!

> 
> 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?

That assumption turned out to be wrong: I used our mainline based U-Boot
2021.10 instead of the Arch Linux ARM U-Boot, and HDMI CEC continued to
work.

I then moved to 5.15.13 as well to rule out any kernel changes. But
still, in our configuration HDMI CEC did not work. I ended up diffing
configuration, and noticed that we are using built-in CONFIG_CEC_CORE
whereas Arch Linux uses it as a module. To build CONFIG_CEC_CORE as a
module I had to change some other configuration from built-in to module,
namely:

- CONFIG_CEC_CORE=m
- CONFIG_DRM_DW_HDMI=m
- CONFIG_DRM_MESON=m
- CONFIG_DRM_MESON_DW_HDMI=m

With that change, HDMI CEC started to work in my builds too!

With that change, it also works on Linux 5.10.

I guess there is some ordering issue or something which makes it fail
when those drivers are built-in? Note that I did not change
CONFIG_CEC_MESON_G12A_AO, that driver was already a module before.

--
Stefan

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

  reply	other threads:[~2022-01-15 13:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-13 14:36 Stefan Agner
2022-01-13 15:52 ` Neil Armstrong
2022-01-15 10:02 ` (EXT) " Alexander Stein
2022-01-15 10:52   ` Stefan Agner
2022-01-15 13:28     ` Stefan Agner [this message]
2022-01-16 10:14       ` Alexander Stein
2022-01-16 10:50         ` Stefan Agner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=772e1613cd49ddac3941ae584e0e89c2@agner.ch \
    --to=stefan@agner.ch \
    --cc=alexander.stein@mailbox.org \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-media@vger.kernel.org \
    --cc=narmstrong@baylibre.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®