This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HDCP issue with Splitter/Repeater on DM816x

We're implementing a streaming device that is planned to be fully HDCP compliant with HDCP 1.x to 2.2 conversion and back, based on a DM8168 device with EZSDK 5.05.01.04, Linux 2.6.37 PSP 04.04.00.01 and CEC/HDCP patches supplied by TI.

So far, with only a minor patch the the arch/arm/plat-omap/hdcp_lib.c, I have a working implementation up and running for a single TV attached to the DM8168 HDMI output. The patch was necessary to be able to read the ID of the attached TV to forward it to the source.

Now the issue we currently have is when we attach a splitter/repeater with one or more TVs. The HDCP handshaking is transparent, and we only get the ID of the splitter itself.

I tried to use the IOCTL call to wait for the stage 2 event, but this never gets called. I traced it down to the driver level, and it seems the REPEATER bit never gets set, so stage 2 is never executed within the driver. Specifically the function hdcp_lib_check_repeater_bit_in_tx() never returns anything else than 0, and so hdcp_wq_check_r0() never transitions in state HDCP_WAIT_KSV_LIST.

Thus we can't access the list of receiver IDs to forward them to the source.

I'm currently stuck at this point of the implementation, as without the KSV list we can't proceed the HDCP handshake. It would be okay to limit the output to a single TV, but I don't see a way to do that either.

With kind regards and thanks for any help,

Florian.