[PATCH] ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile

Srinivasa Rao Mandadapu quic_srivasam at quicinc.com
Wed Oct 12 12:12:40 CEST 2022


From: Srinivasa Rao Mandadapu <srivasam at qualcomm.corp-partner.google.com>

Update HDMI volatile registers list as DMA, Channel Selection registers
, vbit control registers are being reflected by hardware DP port
disconnection.
This update is required to fix no display and no sound issue
observed after reconnecting TAMA/SANWA DP cables.
Once DP cable is unplugged, DMA control registers are being reset by
hardware, however at second plugin, new dma control values does not
updated to the dma hardware registers since new register value and
cached values at the time of first plugin are same.

Signed-off-by: Srinivasa Rao Mandadapu <srivasam at qualcomm.corp-partner.google.com>
---
 sound/soc/qcom/lpass-cpu.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c
index 8a56f38..99a3b44 100644
--- a/sound/soc/qcom/lpass-cpu.c
+++ b/sound/soc/qcom/lpass-cpu.c
@@ -782,10 +782,18 @@ static bool lpass_hdmi_regmap_volatile(struct device *dev, unsigned int reg)
 		return true;
 	if (reg == LPASS_HDMI_TX_LEGACY_ADDR(v))
 		return true;
+	if (reg == LPASS_HDMI_TX_VBIT_CTL_ADDR(v))
+		return true;
 
 	for (i = 0; i < v->hdmi_rdma_channels; ++i) {
 		if (reg == LPAIF_HDMI_RDMACURR_REG(v, i))
 			return true;
+		if (reg == LPASS_HDMI_TX_DMA_ADDR(v, i))
+			return true;
+		if (reg == LPASS_HDMI_TX_CH_LSB_ADDR(v, i))
+			return true;
+		if (reg == LPASS_HDMI_TX_CH_MSB_ADDR(v, i))
+			return true;
 	}
 	return false;
 }
-- 
2.7.4



More information about the Alsa-devel mailing list