From 4bdb54ffcbc28e98bd09ec92ea1ec6d30421ddb3 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Tue, 18 Feb 2025 16:17:34 +0800 Subject: [PATCH] drm/bridge: synopsys: dw-hdmi: Fix nlpcm bitstream Clear the Audio Logic to fix the NLPCM and HBR situation switch. Signed-off-by: Sugar Zhang Change-Id: I98c25e36c76c1308c5b4d50a1d861e3b043e2235 --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c index f10c85bce57a..a26c01042ae5 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c @@ -59,6 +59,8 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data, return -EINVAL; } + dw_hdmi_audio_disable(hdmi); + /* Reset the FIFOs before applying new params */ hdmi_update_bits(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); @@ -138,6 +140,11 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data, hdmi_write(audio, conf1, HDMI_AUD_CONF1); hdmi_write(audio, conf2, HDMI_AUD_CONF2); + dw_hdmi_audio_enable(hdmi); + hdmi_update_bits(audio, HDMI_AUD_CONF0_SW_RESET, + HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); + hdmi_write(audio, (u8)~HDMI_MC_SWRSTZ_I2SSWRST_REQ, HDMI_MC_SWRSTZ); + return 0; }