Message ID | 20250329191433.873237-1-martin.blumenstingl@googlemail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] ASoC: hdmi-codec: wire up the .prepare callback also for SPDIF DAI ops | expand |
On Sat, Mar 29, 2025 at 08:14:33PM +0100, Martin Blumenstingl wrote: > Commit 2fef64eec23a ("ASoC: hdmi-codec: Add a prepare hook") added a > prepare implementation. Back then the new callback was only integrated > with hdmi_codec_i2s_dai_ops (which is used by the I2S input code-path). > It was not added to hdmi_codec_spdif_dai_ops (which is used by the SPDIF > input code-path). > > With commit baf616647fe6 ("drm/connector: implement generic HDMI audio > helpers") the DRM subsystem has gained a helper framework which can be > used by HDMI controller drivers. HDMI controller drivers are often > tightly coupled with the hdmi-codec because of the so-called HDMI audio > infoframe (which is often managed by the display controller). > > To allow the new DRM HDMI audio framework to work with the hdmi-codec > driver for SPDIF inputs we also need to hook up the prepare callback to > hdmi_codec_spdif_dai_ops. Just hooking into the hw_params callback would > not be enough as hw_params (is called too early and) doesn't have access > to the HDMI audio infoframe contents. > > Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > --- > Changes since v1 at [0]: > - re-sending since there was no feedback > > > The following three upstream drivers can use the hdmi-codec with SPDIF > inputs: > - drivers/gpu/drm/bridge/adv7511/adv7511_audio.c > - drivers/gpu/drm/rockchip/cdn-dp-core.c > - drivers/gpu/drm/tegra/hdmi.c > > It would be great if any of the maintainers of these platforms (Cc'ed) > could confirm that this patch doesn't break anything. > > Mark, Dmitry: who of you would take this patch (Mark via the ASoC > tree or Dmitry via drm-misc)? There is no reason for it to go through drm-misc, we picked up only several API changes in order to ease merging of the patchset. This patch should go normally via Mark's tree.
On Sat, Mar 29, 2025 at 08:14:33PM +0100, Martin Blumenstingl wrote: > Commit 2fef64eec23a ("ASoC: hdmi-codec: Add a prepare hook") added a > prepare implementation. Back then the new callback was only integrated > with hdmi_codec_i2s_dai_ops (which is used by the I2S input code-path). > It was not added to hdmi_codec_spdif_dai_ops (which is used by the SPDIF > input code-path). > > With commit baf616647fe6 ("drm/connector: implement generic HDMI audio > helpers") the DRM subsystem has gained a helper framework which can be > used by HDMI controller drivers. HDMI controller drivers are often > tightly coupled with the hdmi-codec because of the so-called HDMI audio > infoframe (which is often managed by the display controller). > > To allow the new DRM HDMI audio framework to work with the hdmi-codec > driver for SPDIF inputs we also need to hook up the prepare callback to > hdmi_codec_spdif_dai_ops. Just hooking into the hw_params callback would > not be enough as hw_params (is called too early and) doesn't have access > to the HDMI audio infoframe contents. > > Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > --- > Changes since v1 at [0]: > - re-sending since there was no feedback Almost forgot: Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c index 17019b1d680b..8bd125e18a7f 100644 --- a/sound/soc/codecs/hdmi-codec.c +++ b/sound/soc/codecs/hdmi-codec.c @@ -1010,6 +1010,7 @@ static const struct snd_soc_dai_ops hdmi_codec_spdif_dai_ops = { .startup = hdmi_codec_startup, .shutdown = hdmi_codec_shutdown, .hw_params = hdmi_codec_hw_params, + .prepare = hdmi_codec_prepare, .mute_stream = hdmi_codec_mute, .pcm_new = hdmi_codec_pcm_new, };
Commit 2fef64eec23a ("ASoC: hdmi-codec: Add a prepare hook") added a prepare implementation. Back then the new callback was only integrated with hdmi_codec_i2s_dai_ops (which is used by the I2S input code-path). It was not added to hdmi_codec_spdif_dai_ops (which is used by the SPDIF input code-path). With commit baf616647fe6 ("drm/connector: implement generic HDMI audio helpers") the DRM subsystem has gained a helper framework which can be used by HDMI controller drivers. HDMI controller drivers are often tightly coupled with the hdmi-codec because of the so-called HDMI audio infoframe (which is often managed by the display controller). To allow the new DRM HDMI audio framework to work with the hdmi-codec driver for SPDIF inputs we also need to hook up the prepare callback to hdmi_codec_spdif_dai_ops. Just hooking into the hw_params callback would not be enough as hw_params (is called too early and) doesn't have access to the HDMI audio infoframe contents. Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> --- Changes since v1 at [0]: - re-sending since there was no feedback The following three upstream drivers can use the hdmi-codec with SPDIF inputs: - drivers/gpu/drm/bridge/adv7511/adv7511_audio.c - drivers/gpu/drm/rockchip/cdn-dp-core.c - drivers/gpu/drm/tegra/hdmi.c It would be great if any of the maintainers of these platforms (Cc'ed) could confirm that this patch doesn't break anything. Mark, Dmitry: who of you would take this patch (Mark via the ASoC tree or Dmitry via drm-misc)? [0] https://lore.kernel.org/dri-devel/20250105162407.30870-1-martin.blumenstingl@googlemail.com/ sound/soc/codecs/hdmi-codec.c | 1 + 1 file changed, 1 insertion(+)