android_kernel_oneplus_msm8998/sound/soc
S.j. Wang ad344fb862 ASoC: fsl_esai: fix channel swap issue when stream starts
commit 0ff4e8c61b794a4bf6c854ab071a1abaaa80f358 upstream.

There is very low possibility ( < 0.1% ) that channel swap happened
in beginning when multi output/input pin is enabled. The issue is
that hardware can't send data to correct pin in the beginning with
the normal enable flow.

This is hardware issue, but there is no errata, the workaround flow
is that: Each time playback/recording, firstly clear the xSMA/xSMB,
then enable TE/RE, then enable xSMB and xSMA (xSMB must be enabled
before xSMA). Which is to use the xSMA as the trigger start register,
previously the xCR_TE or xCR_RE is the bit for starting.

Fixes commit 43d24e76b6 ("ASoC: fsl_esai: Add ESAI CPU DAI driver")
Cc: <stable@vger.kernel.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-27 09:33:55 +02:00
..
adi
atmel ASoC: atmel-classd: fix audio clock rate 2017-04-08 09:53:31 +02:00
au1x ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read() 2018-05-30 07:48:52 +02:00
bcm ASoC: bcm2835-i2s: Fix module autoload for OF platform drivers 2015-08-27 20:22:47 +01:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus ASoC: cirrus: i2s: Fix {TX|RX}LinCtrlData setup 2018-07-03 11:21:27 +02:00
codecs ASoC: wm8940: Enable cache usage to fix crashes on resume 2018-11-10 07:41:37 -08:00
davinci Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/es8328', 'asoc/fix/fsl-sai', 'asoc/fix/rockchip', 'asoc/fix/sgtl5000' and 'asoc/fix/wm8974' into asoc-linus 2015-12-23 00:23:27 +00:00
dwc Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es8328', 'asoc/topic/fsl' and 'asoc/topic/fsl-card' into asoc-next 2015-10-26 11:16:03 +09:00
fsl ASoC: fsl_esai: fix channel swap issue when stream starts 2019-04-27 09:33:55 +02:00
generic ASoC: simple-card: Fix misleading error message 2018-02-16 20:09:36 +01:00
intel ASoC: Intel: Haswell/Broadwell: fix setting for .dynamic field 2019-03-23 08:44:18 +01:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: kirkwood: Fix module autoload for OF platform driver 2015-09-14 18:46:28 +01:00
mediatek ASoC: mediatek: add i2c dependency 2018-02-25 11:03:48 +01:00
mxs ASoC: mxs-sgtl5000: Convert to devm_snd_soc_register_card 2015-09-14 18:33:17 +01:00
nuc900 ASoC: nuc900: Fix a loop timeout test 2018-03-22 09:23:29 +01:00
omap ASoC: omap-dmic: Add pm_qos handling to avoid overruns with CPU_IDLE 2018-12-17 21:55:10 +01:00
pxa ASoC: pxa: Fix module autoload for platform drivers 2018-08-06 16:24:40 +02:00
qcom ASoC: qcom: change PTR_ERR argument 2015-09-17 11:36:19 +01:00
rockchip ASoC: rockchip: use __maybe_unused to hide st_irq_syscfg_resume 2018-02-25 11:03:49 +01:00
samsung ASoC: samsung: i2s: Ensure the RCLK rate is properly determined 2018-05-30 07:49:17 +02:00
sh ASoC: rsnd: SSI PIO adjust to 24bit mode 2018-04-13 19:50:11 +02:00
sirf ASoC: sirf: Fix potential NULL pointer dereference 2018-09-05 09:18:39 +02:00
spear ASoC: spear: fix error return code in spdif_in_probe() 2018-11-10 07:41:40 -08:00
sti ASoC: sti: set player private data 2015-11-19 17:49:35 +00:00
sunxi ASoC: sun4i-codec: return error code instead of NULL when create_card fails 2016-11-18 10:48:37 +01:00
tegra ASoC: tegra: Use devm_ioremap_resource instead of open code 2015-08-26 18:58:46 +01:00
txx9 ASoC: txx9: Convert to devm_snd_soc_register_platform 2015-08-28 18:09:04 +01:00
ux500 ASoC: ux500: add MODULE_LICENSE tag 2018-02-25 11:03:37 +01:00
xtensa ASoC: xtfpga-i2s: Add missing __rcu annotation 2015-07-29 15:07:54 +01:00
zte Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa' and 'asoc/topic/zx296702' into asoc-next 2015-08-30 15:59:18 +01:00
Kconfig Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
Makefile Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
soc-ac97.c ASoC: ac97: Add support for resetting device before registration 2015-07-23 17:33:28 +01:00
soc-cache.c
soc-compress.c ASoC: compress: Derive substream from stream based on direction 2017-07-27 15:06:04 -07:00
soc-core.c ASoC: dapm: Recalculate audio map forcely when card instantiated 2018-12-17 21:55:10 +01:00
soc-dapm.c ASoC: dapm: change snprintf to scnprintf for possible overflow 2019-03-23 08:44:19 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c
soc-io.c
soc-jack.c
soc-ops.c ASoC: fix kernel-doc warnings in sound/soc/soc-ops.c 2015-11-25 12:35:40 +00:00
soc-pcm.c ASoC: dpcm: don't merge format from invalid codec dai 2018-09-05 09:18:39 +02:00
soc-topology.c ASoC: topology: free created components in tplg load error 2019-03-23 08:44:33 +01:00
soc-utils.c ASoC: Document snd-soc-dummy-dai purpose 2015-08-31 16:40:26 +01:00