aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorranderwang <rander.wang@linux.intel.com>2020-03-17 11:33:29 -0500
committerVinod Koul <vkoul@kernel.org>2020-03-19 12:43:05 +0530
commitb468a785bd3e0a0591c84cbde5787f58be38c3e4 (patch)
treedee2becb3fa3233101a79004175d76f0d4162963
parent2c800e3ba7f6b43db5782c8b57bc47647a834215 (diff)
soundwire: cadence: clear FIFO to avoid pop noise issue on playback start
Driver should clear FIFO in PDI, or the previously stored sample data in FIFO will generate pop noise when stream is started. The soft reset bit will clear all the FIFO to zero and is self-cleared after that. Signed-off-by: randerwang <rander.wang@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200317163329.25501-18-pierre-louis.bossart@linux.intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r--drivers/soundwire/cadence_master.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c
index eedc4cefdab0..ecd357d1c63d 100644
--- a/drivers/soundwire/cadence_master.c
+++ b/drivers/soundwire/cadence_master.c
@@ -1503,6 +1503,7 @@ void sdw_cdns_config_stream(struct sdw_cdns *cdns,
cdns_updatel(cdns, offset, CDNS_PORTCTRL_DIRN, val);
val = pdi->num;
+ val |= CDNS_PDI_CONFIG_SOFT_RESET;
val |= ((1 << ch) - 1) << SDW_REG_SHIFT(CDNS_PDI_CONFIG_CHANNEL);
cdns_writel(cdns, CDNS_PDI_CONFIG(pdi->num), val);
}