Lines 1780-1785
enum {
Link Here
|
1780 |
ALC889_FIXUP_DAC_ROUTE, |
1780 |
ALC889_FIXUP_DAC_ROUTE, |
1781 |
ALC889_FIXUP_MBP_VREF, |
1781 |
ALC889_FIXUP_MBP_VREF, |
1782 |
ALC889_FIXUP_IMAC91_VREF, |
1782 |
ALC889_FIXUP_IMAC91_VREF, |
|
|
1783 |
ALC889_FIXUP_MBA21_VREF, |
1783 |
ALC882_FIXUP_INV_DMIC, |
1784 |
ALC882_FIXUP_INV_DMIC, |
1784 |
ALC882_FIXUP_NO_PRIMARY_HP, |
1785 |
ALC882_FIXUP_NO_PRIMARY_HP, |
1785 |
ALC887_FIXUP_ASUS_BASS, |
1786 |
ALC887_FIXUP_ASUS_BASS, |
Lines 1884-1900
static void alc889_fixup_mbp_vref(struct hda_codec *codec,
Link Here
|
1884 |
} |
1885 |
} |
1885 |
} |
1886 |
} |
1886 |
|
1887 |
|
1887 |
/* Set VREF on speaker pins on imac91 */ |
1888 |
static void alc889_fixup_mac_pins(struct hda_codec *codec, |
1888 |
static void alc889_fixup_imac91_vref(struct hda_codec *codec, |
1889 |
const hda_nid_t *nids, int num_nids) |
1889 |
const struct hda_fixup *fix, int action) |
|
|
1890 |
{ |
1890 |
{ |
1891 |
struct alc_spec *spec = codec->spec; |
1891 |
struct alc_spec *spec = codec->spec; |
1892 |
static hda_nid_t nids[2] = { 0x18, 0x1a }; |
|
|
1893 |
int i; |
1892 |
int i; |
1894 |
|
1893 |
|
1895 |
if (action != HDA_FIXUP_ACT_INIT) |
1894 |
for (i = 0; i < num_nids; i++) { |
1896 |
return; |
|
|
1897 |
for (i = 0; i < ARRAY_SIZE(nids); i++) { |
1898 |
unsigned int val; |
1895 |
unsigned int val; |
1899 |
val = snd_hda_codec_get_pin_target(codec, nids[i]); |
1896 |
val = snd_hda_codec_get_pin_target(codec, nids[i]); |
1900 |
val |= AC_PINCTL_VREF_50; |
1897 |
val |= AC_PINCTL_VREF_50; |
Lines 1903-1908
static void alc889_fixup_imac91_vref(struct hda_codec *codec,
Link Here
|
1903 |
spec->gen.keep_vref_in_automute = 1; |
1900 |
spec->gen.keep_vref_in_automute = 1; |
1904 |
} |
1901 |
} |
1905 |
|
1902 |
|
|
|
1903 |
/* Set VREF on speaker pins on imac91 */ |
1904 |
static void alc889_fixup_imac91_vref(struct hda_codec *codec, |
1905 |
const struct hda_fixup *fix, int action) |
1906 |
{ |
1907 |
static hda_nid_t nids[2] = { 0x18, 0x1a }; |
1908 |
|
1909 |
if (action == HDA_FIXUP_ACT_INIT) |
1910 |
alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); |
1911 |
} |
1912 |
|
1913 |
/* Set VREF on speaker pins on mba21 */ |
1914 |
static void alc889_fixup_mba21_vref(struct hda_codec *codec, |
1915 |
const struct hda_fixup *fix, int action) |
1916 |
{ |
1917 |
static hda_nid_t nids[2] = { 0x18, 0x19 }; |
1918 |
|
1919 |
if (action == HDA_FIXUP_ACT_INIT) |
1920 |
alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); |
1921 |
} |
1922 |
|
1906 |
/* Don't take HP output as primary |
1923 |
/* Don't take HP output as primary |
1907 |
* Strangely, the speaker output doesn't work on Vaio Z and some Vaio |
1924 |
* Strangely, the speaker output doesn't work on Vaio Z and some Vaio |
1908 |
* all-in-one desktop PCs (for example VGC-LN51JGB) through DAC 0x05 |
1925 |
* all-in-one desktop PCs (for example VGC-LN51JGB) through DAC 0x05 |
Lines 2102-2107
static const struct hda_fixup alc882_fixups[] = {
Link Here
|
2102 |
.chained = true, |
2119 |
.chained = true, |
2103 |
.chain_id = ALC882_FIXUP_GPIO1, |
2120 |
.chain_id = ALC882_FIXUP_GPIO1, |
2104 |
}, |
2121 |
}, |
|
|
2122 |
[ALC889_FIXUP_MBA21_VREF] = { |
2123 |
.type = HDA_FIXUP_FUNC, |
2124 |
.v.func = alc889_fixup_mba21_vref, |
2125 |
.chained = true, |
2126 |
.chain_id = ALC889_FIXUP_MBP_VREF, |
2127 |
}, |
2105 |
[ALC882_FIXUP_INV_DMIC] = { |
2128 |
[ALC882_FIXUP_INV_DMIC] = { |
2106 |
.type = HDA_FIXUP_FUNC, |
2129 |
.type = HDA_FIXUP_FUNC, |
2107 |
.v.func = alc_fixup_inv_dmic_0x12, |
2130 |
.v.func = alc_fixup_inv_dmic_0x12, |
Lines 2172-2178
static const struct snd_pci_quirk alc882_fixup_tbl[] = {
Link Here
|
2172 |
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF), |
2195 |
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF), |
2173 |
SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD), |
2196 |
SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD), |
2174 |
SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF), |
2197 |
SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF), |
2175 |
SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBP_VREF), |
2198 |
SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF), |
2176 |
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF), |
2199 |
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF), |
2177 |
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF), |
2200 |
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF), |
2178 |
SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_FIXUP_MACPRO_GPIO), |
2201 |
SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_FIXUP_MACPRO_GPIO), |
2179 |
- |
|
|