android_kernel_oneplus_msm8998/sound/pci
Alex Stanoev 818f57e747 ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
commit ac237c28d5ac1b241d58b1b7b4b9fa10efb22fb5 upstream.

The Creative Audigy SE (SB0570) card currently exhibits an audible pop
whenever playback is stopped or resumed, or during silent periods of an
audio stream. Initialise the IZD bit to the 0 to eliminate these pops.

The Infinite Zero Detection (IZD) feature on the DAC causes the output
to be shunted to Vcap after 2048 samples of silence. This discharges the
AC coupling capacitor through the output and causes the aforementioned
pop/click noise.

The behaviour of the IZD bit is described on page 15 of the WM8768GEDS
datasheet: "With IZD=1, applying MUTE for 1024 consecutive input samples
will cause all outputs to be connected directly to VCAP. This also
happens if 2048 consecutive zero input samples are applied to all 6
channels, and IZD=0. It will be removed as soon as any channel receives
a non-zero input". I believe the second sentence might be referring to
IZD=1 instead of IZD=0 given the observed behaviour of the card.

This change should make the DAC initialisation consistent with
Creative's Windows driver, as this popping persists when initialising
the card in Linux and soft rebooting into Windows, but is not present on
a cold boot to Windows.

Signed-off-by: Alex Stanoev <alex@astanoev.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-21 09:27:30 +01:00
..
ac97 ALSA: ac97: Fix ifdef CONFIG_PROC_FS 2015-05-29 07:52:43 +02:00
ali5451 ALSA: ali5451: Fix out-of-bound position reporting 2016-10-16 17:36:14 +02:00
asihpi ALSA: asihpi: Hardening for potential Spectre v1 2018-05-02 07:53:41 -07:00
au88x0 ALSA: au88x0: avoid theoretical uninitialized access 2017-10-08 10:14:20 +02:00
aw2 ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
ca0106 ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops 2018-11-21 09:27:30 +01:00
cs46xx ALSA: cs46xx: Fix suspend for all channels 2015-10-30 12:33:21 +01:00
cs5535audio ALSA: cs5535audio: Fix invalid endian conversion 2018-08-22 07:48:36 +02:00
ctxfi ALSA: ctxfi: Fix the incorrect check of dma_set_mask() call 2017-03-30 09:35:15 +02:00
echoaudio ALSA: echoaudio: Fix memory allocation 2016-07-27 09:47:38 -07:00
emu10k1 ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO 2018-09-29 03:08:51 -07:00
hda ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905) 2018-11-21 09:27:30 +01:00
ice1712 ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
korg1212 ALSA: korg1212: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:27 +02:00
lola
lx6464es ALSA: lx6464es: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:28 +02:00
mixart ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
nm256
oxygen ALSA: oxygen: Fix logical-not-parentheses warning 2015-08-03 10:15:09 +02:00
pcxhr ALSA: pcxhr: Fix missing mutex unlock 2016-05-04 14:48:43 -07:00
riptide
rme9652 ALSA: rme9652: Hardening for potential Spectre v1 2018-05-02 07:53:41 -07:00
trident ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
vx222 ALSA: vx222: Fix invalid endian conversions 2018-08-22 07:48:36 +02:00
ymfpci
ad1889.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
ad1889.h
ak4531_codec.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
als300.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
als4000.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
atiixp.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
atiixp_modem.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
azt3328.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
azt3328.h
bt87x.c
cmipci.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
cs4281.c
cs5530.c
ens1370.c
ens1371.c
es1938.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
es1968.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
fm801.c ALSA: fm801: add error handling for snd_ctl_add 2018-08-06 16:24:30 +02:00
intel8x0.c ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM ThinkPad X41. 2016-04-12 09:08:52 -07:00
intel8x0m.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
Kconfig ALSA: Add missing dependency on CONFIG_SND_TIMER 2016-02-17 12:30:58 -08:00
maestro3.c ALSA: maestro3: Fix Allegro mute until master volume/mute is touched 2015-11-02 08:46:30 +01:00
Makefile
rme32.c ALSA: rme32: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:28 +02:00
rme96.c ALSA: rme96: Fix unexpected volume reset after rate changes 2015-12-04 20:39:49 +01:00
sis7019.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
sis7019.h
sonicvibes.c ALSA: remove deprecated use of pci api 2015-04-16 12:19:52 +02:00
via82xx.c
via82xx_modem.c