drivers/gpu/drm/bridge/ite-it66121.c | 2 ++ 1 file changed, 2 insertions(+)
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.
Signed-off-by: Sen Wang <sen@ti.com>
---
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
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. > > Signed-off-by: Sen Wang <sen@ti.com> > --- > 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 -- With best wishes Dmitry
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 <sen@ti.com> >> --- >> 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 >
© 2016 - 2026 Red Hat, Inc.