]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'sound/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 21 May 2014 02:55:48 +0000 (12:55 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 21 May 2014 02:55:48 +0000 (12:55 +1000)
1  2 
MAINTAINERS
sound/pci/hda/patch_hdmi.c
sound/pci/hda/patch_realtek.c

diff --combined MAINTAINERS
index c6c47a6d55dcbe84d91852736bec97717ed6b72e,dd400288f9fccd90ec1cd1e22104f494ebf6e68c..9008d86a6eda411665cb9daf0f0ee8e8e0111c4d
@@@ -355,7 -355,7 +355,7 @@@ F: Documentation/hwmon/adm102
  F:    drivers/hwmon/adm1025.c
  
  ADM1029 HARDWARE MONITOR DRIVER
 -M:    Corentin Labbe <corentin.labbe@geomatys.fr>
 +M:    Corentin Labbe <clabbe.montjoie@gmail.com>
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    drivers/hwmon/adm1029.c
@@@ -1617,6 -1617,12 +1617,6 @@@ S:     Supporte
  F:    drivers/misc/atmel_tclib.c
  F:    drivers/clocksource/tcb_clksrc.c
  
 -ATMEL TSADCC DRIVER
 -M:    Josh Wu <josh.wu@atmel.com>
 -L:    linux-input@vger.kernel.org
 -S:    Supported
 -F:    drivers/input/touchscreen/atmel_tsadcc.c
 -
  ATMEL USBA UDC DRIVER
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1887,15 -1893,14 +1887,15 @@@ L:   netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bnx2x/
  
 -BROADCOM BCM281XX/BCM11XXX ARM ARCHITECTURE
 +BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Christian Daudt <bcm@fixthebug.org>
  M:    Matt Porter <mporter@linaro.org>
  L:    bcm-kernel-feedback-list@broadcom.com
 -T:    git git://git.github.com/broadcom/bcm11351
 +T:    git git://github.com/broadcom/mach-bcm
  S:    Maintained
  F:    arch/arm/mach-bcm/
  F:    arch/arm/boot/dts/bcm113*
 +F:    arch/arm/boot/dts/bcm216*
  F:    arch/arm/boot/dts/bcm281*
  F:    arch/arm/configs/bcm_defconfig
  F:    drivers/mmc/host/sdhci_bcm_kona.c
@@@ -1962,12 -1967,6 +1962,12 @@@ S:    Maintaine
  F:    drivers/bcma/
  F:    include/linux/bcma/
  
 +BROADCOM SYSTEMPORT ETHERNET DRIVER
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/broadcom/bcmsysport.*
 +
  BROCADE BFA FC SCSI DRIVER
  M:    Anil Gurumurthy <anil.gurumurthy@qlogic.com>
  M:    Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
@@@ -2246,6 -2245,12 +2246,6 @@@ L:     linux-usb@vger.kernel.or
  S:    Maintained
  F:    drivers/usb/host/ohci-ep93xx.c
  
 -CIRRUS LOGIC CS4270 SOUND DRIVER
 -M:    Timur Tabi <timur@tabi.org>
 -L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 -S:    Odd Fixes
 -F:    sound/soc/codecs/cs4270*
 -
  CIRRUS LOGIC AUDIO CODEC DRIVERS
  M:    Brian Austin <brian.austin@cirrus.com>
  M:    Paul Handrigan <Paul.Handrigan@cirrus.com>
@@@ -2410,6 -2415,7 +2410,6 @@@ F:      drivers/net/ethernet/ti/cpmac.
  CPU FREQUENCY DRIVERS
  M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
 -L:    cpufreq@vger.kernel.org
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
@@@ -2420,6 -2426,7 +2420,6 @@@ F:      include/linux/cpufreq.
  CPU FREQUENCY DRIVERS - ARM BIG LITTLE
  M:    Viresh Kumar <viresh.kumar@linaro.org>
  M:    Sudeep Holla <sudeep.holla@arm.com>
 -L:    cpufreq@vger.kernel.org
  L:    linux-pm@vger.kernel.org
  W:    http://www.arm.com/products/processors/technologies/biglittleprocessing.php
  S:    Maintained
@@@ -3478,12 -3485,6 +3478,12 @@@ S:    Maintaine
  F:    drivers/extcon/
  F:    Documentation/extcon/
  
 +EXYNOS DP DRIVER
 +M:    Jingoo Han <jg1.han@samsung.com>
 +L:    dri-devel@lists.freedesktop.org
 +S:    Maintained
 +F:    drivers/gpu/drm/exynos/exynos_dp*
 +
  EXYNOS MIPI DISPLAY DRIVERS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Donghwa Lee <dh09.lee@samsung.com>
@@@ -3549,7 -3550,7 +3549,7 @@@ F:      include/scsi/libfcoe.
  F:    include/uapi/scsi/fc/
  
  FILE LOCKING (flock() and fcntl()/lockf())
 -M:    Jeff Layton <jlayton@redhat.com>
 +M:    Jeff Layton <jlayton@poochiereds.net>
  M:    J. Bruce Fields <bfields@fieldses.org>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
@@@ -4811,14 -4812,6 +4811,14 @@@ L:    linux-kernel@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
  F:    kernel/irq/
 +
 +IRQCHIP DRIVERS
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +M:    Jason Cooper <jason@lakedaemon.net>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
 +T:    git git://git.infradead.org/users/jcooper/linux.git irqchip/core
  F:    drivers/irqchip/
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
@@@ -5115,19 -5108,14 +5115,19 @@@ F:   drivers/s390/kvm
  
  KERNEL VIRTUAL MACHINE (KVM) FOR ARM
  M:    Christoffer Dall <christoffer.dall@linaro.org>
 +M:    Marc Zyngier <marc.zyngier@arm.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kvmarm@lists.cs.columbia.edu
  W:    http://systems.cs.columbia.edu/projects/kvm-arm
  S:    Supported
  F:    arch/arm/include/uapi/asm/kvm*
  F:    arch/arm/include/asm/kvm*
  F:    arch/arm/kvm/
 +F:    virt/kvm/arm/
 +F:    include/kvm/arm_*
  
  KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
 +M:    Christoffer Dall <christoffer.dall@linaro.org>
  M:    Marc Zyngier <marc.zyngier@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kvmarm@lists.cs.columbia.edu
@@@ -5491,15 -5479,15 +5491,15 @@@ F:   Documentation/hwmon/ltc426
  F:    drivers/hwmon/ltc4261.c
  
  LTP (Linux Test Project)
 -M:    Shubham Goyal <shubham@linux.vnet.ibm.com>
  M:    Mike Frysinger <vapier@gentoo.org>
  M:    Cyril Hrubis <chrubis@suse.cz>
 -M:    Caspar Zhang <caspar@casparzhang.com>
  M:    Wanlong Gao <gaowanlong@cn.fujitsu.com>
 +M:    Jan Stancek <jstancek@redhat.com>
 +M:    Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
 +M:    Alexey Kodanev <alexey.kodanev@oracle.com>
  L:    ltp-list@lists.sourceforge.net (subscribers-only)
 -W:    http://ltp.sourceforge.net/
 +W:    http://linux-test-project.github.io/
  T:    git git://github.com/linux-test-project/ltp.git
 -T:    git git://ltp.git.sourceforge.net/gitroot/ltp/ltp-dev
  S:    Maintained
  
  M32R ARCHITECTURE
@@@ -6512,10 -6500,10 +6512,10 @@@ T:   git git://openrisc.net/~jonas/linu
  F:    arch/openrisc/
  
  OPENVSWITCH
 -M:    Jesse Gross <jesse@nicira.com>
 +M:    Pravin Shelar <pshelar@nicira.com>
  L:    dev@openvswitch.org
  W:    http://openvswitch.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pshelar/openvswitch.git
  S:    Maintained
  F:    net/openvswitch/
  
@@@ -6705,7 -6693,6 +6705,7 @@@ F:      Documentation/PCI
  F:    drivers/pci/
  F:    include/linux/pci*
  F:    arch/x86/pci/
 +F:    arch/x86/kernel/quirks.c
  
  PCI DRIVER FOR IMX6
  M:    Richard Zhu <r65037@freescale.com>
@@@ -7290,6 -7277,7 +7290,6 @@@ F:      drivers/video/aty/aty128fb.
  RALINK RT2X00 WIRELESS LAN DRIVER
  P:    rt2x00 project
  M:    Ivo van Doorn <IvDoorn@gmail.com>
 -M:    Gertjan van Wingerde <gwingerde@gmail.com>
  M:    Helmut Schaa <helmut.schaa@googlemail.com>
  L:    linux-wireless@vger.kernel.org
  L:    users@rt2x00.serialmonkey.com (moderated for non-subscribers)
@@@ -7305,7 -7293,7 +7305,7 @@@ F:      Documentation/blockdev/ramdisk.tx
  F:    drivers/block/brd.c
  
  RANDOM NUMBER DRIVER
 -M:    Theodore Ts'o" <tytso@mit.edu>
 +M:    "Theodore Ts'o" <tytso@mit.edu>
  S:    Maintained
  F:    drivers/char/random.c
  
@@@ -7686,6 -7674,7 +7686,6 @@@ F:      drivers/clk/samsung
  SAMSUNG SXGBE DRIVERS
  M:    Byungho An <bh74.an@samsung.com>
  M:    Girish K S <ks.giri@samsung.com>
 -M:    Siva Reddy Kallam <siva.kallam@samsung.com>
  M:    Vipul Pandya <vipul.pandya@samsung.com>
  S:    Supported
  L:    netdev@vger.kernel.org
@@@ -7956,26 -7945,6 +7956,26 @@@ M:    Robin Holt <robinmholt@gmail.com
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
 +SI2157 MEDIA DRIVER
 +M:    Antti Palosaari <crope@iki.fi>
 +L:    linux-media@vger.kernel.org
 +W:    http://linuxtv.org/
 +W:    http://palosaari.fi/linux/
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +T:    git git://linuxtv.org/anttip/media_tree.git
 +S:    Maintained
 +F:    drivers/media/tuners/si2157*
 +
 +SI2168 MEDIA DRIVER
 +M:    Antti Palosaari <crope@iki.fi>
 +L:    linux-media@vger.kernel.org
 +W:    http://linuxtv.org/
 +W:    http://palosaari.fi/linux/
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +T:    git git://linuxtv.org/anttip/media_tree.git
 +S:    Maintained
 +F:    drivers/media/dvb-frontends/si2168*
 +
  SI470X FM RADIO RECEIVER I2C DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -8275,6 -8244,7 +8275,7 @@@ L:      alsa-devel@alsa-project.org (moderat
  W:    http://www.alsa-project.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  T:    git git://git.alsa-project.org/alsa-kernel.git
+ Q:    http://patchwork.kernel.org/project/alsa-devel/list/
  S:    Maintained
  F:    Documentation/sound/
  F:    include/sound/
@@@ -9129,9 -9099,6 +9130,9 @@@ F:      arch/um/os-Linux/drivers
  
  TURBOCHANNEL SUBSYSTEM
  M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    Ralf Baechle <ralf@linux-mips.org>
 +L:    linux-mips@linux-mips.org
 +Q:    http://patchwork.linux-mips.org/project/linux-mips/list/
  S:    Maintained
  F:    drivers/tc/
  F:    include/linux/tc.h
@@@ -9985,7 -9952,7 +9986,7 @@@ F:      drivers/net/hamradio/*scc.
  F:    drivers/net/hamradio/z8530.h
  
  ZBUD COMPRESSED PAGE ALLOCATOR
 -M:    Seth Jennings <sjenning@linux.vnet.ibm.com>
 +M:    Seth Jennings <sjennings@variantweb.net>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zbud.c
@@@ -10030,7 -9997,7 +10031,7 @@@ F:    mm/zsmalloc.
  F:    include/linux/zsmalloc.h
  
  ZSWAP COMPRESSED SWAP CACHING
 -M:    Seth Jennings <sjenning@linux.vnet.ibm.com>
 +M:    Seth Jennings <sjennings@variantweb.net>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zswap.c
index b4218a19df22209e227538b0056a79cbe1c21279,11d1c5d303f874c5020d1fbd8cb957c7ddf276c7..be0a9ee0b8049afc617d36a8074d01d9953405a8
@@@ -1127,10 -1127,6 +1127,6 @@@ static void hdmi_setup_audio_infoframe(
                                            AMP_OUT_UNMUTE);
  
        eld = &per_pin->sink_eld;
-       if (!eld->monitor_present) {
-               hdmi_set_channel_count(codec, per_pin->cvt_nid, channels);
-               return;
-       }
  
        if (!non_pcm && per_pin->chmap_set)
                ca = hdmi_manual_channel_allocation(channels, per_pin->chmap);
@@@ -3324,6 -3320,7 +3320,7 @@@ static const struct hda_codec_preset sn
  { .id = 0x10de001a, .name = "GPU 1a HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de001b, .name = "GPU 1b HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de001c, .name = "GPU 1c HDMI/DP", .patch = patch_nvhdmi },
+ { .id = 0x10de0028, .name = "Tegra12x HDMI",  .patch = patch_nvhdmi },
  { .id = 0x10de0040, .name = "GPU 40 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de0041, .name = "GPU 41 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de0042, .name = "GPU 42 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de0051, .name = "GPU 51 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de0060, .name = "GPU 60 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de0067, .name = "MCP67 HDMI",     .patch = patch_nvhdmi_2ch },
 +{ .id = 0x10de0071, .name = "GPU 71 HDMI/DP", .patch = patch_nvhdmi },
  { .id = 0x10de8001, .name = "MCP73 HDMI",     .patch = patch_nvhdmi_2ch },
  { .id = 0x11069f80, .name = "VX900 HDMI/DP",  .patch = patch_via_hdmi },
  { .id = 0x11069f81, .name = "VX900 HDMI/DP",  .patch = patch_via_hdmi },
@@@ -3380,6 -3376,7 +3377,7 @@@ MODULE_ALIAS("snd-hda-codec-id:10de0019
  MODULE_ALIAS("snd-hda-codec-id:10de001a");
  MODULE_ALIAS("snd-hda-codec-id:10de001b");
  MODULE_ALIAS("snd-hda-codec-id:10de001c");
+ MODULE_ALIAS("snd-hda-codec-id:10de0028");
  MODULE_ALIAS("snd-hda-codec-id:10de0040");
  MODULE_ALIAS("snd-hda-codec-id:10de0041");
  MODULE_ALIAS("snd-hda-codec-id:10de0042");
@@@ -3388,7 -3385,6 +3386,7 @@@ MODULE_ALIAS("snd-hda-codec-id:10de0044
  MODULE_ALIAS("snd-hda-codec-id:10de0051");
  MODULE_ALIAS("snd-hda-codec-id:10de0060");
  MODULE_ALIAS("snd-hda-codec-id:10de0067");
 +MODULE_ALIAS("snd-hda-codec-id:10de0071");
  MODULE_ALIAS("snd-hda-codec-id:10de8001");
  MODULE_ALIAS("snd-hda-codec-id:11069f80");
  MODULE_ALIAS("snd-hda-codec-id:11069f81");
index 49e884fb3e5db064426758b8c8612a42a1633830,40f9b5d712eb9c5b47aac32777a34931a2bf9e82..35acbd0192a281993017e810e9121409c3ebfe9e
@@@ -951,7 -951,9 +951,9 @@@ static struct alc_codec_rename_pci_tabl
        { 0x10ec0280, 0x1028, 0, "ALC3220" },
        { 0x10ec0282, 0x1028, 0, "ALC3221" },
        { 0x10ec0283, 0x1028, 0, "ALC3223" },
+       { 0x10ec0288, 0x1028, 0, "ALC3263" },
        { 0x10ec0292, 0x1028, 0, "ALC3226" },
+       { 0x10ec0293, 0x1028, 0, "ALC3235" },
        { 0x10ec0255, 0x1028, 0, "ALC3234" },
        { 0x10ec0668, 0x1028, 0, "ALC3661" },
        { } /* terminator */
@@@ -3538,6 -3540,25 +3540,25 @@@ static void alc_headset_mode_unplugged(
                alc_write_coef_idx(codec, 0x18, 0x7308);
                alc_write_coef_idx(codec, 0x6b, 0xc429);
                break;
+       case 0x10ec0293:
+               /* SET Line1 JD to 0 */
+               val = alc_read_coef_idx(codec, 0x10);
+               alc_write_coef_idx(codec, 0x10, (val & ~(7<<8)) | 6<<8);
+               /* SET charge pump by verb */
+               val = alc_read_coefex_idx(codec, 0x57, 0x05);
+               alc_write_coefex_idx(codec, 0x57, 0x05, (val & ~(1<<15|1<<13)) | 0x0);
+               /* SET EN_OSW to 1 */
+               val = alc_read_coefex_idx(codec, 0x57, 0x03);
+               alc_write_coefex_idx(codec, 0x57, 0x03, (val & ~(1<<10)) | (1<<10) );
+               /* Combo JD gating with LINE1-VREFO */
+               val = alc_read_coef_idx(codec, 0x1a);
+               alc_write_coef_idx(codec, 0x1a, (val & ~(1<<3)) | (1<<3));
+               /* Set to TRS type */
+               alc_write_coef_idx(codec, 0x45, 0xc429);
+               /* Combo Jack auto detect */
+               val = alc_read_coef_idx(codec, 0x4a);
+               alc_write_coef_idx(codec, 0x4a, (val & 0xfff0) | 0x000e);
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x15, 0x0d40);
                alc_write_coef_idx(codec, 0xb7, 0x802b);
@@@ -3576,6 -3597,21 +3597,21 @@@ static void alc_headset_mode_mic_in(str
                alc_write_coef_idx(codec, 0x19, 0xa208);
                alc_write_coef_idx(codec, 0x2e, 0xacf0);
                break;
+       case 0x10ec0293:
+               /* Set to TRS mode */
+               alc_write_coef_idx(codec, 0x45, 0xc429);
+               snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
+               /* SET charge pump by verb */
+               val = alc_read_coefex_idx(codec, 0x57, 0x05);
+               alc_write_coefex_idx(codec, 0x57, 0x05, (val & ~(1<<15|1<<13)) | (1<<15|1<<13));
+               /* SET EN_OSW to 0 */
+               val = alc_read_coefex_idx(codec, 0x57, 0x03);
+               alc_write_coefex_idx(codec, 0x57, 0x03, (val & ~(1<<10)) | 0x0);
+               /* Combo JD gating without LINE1-VREFO */
+               val = alc_read_coef_idx(codec, 0x1a);
+               alc_write_coef_idx(codec, 0x1a, (val & ~(1<<3)) | 0x0);
+               snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50);
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x11, 0x0001);
                snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
  
  static void alc_headset_mode_default(struct hda_codec *codec)
  {
+       int val;
        switch (codec->vendor_id) {
        case 0x10ec0255:
                alc_write_coef_idx(codec, 0x45, 0xc089);
                alc_write_coef_idx(codec, 0x6b, 0xc429);
                alc_write_coef_idx(codec, 0x18, 0x7308);
                break;
+       case 0x10ec0293:
+               /* Combo Jack auto detect */
+               val = alc_read_coef_idx(codec, 0x4a);
+               alc_write_coef_idx(codec, 0x4a, (val & 0xfff0) | 0x000e);
+               /* Set to TRS type */
+               alc_write_coef_idx(codec, 0x45, 0xC429);
+               /* Combo JD gating without LINE1-VREFO */
+               val = alc_read_coef_idx(codec, 0x1a);
+               alc_write_coef_idx(codec, 0x1a, (val & ~(1<<3)) | 0x0);
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x11, 0x0041);
                alc_write_coef_idx(codec, 0x15, 0x0d40);
  /* Iphone type */
  static void alc_headset_mode_ctia(struct hda_codec *codec)
  {
+       int val;
        switch (codec->vendor_id) {
        case 0x10ec0255:
                /* Set to CTIA type */
                alc_write_coef_idx(codec, 0x76, 0x0008);
                alc_write_coef_idx(codec, 0x18, 0x7388);
                break;
+       case 0x10ec0293:
+               /* Set to ctia type */
+               alc_write_coef_idx(codec, 0x45, 0xd429);
+               /* SET Line1 JD to 1 */
+               val = alc_read_coef_idx(codec, 0x10);
+               alc_write_coef_idx(codec, 0x10, (val & ~(7<<8)) | 7<<8);
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x11, 0x0001);
                alc_write_coef_idx(codec, 0x15, 0x0d60);
  /* Nokia type */
  static void alc_headset_mode_omtp(struct hda_codec *codec)
  {
+       int val;
        switch (codec->vendor_id) {
        case 0x10ec0255:
                /* Set to OMTP Type */
                alc_write_coef_idx(codec, 0x76, 0x0008);
                alc_write_coef_idx(codec, 0x18, 0x7388);
                break;
+       case 0x10ec0293:
+               /* Set to omtp type */
+               alc_write_coef_idx(codec, 0x45, 0xe429);
+               /* SET Line1 JD to 1 */
+               val = alc_read_coef_idx(codec, 0x10);
+               alc_write_coef_idx(codec, 0x10, (val & ~(7<<8)) | 7<<8);
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x11, 0x0001);
                alc_write_coef_idx(codec, 0x15, 0x0d50);
@@@ -3703,6 -3769,16 +3769,16 @@@ static void alc_determine_headset_type(
                val = alc_read_coef_idx(codec, 0x6c);
                is_ctia = (val & 0x001c) == 0x001c;
                break;
+       case 0x10ec0293:
+               /* Combo Jack auto detect */
+               val = alc_read_coef_idx(codec, 0x4a);
+               alc_write_coef_idx(codec, 0x4a, (val & 0xfff0) | 0x0008);
+               /* Set to ctia type */
+               alc_write_coef_idx(codec, 0x45, 0xD429);
+               msleep(300);
+               val = alc_read_coef_idx(codec, 0x46);
+               is_ctia = (val & 0x0070) == 0x0070;
+               break;
        case 0x10ec0668:
                alc_write_coef_idx(codec, 0x11, 0x0001);
                alc_write_coef_idx(codec, 0xb7, 0x802b);
@@@ -4159,6 -4235,8 +4235,8 @@@ enum 
        ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
        ALC255_FIXUP_HEADSET_MODE,
        ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
+       ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
+       ALC292_FIXUP_TPT440_DOCK,
  };
  
  static const struct hda_fixup alc269_fixups[] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc_fixup_headset_mode_alc255_no_hp_mic,
        },
+       [ALC293_FIXUP_DELL1_MIC_NO_PRESENCE] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x18, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
+                       { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
+                       { }
+               },
+               .chained = true,
+               .chain_id = ALC269_FIXUP_HEADSET_MODE
+       },
+       [ALC292_FIXUP_TPT440_DOCK] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x16, 0x21211010 }, /* dock headphone */
+                       { 0x19, 0x21a11010 }, /* dock mic */
+                       { }
+               },
+               .chained = true,
+               .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
+       },
  };
  
  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK),
        SND_PCI_QUIRK(0x1028, 0x063e, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0640, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x064d, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0651, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0653, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0657, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0658, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
 +      SND_PCI_QUIRK(0x1028, 0x065c, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x065f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0662, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0667, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0674, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x067e, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x067f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
 +      SND_PCI_QUIRK(0x1028, 0x0680, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
 +      SND_PCI_QUIRK(0x1028, 0x0684, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
        SND_PCI_QUIRK(0x103c, 0x18e6, "HP", ALC269_FIXUP_HP_GPIO_LED),
        SND_PCI_QUIRK(0x103c, 0x1973, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1),
        SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
        SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
        SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK),
-       SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+       SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
+       SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
        SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
        SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
        SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
@@@ -4793,6 -4893,7 +4896,7 @@@ static const struct hda_model_fixup alc
        {.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = "dell-headset-dock"},
        {.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-dac-wcaps"},
        {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"},
+       {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"},
        {}
  };