]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soundwire: cadence: clear FIFO to avoid pop noise issue on playback start
authorranderwang <rander.wang@linux.intel.com>
Tue, 17 Mar 2020 16:33:29 +0000 (11:33 -0500)
committerVinod Koul <vkoul@kernel.org>
Thu, 19 Mar 2020 07:13:05 +0000 (12:43 +0530)
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>
drivers/soundwire/cadence_master.c

index eedc4cefdab0b6a53302b8e8b857fa538e559c0c..ecd357d1c63dc562c21fc04c5d76aeb56d6e59de 100644 (file)
@@ -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);
 }