Re: [PATCH 00/15] drm/vc4: hdmi: Add CEC support for the BCM2711

From: Maxime Ripard
Date: Thu Dec 17 2020 - 08:01:24 EST


Hi Hans,

On Thu, Dec 17, 2020 at 11:53:42AM +0100, Hans Verkuil wrote:
> On 17/12/2020 11:49, Maxime Ripard wrote:
> > Hi Hans,
> >
> > On Wed, Dec 16, 2020 at 01:35:43PM +0100, Hans Verkuil wrote:
> >> Hi Maxime,
> >>
> >> On 10/12/2020 14:46, Maxime Ripard wrote:
> >>> Hi,
> >>>
> >>> Here's a series introducing the CEC support for the BCM2711 found on the
> >>> RaspberryPi4.
> >>>
> >>> The BCM2711 HDMI controller uses a similar layout for the CEC registers, the
> >>> main difference being that the interrupt handling part is now shared between
> >>> both HDMI controllers.
> >>>
> >>> This series is mainly about fixing a couple of bugs, reworking the driver to
> >>> support having two different interrupts, one for each direction, provided by an
> >>> external irqchip, and enables the irqchip driver for the controller we have.
> >>>
> >>> This has been tested on an RPi3 and RPi4, but requires the latest firmware.
> >>> It's is based on the 10 and 12 bpc series.
> >>
> >> This series looks good to me. Before I give my Acked-by for this series, can you
> >> confirm that it is possible to transmit the Image View On message on both outputs
> >> of the RPi4 when the HPD is low?
> >>
> >> See section "CEC Without HPD" in https://hverkuil.home.xs4all.nl/cec-status.txt
> >> on how to test this with a Pulse-Eight device.
> >>
> >> This should work.
> >
> > This is the output on the RPi4:
> >
> > # cec-ctl --playback
> > Driver Info:
> > Driver Name : vc4_hdmi
> > Adapter Name : vc4
> > Capabilities : 0x0000010e
> > Logical Addresses
> > Transmit
> > Passthrough
> > Driver version : 5.10.0
> > Available Logical Addresses: 1
> > Physical Address : f.f.f.f
> > Logical Address Mask : 0x0000
> > CEC Version : 2.0
> > Vendor ID : 0x000c03 (HDMI)
> > OSD Name : Playback
> > Logical Addresses : 1 (Allow RC Passthrough)
> >
> > Logical Address : Not Allocated
> > Primary Device Type : Playback
> > Logical Address Type : Playback
> > All Device Types : Playback
> > RC TV Profile : None
> > Device Features :
> > None
> >
> > # cec-ctl -t0 --image-view-on
> > Driver Info:
> > Driver Name : vc4_hdmi
> > Adapter Name : vc4
> > Capabilities : 0x0000010e
> > Logical Addresses
> > Transmit
> > Passthrough
> > Driver version : 5.10.0
> > Available Logical Addresses: 1
> > Physical Address : f.f.f.f
> > Logical Address Mask : 0x0000
> > CEC Version : 2.0
> > Vendor ID : 0x000c03 (HDMI)
> > OSD Name : Playback
> > Logical Addresses : 1 (Allow RC Passthrough)
> >
> > Logical Address : Not Allocated
> > Primary Device Type : Playback
> > Logical Address Type : Playback
> > All Device Types : Playback
> > RC TV Profile : None
> > Device Features :
> > None
> >
> >
> > Transmit from Unregistered to TV (15 to 0):
> > CEC_MSG_IMAGE_VIEW_ON (0x04)
> > Sequence: 1 Tx Timestamp: 77.631s
> >
> >
> > And this is the output on my desktop with the Pulse-Eight:
> > $ sudo cec-ctl -p0.0.0.0 --tv
> > Driver Info:
> > Driver Name : pulse8-cec
> > Adapter Name : serio0
> > Capabilities : 0x0000003f
> > Physical Address
> > Logical Addresses
> > Transmit
> > Passthrough
> > Remote Control Support
> > Monitor All
> > Driver version : 5.9.8
> > Available Logical Addresses: 1
> > Connector Info : None
> > Physical Address : 0.0.0.0
> > Logical Address Mask : 0x0001
> > CEC Version : 2.0
> > Vendor ID : 0x000c03 (HDMI)
> > OSD Name : 'TV '
> > Logical Addresses : 1 (Allow RC Passthrough)
> >
> > Logical Address : 0 (TV)
> > Primary Device Type : TV
> > Logical Address Type : TV
> > All Device Types : TV
> > RC TV Profile : None
> > Device Features :
> > None
> >
> > $ sudo cec-ctl -M
> > Driver Info:
> > Driver Name : pulse8-cec
> > Adapter Name : serio0
> > Capabilities : 0x0000003f
> > Physical Address
> > Logical Addresses
> > Transmit
> > Passthrough
> > Remote Control Support
> > Monitor All
> > Driver version : 5.9.8
> > Available Logical Addresses: 1
> > Connector Info : None
> > Physical Address : 0.0.0.0
> > Logical Address Mask : 0x0001
> > CEC Version : 2.0
> > Vendor ID : 0x000c03 (HDMI)
> > OSD Name : 'TV '
> > Logical Addresses : 1 (Allow RC Passthrough)
> >
> > Logical Address : 0 (TV)
> > Primary Device Type : TV
> > Logical Address Type : TV
> > All Device Types : TV
> > RC TV Profile : None
> > Device Features :
> > None
> >
> >
> >
> > Initial Event: State Change: PA: 0.0.0.0, LA mask: 0x0001, Conn Info: no
> > Received from Unregistered to TV (15 to 0): IMAGE_VIEW_ON (0x04)
> >
> > So it looks like it's working as expected?
>
> Yes, it looks good. Make sure you test this for both outputs of the RPi4.

It's a good thing you asked, I don't appear to get CEC interrupts from
HDMI1. I'll fix it and send another version (probably not before the end
of december though).

> If it works for both, then you can add my
>
> Acked-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
>
> for this series.
>
> Very nice work, thank you for doing this!

Thanks!

I'll hold your a-b until the next version though, fixing hdmi1 might
change a few things.

Maxime

Attachment: signature.asc
Description: PGP signature