Re: [PATCH v2] drm/display: add hw_params callback function to drm_connector_hdmi_audio_ops

From: Dmitry Baryshkov

Date: Tue Apr 14 2026 - 14:14:08 EST


On Tue, Apr 14, 2026 at 12:18:36PM +0200, Luca Weiss wrote:
> Hi all,
>
> On Fri Oct 3, 2025 at 4:42 PM CEST, Luca Weiss wrote:
> > Hi Jianfeng Liu,
> >
> > On Thu Sep 25, 2025 at 6:05 AM CEST, Jianfeng Liu wrote:
> >> After reusing drm_hdmi_audio_* helpers and drm_bridge_connector
> >> integration in drm/msm/dp, we have dropped msm_dp_audio_hw_params and
> >> use msm_dp_audio_prepare instead. While userspace is still calling
> >> hw_params to do audio initialization, and we get the following errors:
> >>
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: q6apm_lpass_dai_prepare() started
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: q6apm_lpass_dai_prepare() started
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: q6apm_lpass_dai_prepare() started
> >> hdmi-audio-codec hdmi-audio-codec.0.auto: hdmi_codec_hw_params() started
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: q6apm_lpass_dai_prepare() started
> >> qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001002 cmd
> >> qcom-apm gprsvc:service:2:1: DSP returned error[1001002] 1
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: Failed to start APM port 104
> >> q6apm-lpass-dais 3700000.remoteproc:glink-edge:gpr:service@1:bedais: ASoC error (-22): at snd_soc_dai_prepare() on DISPLAY_PORT_RX_0
> >> MultiMedia2 Playback: ASoC error (-22): at dpcm_run_update_startup() on MultiMedia2 Playback
> >>
> >> msm_dp_audio_prepare is not called because hdmi-codec driver only checks
> >> and runs hw_params before q6apm_lpass_dai_prepare(). This commit will
> >> add hw_params callback same as drm_connector_hdmi_audio_prepare, so that
> >> hdmi-codec driver can work with userspace alsa.
> >
> > This also fixes DP audio regression on qcm6490-fairphone-fp5 (using
> > Elite audio architecture)
> >
> > [ 133.986865] qcom-q6afe aprsvc:service:4:4: AFE enable for port 0x6020 failed -110
> > [ 133.986878] q6afe-dai 3700000.remoteproc:glink-edge:apr:service@4:dais: fail to start AFE port 68
> > [ 133.986881] q6afe-dai 3700000.remoteproc:glink-edge:apr:service@4:dais: ASoC error (-110): at snd_soc_dai_prepare() on DISPLAY_PORT_RX_0
> > [ 134.045112] qcom-q6afe aprsvc:service:4:4: cmd = 0x100e5 returned error = 0x9
> > [ 134.045192] qcom-q6afe aprsvc:service:4:4: DSP returned error[9]
> > [ 134.045214] qcom-q6afe aprsvc:service:4:4: AFE enable for port 0x6020 failed -22
> > [ 134.045231] q6afe-dai 3700000.remoteproc:glink-edge:apr:service@4:dais: fail to start AFE port 68
> > [ 134.045243] q6afe-dai 3700000.remoteproc:glink-edge:apr:service@4:dais: ASoC error (-22): at snd_soc_dai_prepare() on DISPLAY_PORT_RX_0
> >
> > Tested-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx> # qcm6490-fairphone-fp5
> >
> > And I guess, even though I reported it after this patch was sent:
> >
> > Closes: https://lore.kernel.org/linux-arm-msm/DD8PK8AI24P7.YK0OGVYC0QFM@xxxxxxxxxxxxx/
>
> Is there any progress on resolving this issue? I'm still carrying this
> patch in my tree.
>
> Shall I send a revert of "drm/msm/dp: reuse generic HDMI codec
> implementation" to at least temporarily get this working again until a
> more proper fix can be made?

My understanding was that it should be fixed by the following patch:

https://lore.kernel.org/all/20260402081118.348071-12-srinivas.kandagatla@xxxxxxxxxxxxxxxx/

>
> Regards
> Luca

--
With best wishes
Dmitry