On Tue, Jun 03, 2025 at 10:16:14PM +0800, Xilin Wu wrote: > On 2025/6/3 22:06:36, Dmitry Baryshkov wrote: > > On Thu, May 29, 2025 at 10:40:12AM +0800, Xilin Wu wrote: > > > On 2025/4/24 01:52:45, Dmitry Baryshkov wrote: > > > > From: Dmitry Baryshkov <lu...@kernel.org> > > > > > > > > The MSM DisplayPort driver implements several HDMI codec functions > > > > in the driver, e.g. it manually manages HDMI codec device registration, > > > > returning ELD and plugged_cb support. In order to reduce code > > > > duplication reuse drm_hdmi_audio_* helpers and drm_bridge_connector > > > > integration. > > > > > > > > Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org> > > > > Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com> > > > > --- > > > > A lot of DisplayPort bridges use HDMI Codec in order to provide audio > > > > support. Present DRM HDMI Audio support has been written with the HDMI > > > > and in particular DRM HDMI Connector framework support, however those > > > > audio helpers can be easily reused for DisplayPort drivers too. > > > > > > > > Patches by Hermes Wu that targeted implementing HDMI Audio support in > > > > the iTE IT6506 driver pointed out the necessity of allowing one to use > > > > generic audio helpers for DisplayPort drivers, as otherwise each driver > > > > has to manually (and correctly) implement the get_eld() and plugged_cb > > > > support. > > > > > > > > Implement necessary integration in drm_bridge_connector and provide an > > > > example implementation in the msm/dp driver. > > > > --- > > > > Changes in v7: > > > > - Dropped applied patches > > > > - Link to v6: > > > > https://lore.kernel.org/r/20250314-dp-hdmi-audio-v6-0-dbd228fa7...@oss.qualcomm.com > > > > > > > > Changes in v6: > > > > - Added DRM_BRIDGE_OP_DP_AUDIO and separate set of DisplayPort audio > > > > callbacks to the drm_bridge interface (Maxime) > > > > - Link to v5: > > > > https://lore.kernel.org/r/20250307-dp-hdmi-audio-v5-0-f3be215fd...@linaro.org > > > > > > > > Changes in v5: > > > > - Rebased on top of linux-next, also handling HDMI audio piece of the > > > > MSM HDMI driver. > > > > - Link to v4: > > > > https://lore.kernel.org/r/20250301-dp-hdmi-audio-v4-0-82739daf2...@linaro.org > > > > > > > > Changes in v4: > > > > - Rebased on linux-next, adding DRM_BRIDGE_OP_HDMI_AUDIO to Synopsys QP > > > > HDMI driver. > > > > - Drop outdated comment regarding subconnector from the commit message. > > > > - Link to v3: > > > > https://lore.kernel.org/r/20250219-dp-hdmi-audio-v3-0-42900f034...@linaro.org > > > > > > > > Changes in v3: > > > > - Dropped DRM_BRIDGE_OP_DisplayPort, added DRM_BRIDGE_OP_HDMI_AUDIO > > > > (Laurent, Maxime) > > > > - Dropped the subconnector patch (again) > > > > - Link to v2: > > > > https://lore.kernel.org/r/20250209-dp-hdmi-audio-v2-0-16db6ebf2...@linaro.org > > > > > > > > Changes in v2: > > > > - Added drm_connector_attach_dp_subconnector_property() patches > > > > - Link to v1: > > > > https://lore.kernel.org/r/20250206-dp-hdmi-audio-v1-0-8aa14a8c0...@linaro.org > > > > --- > > > > drivers/gpu/drm/msm/Kconfig | 1 + > > > > drivers/gpu/drm/msm/dp/dp_audio.c | 131 > > > > ++++-------------------------------- > > > > drivers/gpu/drm/msm/dp/dp_audio.h | 27 ++------ > > > > drivers/gpu/drm/msm/dp/dp_display.c | 28 ++------ > > > > drivers/gpu/drm/msm/dp/dp_display.h | 6 -- > > > > drivers/gpu/drm/msm/dp/dp_drm.c | 8 +++ > > > > 6 files changed, 31 insertions(+), 170 deletions(-) > > > > > > > > > > This change breaks DP audio on the qcs6490 platform, tested on kernel > > > next-20250528. > > > > I can not confirm this issue here (though I tested it on a different > > hardware). Do you have any patches on top of linux-next? > > > > I have this patch series applied, but I don't think it could be relevant: > > [PATCH v4 0/8] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards > https://lore.kernel.org/all/20250527111227.2318021-1-quic_pkump...@quicinc.com/ > > > > > > > [ 0.368035] [drm:dpu_kms_hw_init:1173] dpu hardware revision:0x70020000 > > > [ 0.369359] hdmi-audio-codec hdmi-audio-codec.0.auto: hdmi_codec_probe: > > > dai_count 0 > > > [ 0.369362] hdmi-audio-codec hdmi-audio-codec.0.auto: hdmi_codec_probe: > > > Missing hw_params > > > [ 0.369364] hdmi-audio-codec hdmi-audio-codec.0.auto: hdmi_codec_probe: > > > Invalid parameters > > > [ 0.369366] hdmi-audio-codec hdmi-audio-codec.0.auto: probe with driver > > > hdmi-audio-codec failed with error -22 > > > [ 0.370536] [drm] Initialized msm 1.12.0 for ae01000.display-controller > > > on minor 0 > > > > > > Manually reverting this change solves the problem. > > > > It is suspicious, since dai_count can not be 0. We set > > hdmi_audio_max_i2s_playback_channels to 8, which in turn should set the > > hdmi_codec_pdata.i2s to 1. > > > > It suddenly comes to my mind that I'm using a kernel with everything > compiled as builtin. Could that be a possible issue?
What kernel args are you using? Do you have any kernel debug options enabled in the .config? I've tested the kernel on RB3 Gen2 and I still can not confirm the issue (I'm also using an all-in kernel) I've verified that on a running system I'm getting three HDMI audio codecs (one from LT9611UXC and two from DP controllers). Each of them binds immediately to the driver with no issues observed. -- With best wishes Dmitry