Author: rpaulo
Date: Wed Apr 15 05:24:39 2015
New Revision: 281544
URL: https://svnweb.freebsd.org/changeset/base/281544

Log:
  snd_hda: add support for the Lenovo X1 20BS model.
  
  This requires a patch to redirect the output to a separate DAC when
  the headphones are used.  While there, add device strings for Intel
  Broadwell HDA controllers and Realtek ALC292 codecs.
  
  MFC after:    1 week

Modified:
  head/sys/dev/sound/pci/hda/hdaa_patches.c
  head/sys/dev/sound/pci/hda/hdac.c
  head/sys/dev/sound/pci/hda/hdac.h
  head/sys/dev/sound/pci/hda/hdacc.c

Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c
==============================================================================
--- head/sys/dev/sound/pci/hda/hdaa_patches.c   Wed Apr 15 05:13:41 2015        
(r281543)
+++ head/sys/dev/sound/pci/hda/hdaa_patches.c   Wed Apr 15 05:24:39 2015        
(r281544)
@@ -401,6 +401,13 @@ hdac_pin_patch(struct hdaa_widget *w)
                        patch = "as=1 seq=15";
                        break;
                }
+       } else if (id == HDA_CODEC_ALC292 &&
+           subid == LENOVO_X120BS_SUBVENDOR) {
+               switch (nid) {
+               case 21:
+                       patch = "as=1 seq=15";
+                       break;
+               }
        }
 
        if (patch != NULL)

Modified: head/sys/dev/sound/pci/hda/hdac.c
==============================================================================
--- head/sys/dev/sound/pci/hda/hdac.c   Wed Apr 15 05:13:41 2015        
(r281543)
+++ head/sys/dev/sound/pci/hda/hdac.c   Wed Apr 15 05:24:39 2015        
(r281544)
@@ -81,6 +81,8 @@ static const struct {
        { HDA_INTEL_HSW1,    "Intel Haswell",   0, 0 },
        { HDA_INTEL_HSW2,    "Intel Haswell",   0, 0 },
        { HDA_INTEL_HSW3,    "Intel Haswell",   0, 0 },
+       { HDA_INTEL_BDW1,    "Intel Broadwell", 0, 0 },
+       { HDA_INTEL_BDW2,    "Intel Broadwell", 0, 0 },
        { HDA_INTEL_CPT,     "Intel Cougar Point",      0, 0 },
        { HDA_INTEL_PATSBURG,"Intel Patsburg",  0, 0 },
        { HDA_INTEL_PPT1,    "Intel Panther Point",     0, 0 },

Modified: head/sys/dev/sound/pci/hda/hdac.h
==============================================================================
--- head/sys/dev/sound/pci/hda/hdac.h   Wed Apr 15 05:13:41 2015        
(r281543)
+++ head/sys/dev/sound/pci/hda/hdac.h   Wed Apr 15 05:24:39 2015        
(r281544)
@@ -46,6 +46,7 @@
 #define HDA_INTEL_HSW1         HDA_MODEL_CONSTRUCT(INTEL, 0x0a0c)
 #define HDA_INTEL_HSW2         HDA_MODEL_CONSTRUCT(INTEL, 0x0c0c)
 #define HDA_INTEL_HSW3         HDA_MODEL_CONSTRUCT(INTEL, 0x0d0c)
+#define HDA_INTEL_BDW1         HDA_MODEL_CONSTRUCT(INTEL, 0x160c)
 #define HDA_INTEL_CPT          HDA_MODEL_CONSTRUCT(INTEL, 0x1c20)
 #define HDA_INTEL_PATSBURG     HDA_MODEL_CONSTRUCT(INTEL, 0x1d20)
 #define HDA_INTEL_PPT1         HDA_MODEL_CONSTRUCT(INTEL, 0x1e20)
@@ -67,6 +68,7 @@
 #define HDA_INTEL_WELLS2       HDA_MODEL_CONSTRUCT(INTEL, 0x8d21)
 #define HDA_INTEL_LPTLP1       HDA_MODEL_CONSTRUCT(INTEL, 0x9c20)
 #define HDA_INTEL_LPTLP2       HDA_MODEL_CONSTRUCT(INTEL, 0x9c21)
+#define HDA_INTEL_BDW2         HDA_MODEL_CONSTRUCT(INTEL, 0x9ca0)
 #define HDA_INTEL_ALL          HDA_MODEL_CONSTRUCT(INTEL, 0xffff)
 
 /* Nvidia */
@@ -235,6 +237,7 @@
 #define LENOVO_TCA55_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x1015)
 #define        LENOVO_X1_SUBVENDOR     HDA_MODEL_CONSTRUCT(LENOVO, 0x21e8)
 #define        LENOVO_X1CRBN_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21f9)
+#define        LENOVO_X120BS_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x2227)
 #define LENOVO_X220_SUBVENDOR  HDA_MODEL_CONSTRUCT(LENOVO, 0x21da)
 #define LENOVO_X300_SUBVENDOR  HDA_MODEL_CONSTRUCT(LENOVO, 0x20ac)
 #define        LENOVO_T400_SUBVENDOR   HDA_MODEL_CONSTRUCT(LENOVO, 0x20f2)
@@ -338,6 +341,7 @@
 #define HDA_CODEC_ALC273       HDA_CODEC_CONSTRUCT(REALTEK, 0x0273)
 #define HDA_CODEC_ALC275       HDA_CODEC_CONSTRUCT(REALTEK, 0x0275)
 #define HDA_CODEC_ALC276       HDA_CODEC_CONSTRUCT(REALTEK, 0x0276)
+#define HDA_CODEC_ALC292       HDA_CODEC_CONSTRUCT(REALTEK, 0x0292)
 #define HDA_CODEC_ALC660       HDA_CODEC_CONSTRUCT(REALTEK, 0x0660)
 #define HDA_CODEC_ALC662       HDA_CODEC_CONSTRUCT(REALTEK, 0x0662)
 #define HDA_CODEC_ALC663       HDA_CODEC_CONSTRUCT(REALTEK, 0x0663)
@@ -622,6 +626,7 @@
 #define HDA_CODEC_INTELCPT     HDA_CODEC_CONSTRUCT(INTEL, 0x2805)
 #define HDA_CODEC_INTELPPT     HDA_CODEC_CONSTRUCT(INTEL, 0x2806)
 #define HDA_CODEC_INTELHSW     HDA_CODEC_CONSTRUCT(INTEL, 0x2807)
+#define HDA_CODEC_INTELBDW     HDA_CODEC_CONSTRUCT(INTEL, 0x2808)
 #define HDA_CODEC_INTELCL      HDA_CODEC_CONSTRUCT(INTEL, 0x29fb)
 #define HDA_CODEC_INTELXXXX    HDA_CODEC_CONSTRUCT(INTEL, 0xffff)
 

Modified: head/sys/dev/sound/pci/hda/hdacc.c
==============================================================================
--- head/sys/dev/sound/pci/hda/hdacc.c  Wed Apr 15 05:13:41 2015        
(r281543)
+++ head/sys/dev/sound/pci/hda/hdacc.c  Wed Apr 15 05:24:39 2015        
(r281544)
@@ -87,6 +87,7 @@ static const struct {
        { HDA_CODEC_ALC273, 0,          "Realtek ALC273" },
        { HDA_CODEC_ALC275, 0,          "Realtek ALC275" },
        { HDA_CODEC_ALC276, 0,          "Realtek ALC276" },
+       { HDA_CODEC_ALC292, 0,          "Realtek ALC292" },
        { HDA_CODEC_ALC660, 0,          "Realtek ALC660-VD" },
        { HDA_CODEC_ALC662, 0x0002,     "Realtek ALC662 rev2" },
        { HDA_CODEC_ALC662, 0,          "Realtek ALC662" },
@@ -319,6 +320,7 @@ static const struct {
        { HDA_CODEC_INTELCPT, 0,        "Intel Cougar Point" },
        { HDA_CODEC_INTELPPT, 0,        "Intel Panther Point" },
        { HDA_CODEC_INTELHSW, 0,        "Intel Haswell" },
+       { HDA_CODEC_INTELBDW, 0,        "Intel Broadwell" },
        { HDA_CODEC_INTELCL, 0,         "Intel Crestline" },
        { HDA_CODEC_SII1390, 0,         "Silicon Image SiI1390" },
        { HDA_CODEC_SII1392, 0,         "Silicon Image SiI1392" },
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to