FROMLIST: drm/display: add hw_params callback function to drm_connect…#429
FROMLIST: drm/display: add hw_params callback function to drm_connect…#429naala-qcom wants to merge 1 commit intoqualcomm-linux:qcom-6.18.yfrom
Conversation
drm_connector_hdmi_audio_ops 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. Tested with Radxa Dragon Q6A. Link: https://lore.kernel.org/linux-arm-msm/20250925040530.20731-1-liujianfeng1994@gmail.com/ Fixes: 98a8920 ("drm/msm/dp: reuse generic HDMI codec implementation") Signed-off-by: Jianfeng Liu <liujianfeng1994@gmail.com> Tested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Test Matrix
|
|
Boot failure on RB8 device : |
Test Matrix
|
sgaud-quic
left a comment
There was a problem hiding this comment.
Boot failure on RB8 device :
https://lava-oss.qualcomm.com/scheduler/job/68887
[[0;32m OK [0m] Started [0;1;39mQRTR TFTP service[0m.
[ 11.048559][ T324] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 11.063720][ T327] NET: Registered PF_QIPCRTR protocol family
[ 11.066415][ T239] qcom-ice 1d88000.crypto: Found QC Inline Crypto Engine (ICE) v3.2.0
[ 11.066422][ T239] qcom-ice 1d88000.crypto: QC Hardware Key Manager (HWKM) version v1
[ 11.066483][ T239] qcom-ice 1d88000.crypto: Not using HWKM. Supporting raw keys only.
[ 11.066843][ T265] qcom-qmp-pcie-phy 1c14000.phy: supply vdda-qref not found, using dummy regulator
The change is tested on RB8 device. Device booting fine locally. Also in the logs of https://lava-oss.qualcomm.com/scheduler/job/68887, I don't see boot failure. It looks to be some automation timeout. Are other PR passing for RB8? Can we rerun again? |
Test Matrix
|
Test Matrix
|
|
NOTE: This patch works around the issue. The proper fix should be coming from the ASoC side and it should involve not touching the DSP before it's not ready. As such I'm recommending not to merge this PR and to implement a proper fix. |
…or_hdmi_audio_ops
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.
Tested with Radxa Dragon Q6A.
Link: https://lore.kernel.org/linux-arm-msm/20250925040530.20731-1-liujianfeng1994@gmail.com/
Fixes: 98a8920 ("drm/msm/dp: reuse generic HDMI codec implementation")
Tested-by: Krzysztof Kozlowski krzysztof.kozlowski@linaro.org
CRs-Fixed: 4493138