linux_dsm_epyc7002/sound/soc/fsl
Maciej S. Szmigiero 01ca485171
ASoC: fsl_ssi: only enable proper channel slots in AC'97 mode
We need to make sure that only proper channel slots (in SACCST register)
are enabled at playback start time since some AC'97 CODECs (like VT1613 on
UDOO board) were observed requesting via SLOTREQ spurious ones just after
an AC'97 link is started but before the CODEC is configured by its driver.
When a bit for some channel slot is set in a SLOTREQ request then SSI sets
the relevant bit in SACCST automatically, which then 'sticks' until it is
manually unset.
The SACCST register is not writable directly, we have to use SACCDIS and
SACCEN registers to configure it instead (these aren't normal registers:
writing a '1' bit at some position in SACCEN sets the relevant bit in
SACCST; SACCDIS operates in a similar way but allows unsetting bits in
SACCST).

Theoretically, this should be necessary only for the very first playback
but since some CODECs are so untrustworthy and extra channel slots enabled
mean ruined playback let's play safe here and make sure that no extra
slots are enabled in SACCST every time a playback is started.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2017-11-29 10:39:28 +00:00
..
efika-audio-fabric.c ASoC: mpc5200_psc_ac97: Remove unused DAI ID defines 2017-01-10 18:45:26 +00:00
eukrea-tlv320.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
fsl_asrc_dma.c ASoC: fsl: make snd_pcm_hardware const 2017-08-17 17:56:52 +01:00
fsl_asrc.c ASoC: fsl_asrc: constify snd_soc_dai_ops structure 2017-07-17 16:16:39 +01:00
fsl_asrc.h ASoC: fsl_asrc: sound is wrong after suspend/resume 2016-01-05 13:19:11 +00:00
fsl_dma.c ASoC: fsl_dma: remove dma_object path member 2017-08-29 19:44:47 +01:00
fsl_dma.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
fsl_esai.c ASoC: fsl_esai: constify snd_soc_dai_ops structure 2017-07-17 16:16:38 +01:00
fsl_esai.h ASoC: fsl_esai: Fix incorrect xDC field width of xCCR registers 2014-12-30 11:29:19 +00:00
fsl_sai.c ASoC: fsl_sai: support more than 2 channels 2017-02-13 18:01:55 +00:00
fsl_sai.h ASoC: fsl_sai: add tdm slots operation support 2015-11-25 12:03:30 +00:00
fsl_spdif.c ASoC: fsl_spdif: make const arrays rate static 2017-09-04 13:40:45 +01:00
fsl_spdif.h ASoC: fsl_spdif: Add support for output sample rates 96kHz and 192kHz 2014-06-17 15:36:54 +01:00
fsl_ssi_dbg.c ASoC: fsl-ssi: Move debugging to seperate file 2014-05-20 23:02:26 +01:00
fsl_ssi.c ASoC: fsl_ssi: only enable proper channel slots in AC'97 mode 2017-11-29 10:39:28 +00:00
fsl_ssi.h ASoC: fsl-ssi: Use regmap 2014-06-01 11:55:08 +01:00
fsl_utils.c ASoC: fsl: Remove fsl_asoc_xlate_tdm_slot_mask() 2015-01-14 19:04:56 +00:00
fsl_utils.h ASoC: fsl: Remove fsl_asoc_xlate_tdm_slot_mask() 2015-01-14 19:04:56 +00:00
fsl-asoc-card.c ASoC: fsl-asoc-card: Handle return value of devm_kasprintf 2017-09-21 16:20:10 +01:00
imx-audmux.c ASoC: fsl: Convert to using %pOF instead of full_name 2017-08-08 11:36:54 +01:00
imx-audmux.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
imx-es8328.c ASoC: fsl: Remove superfluous snd_soc_jack_free_gpios() call 2017-08-22 13:38:39 +01:00
imx-mc13783.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
imx-pcm-dma.c ASoC: imx-pcm-dma: simplify pcm_config 2017-03-08 10:58:42 +01:00
imx-pcm-fiq.c ASoC: fsl: make snd_pcm_hardware const 2017-08-17 17:56:52 +01:00
imx-pcm.h ASoC: fsl: Add dedicated DMA buffer size for each cpu dai 2015-07-07 13:16:12 +01:00
imx-sgtl5000.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
imx-spdif.c ASoC: imx-spdif: Fix crash on suspend 2016-01-27 11:30:02 +00:00
imx-ssi.c ASoC: imx-ssi: add check on platform_get_irq return value 2017-07-07 13:50:43 +01:00
imx-ssi.h ASoC: fsl: imx-ssi: omit ssi counter to avoid harm in unbalanced situation 2013-12-02 11:57:02 +00:00
imx-wm8962.c ASoC: imx-wm8962: Remove global variables 2017-04-24 18:45:18 +01:00
Kconfig ASoC: fix ES8328_I2C/SPI dependencies 2017-02-06 16:30:55 +00:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpc5200_dma.c ASoC: fsl: make snd_soc_platform_driver const 2017-08-14 17:18:04 +01:00
mpc5200_dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpc5200_psc_ac97.c ASoC: mpc5200_psc_ac97: Remove unused DAI ID defines 2017-01-10 18:45:26 +00:00
mpc5200_psc_i2s.c ASoC: fsl: constify of_device_id array 2015-03-22 18:02:56 +00:00
mpc8610_hpcd.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
mx27vis-aic32x4.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
p1022_ds.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
p1022_rdk.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
pcm030-audio-fabric.c ASoC: fsl: constify of_device_id array 2015-03-22 18:02:56 +00:00
phycore-ac97.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00
wm1133-ev1.c ASoC: fsl: constify snd_soc_ops structures 2017-03-15 13:34:32 +00:00