linux/sound/soc
Yifeng Li 3468d4ffa8 rt286: add Thinkpad Helix 2 to force_combo_jack_table
commit fe0dfd6358 upstream.

Thinkpad Helix 2 is a tablet PC, the audio is powered by Core M
broadwell-audio and rt286 codec. For all versions of Linux kernel,
the stereo output doesn't work properly when earphones are plugged
in, the sound was coming out from both channels even if the audio
contains only the left or right channel. Furthermore, if a music
recorded in stereo is played, the two channels cancle out each other
out, as a result, no voice but only distorted background music can be
heard, like a sound card with builtin a Karaoke sount effect.

Apparently this tablet uses a combo jack with polarity incorrectly
set by rt286 driver. This patch adds DMI information of Thinkpad Helix 2
to force_combo_jack_table[] and the issue is resolved. The microphone
input doesn't work regardless to the presence of this patch and still
needs help from other developers to investigate.

This is my first patch to LKML directly, sorry for CC-ing too many
people here.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=93841
Signed-off-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-07-12 15:01:07 +02:00
..
adi ASoC: adi: Add missing return statement. 2015-01-05 20:16:20 +00:00
amd ASoC: constify snd_pcm_ops structures 2016-09-12 20:04:09 +01:00
atmel ASoC: atmel-classd: fix audio clock rate 2017-04-08 09:30:33 +02:00
au1x ASoC: au1x: use correct format specifier 2016-04-13 06:39:36 +01:00
bcm ASoC: cygnus: Add Cygnus audio DMA driver 2016-05-31 17:50:42 +01:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal 2015-04-27 19:26:07 +01:00
codecs rt286: add Thinkpad Helix 2 to force_combo_jack_table 2017-07-12 15:01:07 +02:00
davinci ASoC: davinci-mcasp: off-by-one in davinci_mcasp_hw_rule_format() 2016-09-01 20:56:30 +01:00
dwc ASoC: dwc: Drop DMA channel names assignment 2016-08-08 11:54:50 +01:00
fsl Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/fsl', 'asoc/topic/gpio-chip' and 'asoc/topic/hdmi' into asoc-next 2016-09-29 12:44:24 -07:00
generic Merge remote-tracking branches 'asoc/topic/sgtl5000', 'asoc/topic/simple', 'asoc/topic/stac9766', 'asoc/topic/sti' and 'asoc/topic/sunxi' into asoc-next 2016-09-29 12:44:41 -07:00
img ASoC: codec duplicated callback function goes to component on pistachio-internal-dac 2016-08-08 11:57:57 +01:00
intel ASoC: intel: Fix PM and non-atomic crash in bytcr drivers 2017-05-03 08:36:38 -07:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: constify snd_pcm_ops structures 2016-09-12 20:04:09 +01:00
mediatek ASoC: mediatek: mark symbols static where possible 2016-08-11 15:02:28 +01:00
mxs Merge remote-tracking branches 'asoc/topic/max98926', 'asoc/topic/mtk', 'asoc/topic/mxs-saif', 'asoc/topic/nau8825' and 'asoc/topic/omap' into asoc-next 2016-03-13 15:17:18 +07:00
nuc900 dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
omap ASoC: omap-pcm: off-by-one in 'omap_pcm_limit_supported_formats' 2016-09-01 20:56:16 +01:00
pxa ASoC: PXA: Brownstone needs I2C 2016-10-24 18:28:42 +01:00
qcom ASoC: lpass-platform: initialize dma channel number 2017-01-12 11:39:28 +01:00
rockchip ASoC: rk3399_gru_sound: fix recording pop at first attempt 2016-09-24 19:11:04 +01:00
samsung ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call 2017-01-12 11:39:29 +01:00
sh Merge remote-tracking branches 'asoc/topic/nau8810', 'asoc/topic/of-bool', 'asoc/topic/omap' and 'asoc/topic/platform-drvdata' into asoc-next 2016-09-29 12:44:31 -07:00
sirf ASoC: sirf: drop owner assignment from platform_drivers 2014-10-20 16:22:14 +02:00
spear ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM 2015-09-16 17:46:11 +01:00
sti ASoC: sti: fix channel status update after playback start 2016-10-26 11:41:28 +01:00
sunxi ASoC: sun4i-i2s: Add quirks to handle a31 compatible 2017-04-12 12:41:21 +02:00
tegra ASoC: tegra_rt5640: Correct a copy and paste typo in the comments 2016-09-01 21:06:31 +01:00
txx9 ASoC: txx9: Convert to devm_snd_soc_register_platform 2015-08-28 18:09:04 +01:00
ux500 ASoC: ux500: fix spelling mistake "Unsopported" -> "Unsupported" 2016-09-03 11:59: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 ALSA: jack: Allow building the jack layer without input device 2016-02-23 09:03:07 +01:00
Makefile Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/amd' into asoc-next 2016-01-11 13:54:32 +00:00
soc-ac97.c ASoC: ac97: constify gpio_chip structures 2016-09-12 20:04:28 +01:00
soc-cache.c ASoC: Remove snd_soc_cache_sync() implementation 2014-11-09 09:06:30 +00:00
soc-compress.c ASoC: compress: Fix leak of a widget list in soc_compr_open_fe 2016-08-16 11:52:31 +01:00
soc-core.c ASoC: Fix use-after-free at card unregistration 2017-06-14 15:06:04 +02:00
soc-dapm.c Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next 2016-09-29 12:43:58 -07:00
soc-devres.c ASoC: Fix warning with make xmldocs caused by soc-devres.c 2015-01-28 11:36:03 +00:00
soc-generic-dmaengine-pcm.c ASoC: dmaengine_pcm: Add support for packed transfers 2016-04-27 17:34:11 +01:00
soc-io.c ASoC: Automatically initialize regmap for all components 2014-08-19 10:59:47 -05:00
soc-jack.c ASoC: Updates for v4.2 2015-06-08 20:47:53 +02:00
soc-ops.c ASoC: core: fix shift used for second item in snd_soc_get_enum_double 2016-09-01 20:58:05 +01:00
soc-pcm.c ASoC: dpcm: print dai_link name of BE other than FE. 2016-09-26 09:43:34 -07:00
soc-topology.c ASoC: topology: ABI - Add sig_bits to stream caps 2016-08-22 18:55:30 +01:00
soc-utils.c ASoC: constify snd_pcm_ops structures 2016-09-12 20:04:09 +01:00