linux/sound/pci
Takashi Iwai 54947cd64c ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
We've got a regression report for some Thinkpad models (at least
T570s) which shows the too low speaker output volume.  The bisection
leaded to the commit 61fcf8ece9 ("ALSA: hda/realtek - Enable Thinkpad
Dock device for ALC298 platform"), and it's basically adding the two
pin configurations for the dock, and looks harmless.

The real culprit seems, though, that the DAC assignment for the
speaker pin is implicitly assumed on these devices, i.e. pin NID 0x14
to be coupled with DAC NID 0x03.  When more pins are configured by the
commit above, the auto-parser changes the DAC assignment, and this
resulted in the regression.

As a workaround, just provide the fixed pin / DAC mapping table for
this Thinkpad fixup function.  It's no generic solution, but the
problem itself is pretty much device-specific, so must be good
enough.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1554304
Fixes: 61fcf8ece9 ("ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform")
Cc: <stable@vger.kernel.org>
Reported-and-tested-by: Jeremy Cline <jcline@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-12-03 10:44:15 +01:00
..
ac97 ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write 2018-11-23 18:09:22 +01:00
ali5451 ALSA: ali5451: remove redundant pointer 'codec' 2018-07-16 14:30:33 +02:00
asihpi ALSA: asihpi: don't pass GFP_DMA32 to dma_alloc_coherent 2018-10-14 09:40:24 +02:00
au88x0 ALSA: au88xx: Add fall-through annotations 2018-10-12 09:31:34 +02:00
aw2 ALSA: aw2: make snd_pcm_hardware const 2017-08-12 23:31:39 +02:00
ca0106 ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops 2018-10-29 16:59:06 +01:00
cs46xx ALSA: cs46xx: Use SNDRV_PCM_INFO_SYNC_APPLPTR info flag 2018-09-04 12:13:40 +02:00
cs5535audio ALSA: cs5535audio: remove redundant pointer 'dma' 2018-08-01 13:59:29 +02:00
ctxfi ALSA: ctxfi: cthw20k2: Replace mdelay() with msleep() and usleep_range() 2018-07-27 11:49:16 +02:00
echoaudio ALSA: echoaudio: Mark expected switch fall-throughs 2018-08-06 09:33:45 +02:00
emu10k1 Merge branch 'for-linus' into for-next 2018-10-04 07:53:06 +02:00
hda ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570 2018-12-03 10:44:15 +01:00
ice1712 ALSA: pci: Remove empty init and exit 2018-08-03 16:11:48 +02:00
korg1212 ALSA: korg1212: Add __force annotation to cast in user-copy callbacks 2018-07-26 08:33:08 +02:00
lola ALSA: lola: Proper endian notations 2018-07-27 09:06:05 +02:00
lx6464es ALSA: lx6464es: Missing error code in snd_lx6464es_create() 2018-06-21 11:04:42 +02:00
mixart ALSA: mixart: Mark expected switch fall-through 2018-08-09 08:52:04 +02:00
nm256 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
oxygen ALSA: oxygen: use match_string() helper 2018-05-31 19:42:48 +02:00
pcxhr sound: Use octal not symbolic permissions 2018-05-28 11:27:20 +02:00
riptide ALSA: riptide: Properly endian notations 2018-07-27 09:06:02 +02:00
rme9652 ALSA: hdspm: fix spelling mistake "Initializeing" -> "Initializing" 2018-08-27 11:05:39 +02:00
trident ALSA: trident: Proper endian notations 2018-07-27 09:06:00 +02:00
vx222 ALSA: vx222: Fix invalid endian conversions 2018-07-26 08:23:28 +02:00
ymfpci ALSA: ymfpci: Proper endian notations 2018-07-27 09:05:58 +02:00
ad1889.c ALSA: ad1889: Replace mdelay with usleep_range in snd_ad1889_ac97_ready 2018-04-16 13:49:09 +02:00
ad1889.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ak4531_codec.c ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS 2015-05-29 08:00:06 +02:00
als300.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
als4000.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
atiixp_modem.c ALSA: atiixp_modem: Proper endian notations 2018-07-27 09:06:13 +02:00
atiixp.c ALSA: atiixp: fix fall-through annotations 2018-09-14 15:27:04 +02:00
azt3328.c ALSA: azt3328: Constify hw_constraints 2017-06-09 10:42:49 +02:00
azt3328.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bt87x.c ALSA: bt87x: Proper endian notations 2018-07-27 09:06:11 +02:00
cmipci.c ALSA: cmipci: Allocate with GFP_KERNEL instead of GFP_ATOMIC 2018-04-16 14:01:31 +02:00
cs4281.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
cs5530.c ASoC: sb16: Simplify snd_sb16dsp_pcm() 2015-01-02 16:28:35 +01:00
ens1370.c ALSA: ens137x: remove redundant array pcm_devs 2018-08-01 13:59:58 +02:00
ens1371.c
es1938.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
es1968.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
fm801.c ALSA: fm801: add error handling for snd_ctl_add 2018-06-11 15:21:19 +02:00
intel8x0.c ALSA: intel8x0: Fix fall-through annotations 2018-10-03 17:42:55 +02:00
intel8x0m.c ALSA: intel8x0m: Register irq handler after register initializations 2018-09-13 07:58:43 +02:00
Kconfig docs: Fix some broken references 2018-06-15 18:10:01 -03:00
maestro3.c ALSA: maestro3: Proper endian notations 2018-07-27 09:06:08 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rme32.c ALSA: rme32: Use SNDRV_PCM_INFO_SYNC_APPLPTR info flag 2018-09-04 12:13:09 +02:00
rme96.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
sis7019.c ALSA: pci: make snd_pcm_hardware const 2017-08-12 23:31:58 +02:00
sis7019.h
sonicvibes.c ALSA: sonicvibes: remove redundant pointer 'dir' 2018-08-01 14:00:13 +02:00
via82xx_modem.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
via82xx.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00