On 3/13/26 20:59, Dmitry Baryshkov wrote:
On Thu, Mar 12, 2026 at 02:33:55PM -0500, Sen Wang wrote:
The IT66121 is an HDMI transmitter and does not support audio capture.
However, the driver registers hdmi-codec without setting no_i2s_capture,
causing the codec to advertise a non-functional capture stream. Userspace
audio servers such as PulseAudio then attempt to open this capture
device, resulting in errors.

Set no_i2s_capture and no_spdif_capture in hdmi_codec_pdata so that the
hdmi-codec driver only registers playback, matching the actual hardware
capability.

As you hopefully have the hardware, can I suggest instead porting the
driver to HDMI helpers and HDMI audio helpers? The
drm_connector_hdmi_audio_init() already sets thesse flags for you.

Hi Dmitry,

Thanks for your feedback. I dug the code base a little bit more, and I sure can try to convert the legacy hdmi_codec_ops related APIs to the newer hdmi_audio funcs and test it out. Hopefully there won't be any
regressions by this conversion.

Looks like I just need the following new drm_bridge_funcs:
 .hdmi_audio_startup
 .hdmi_audio_prepare
 .hdmi_audio_shutdown
 .hdmi_audio_mute_stream.

Please let me know if there's anything else to consider for the conversion, I'll take a stab at it and send a separate patch.

Best Regards,
Sen Wang


Signed-off-by: Sen Wang <[email protected]>
---
  drivers/gpu/drm/bridge/ite-it66121.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/bridge/ite-it66121.c 
b/drivers/gpu/drm/bridge/ite-it66121.c
index 329fa47a5701..a1b2c3d4e5f6 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -1476,6 +1476,8 @@ static int it66121_audio_codec_init(struct it66121_ctx 
*ctx, struct device *dev)
                .i2s = 1, /* Only i2s support for now */
                .spdif = 0,
                .max_i2s_channels = 8,
+               .no_i2s_capture = 1,
+               .no_spdif_capture = 1,
                .no_capture_mute = 1,
        };

--
2.34.1


Reply via email to