From: randerwang Date: Tue, 17 Mar 2020 16:33:29 +0000 (-0500) Subject: soundwire: cadence: clear FIFO to avoid pop noise issue on playback start X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~2488^2~25^2~2 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=b468a785bd3e0a0591c84cbde5787f58be38c3e4;p=linux.git 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 Signed-off-by: Pierre-Louis Bossart Link: https://lore.kernel.org/r/20200317163329.25501-18-pierre-louis.bossart@linux.intel.com Signed-off-by: Vinod Koul --- 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); }