Hello NXP
I have recently gotten HPD + DDC + CEC + ARC/eARC up and running using following components:
- fsl_xcvr.* driver.
- cec-ctl --audio
- cec-follower
- amixer - e.g. :
amixer -c imxaudioxcvr cset numid=1,iface=MIXER,name='XCVR Mode' 'ARC RX' or "eARC"
- gst-launch for routing sound to I2S output - but with 2 different pipeline setup for "ARC" and "eARC".
This on linux 5.15.71
--------
However I am now in a state where I cannot easily determine whenever user makes a manual transition(selection) between ARC and eARC on TV. And also I have to stop Gstreamer pipeline for re-configuring the driver for ARC or eARC (amixer).
On dedicated eARC chips like sii9437 I used to ask the chip about the "eARC link state".
In the code implemented in fsl_xcvr.c it seems only related code is that I get an interrupt if eARC link has failed: irq0_isr(): FSL_XCVR_IRQ_ARC_MODE. Maybe this information is available in status interrupt which seems not to be implemented in fsl_xcvr.
Can you maybe help me with any ideas how to achieve my goal - here are some questions for which answers could help me on the way:
- Basically: I want to automatically runtime change mode between ARC and eARC whenever TV wants this - have you tried this?
- Does the firmware of xcvr fully support the transition between "ARC", "DISCx", "IDLEx" & "eARC" as of HDMI specification ("HPD" + "COMMA") with an easy way to coordinate this with e.g. cec-follower etc?
- Would you have some more detailed design-notes / unit-test to support this?
- Is there a better way to route Audio from XCVR to I2S other than Gstreamer?
- Are there any plans to expand the functionality of fsl_xcvr with e.g. status information or HDMI state (DISC, IDLE etc.)?
- Any other information would help?
The good thing is that I have the audio pipeline working on both ARC and eARC just need a smooth transition.
Kind Regards Flemming