Dash:
[t2.git] / package / base / linux / hda-realtek.patch.disabled
blob4bb75bae237c8272a72c61b1a3f2573099e6202a
1 # --- T2-COPYRIGHT-NOTE-BEGIN ---
2 # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
3
4 # T2 SDE: package/.../linux/hda-realtek.patch.disabled
5 # Copyright (C) 2017 - 2019 The T2 SDE Project
6
7 # More information can be found in the files COPYING and README.
8
9 # This patch file is dual-licensed. It is available under the license the
10 # patched project is licensed under, as long as it is an OpenSource license
11 # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
12 # of the GNU General Public License as published by the Free Software
13 # Foundation; either version 2 of the License, or (at your option) any later
14 # version.
15 # --- T2-COPYRIGHT-NOTE-END ---
17 The Surface Pro 2 and 3 have a strage frequency response and miss most of the
18 bass. I discovered connecting the HP out to the main DAC fixes this.
19 Maybe the other is mono or whatever strangely mixed signal?
21 As the Lenovo Ideapad 720S (AMD) and possibly the Dell XPS13 are also affected,
22 this may be a general bug w/ most Realtek codecs and the hda_auto_parser, ...
24   - Signed-off-by: RenĂ© Rebe <rene@exactcode.de>
26 --- linux-4.18/sound/pci/hda/patch_realtek.c.vanilla    2018-08-22 22:55:52.901015155 +0200
27 +++ linux-4.18/sound/pci/hda/patch_realtek.c    2018-08-22 23:08:06.477047703 +0200
28 @@ -5264,6 +5264,18 @@
29         }
30  }
32 +static void alc288_fixup_headset(struct hda_codec *codec,
33 +                                      const struct hda_fixup *fix, int action)
35 +       if (action == HDA_FIXUP_ACT_INIT) {
36 +               /* Surface Pro 2 or 3? */
37 +               int nid = codec->core.vendor_id == 0x10ec0280 ? 0x15 : 0x21;
38 +               /* DAC node 0x0c is giving low bass output, reverse default order. */
39 +               snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, 1);
40 +       
41 +       }
44  static void alc290_fixup_mono_speakers(struct hda_codec *codec,
45                                        const struct hda_fixup *fix, int action)
46  {
47 @@ -5466,6 +5478,7 @@
48         ALC283_FIXUP_SENSE_COMBO_JACK,
49         ALC282_FIXUP_ASUS_TX300,
50         ALC283_FIXUP_INT_MIC,
51 +       ALC288_FIXUP_HEADSET,
52         ALC290_FIXUP_MONO_SPEAKERS,
53         ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
54         ALC290_FIXUP_SUBWOOFER,
55 @@ -5942,6 +5955,10 @@
56                 .chained = true,
57                 .chain_id = ALC290_FIXUP_MONO_SPEAKERS,
58         },
59 +       [ALC288_FIXUP_HEADSET] = {
60 +               .type = HDA_FIXUP_FUNC,
61 +               .v.func = alc288_fixup_headset,
62 +       },
63         [ALC290_FIXUP_MONO_SPEAKERS] = {
64                 .type = HDA_FIXUP_FUNC,
65                 .v.func = alc290_fixup_mono_speakers,
66 @@ -8816,7 +8816,9 @@
67         SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68),
68         SND_PCI_QUIRK(0x1b0a, 0x01b8, "ACER Veriton", ALC662_FIXUP_ACER_VERITON),
69         SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
71 +       SND_PCI_QUIRK(0x1414, 0x9c20, "Microsoft Surface Pro 2/3", ALC288_FIXUP_HEADSET),
72 +       SND_PCI_QUIRK(0x17aa, 0x3812, "Lenovo ideapad 720S", ALC288_FIXUP_HEADSET),
73
74  #if 0
75         /* Below is a quirk table taken from the old code.
76          * Basically the device should work as is without the fixup table.