tangled
alpha
login
or
join now
tjh.dev
/
kernel
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge branch 'fix/hda' into for-linus
Takashi Iwai
16 years ago
828d4453
bf974020
+25
-10
4 changed files
expand all
collapse all
unified
split
sound
pci
hda
patch_conexant.c
patch_nvhdmi.c
patch_realtek.c
patch_sigmatel.c
+12
-3
sound/pci/hda/patch_conexant.c
···
110
110
111
111
unsigned int dell_automute;
112
112
unsigned int port_d_mode;
113
113
+
unsigned char ext_mic_bias;
113
114
};
114
115
115
116
static int conexant_playback_pcm_open(struct hda_pcm_stream *hinfo,
···
1928
1927
static hda_nid_t cxt5066_capsrc_nids[1] = { 0x17 };
1929
1928
#define CXT5066_SPDIF_OUT 0x21
1930
1929
1930
1930
+
/* OLPC's microphone port is DC coupled for use with external sensors,
1931
1931
+
* therefore we use a 50% mic bias in order to center the input signal with
1932
1932
+
* the DC input range of the codec. */
1933
1933
+
#define CXT5066_OLPC_EXT_MIC_BIAS PIN_VREF50
1934
1934
+
1931
1935
static struct hda_channel_mode cxt5066_modes[1] = {
1932
1936
{ 2, NULL },
1933
1937
};
···
1986
1980
/* toggle input of built-in and mic jack appropriately */
1987
1981
static void cxt5066_automic(struct hda_codec *codec)
1988
1982
{
1989
1989
-
static struct hda_verb ext_mic_present[] = {
1983
1983
+
struct conexant_spec *spec = codec->spec;
1984
1984
+
struct hda_verb ext_mic_present[] = {
1990
1985
/* enable external mic, port B */
1991
1991
-
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
1986
1986
+
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, spec->ext_mic_bias},
1992
1987
1993
1988
/* switch to external mic input */
1994
1989
{0x17, AC_VERB_SET_CONNECT_SEL, 0},
···
2242
2235
{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */
2243
2236
2244
2237
/* Port B: external microphone */
2245
2245
-
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
2238
2238
+
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, CXT5066_OLPC_EXT_MIC_BIAS},
2246
2239
2247
2240
/* Port C: internal microphone */
2248
2241
{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
···
2360
2353
spec->input_mux = &cxt5066_capture_source;
2361
2354
2362
2355
spec->port_d_mode = PIN_HP;
2356
2356
+
spec->ext_mic_bias = PIN_VREF80;
2363
2357
2364
2358
spec->num_init_verbs = 1;
2365
2359
spec->init_verbs[0] = cxt5066_init_verbs;
···
2392
2384
spec->mixers[spec->num_mixers++] = cxt5066_mixer_master_olpc;
2393
2385
spec->mixers[spec->num_mixers++] = cxt5066_mixers;
2394
2386
spec->port_d_mode = 0;
2387
2387
+
spec->ext_mic_bias = CXT5066_OLPC_EXT_MIC_BIAS;
2395
2388
2396
2389
/* no S/PDIF out */
2397
2390
spec->multiout.dig_out_nid = 0;
+2
sound/pci/hda/patch_nvhdmi.c
···
397
397
static struct hda_codec_preset snd_hda_preset_nvhdmi[] = {
398
398
{ .id = 0x10de0002, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
399
399
{ .id = 0x10de0003, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
400
400
+
{ .id = 0x10de0005, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
400
401
{ .id = 0x10de0006, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
401
402
{ .id = 0x10de0007, .name = "MCP7A HDMI", .patch = patch_nvhdmi_8ch },
402
403
{ .id = 0x10de0067, .name = "MCP67 HDMI", .patch = patch_nvhdmi_2ch },
···
407
406
408
407
MODULE_ALIAS("snd-hda-codec-id:10de0002");
409
408
MODULE_ALIAS("snd-hda-codec-id:10de0003");
409
409
+
MODULE_ALIAS("snd-hda-codec-id:10de0005");
410
410
MODULE_ALIAS("snd-hda-codec-id:10de0006");
411
411
MODULE_ALIAS("snd-hda-codec-id:10de0007");
412
412
MODULE_ALIAS("snd-hda-codec-id:10de0067");
+9
-7
sound/pci/hda/patch_realtek.c
···
4684
4684
spec->multiout.dig_out_nid = dig_nid;
4685
4685
else {
4686
4686
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
4687
4687
-
spec->slave_dig_outs[i - 1] = dig_nid;
4688
4688
-
if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
4687
4687
+
if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
4689
4688
break;
4689
4689
+
spec->slave_dig_outs[i - 1] = dig_nid;
4690
4690
}
4691
4691
}
4692
4692
if (spec->autocfg.dig_in_pin)
···
6249
6249
SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER),
6250
6250
SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FAVORIT100),
6251
6251
SND_PCI_QUIRK(0x103c, 0x2808, "HP d5700", ALC260_HP_3013),
6252
6252
-
SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_HP_3013),
6252
6252
+
SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_AUTO), /* no quirk */
6253
6253
SND_PCI_QUIRK(0x103c, 0x3010, "HP", ALC260_HP_3013),
6254
6254
SND_PCI_QUIRK(0x103c, 0x3011, "HP", ALC260_HP_3013),
6255
6255
SND_PCI_QUIRK(0x103c, 0x3012, "HP", ALC260_HP_DC7600),
···
8911
8911
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3),
8912
8912
SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24),
8913
8913
SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC885_MB5),
8914
8914
-
/* FIXME: HP jack sense seems not working for MBP 5,1, so apparently
8915
8915
-
* no perfect solution yet
8914
8914
+
/* FIXME: HP jack sense seems not working for MBP 5,1 or 5,2,
8915
8915
+
* so apparently no perfect solution yet
8916
8916
*/
8917
8917
SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC885_MB5),
8918
8918
+
SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC885_MB5),
8918
8919
{} /* terminator */
8919
8920
};
8920
8921
···
9814
9813
spec->multiout.dig_out_nid = dig_nid;
9815
9814
else {
9816
9815
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
9817
9817
-
spec->slave_dig_outs[i - 1] = dig_nid;
9818
9818
-
if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
9816
9816
+
if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
9819
9817
break;
9818
9818
+
spec->slave_dig_outs[i - 1] = dig_nid;
9820
9819
}
9821
9820
}
9822
9821
if (spec->autocfg.dig_in_pin)
···
11461
11460
SND_PCI_QUIRK(0x104d, 0x820f, "Sony ASSAMD", ALC262_SONY_ASSAMD),
11462
11461
SND_PCI_QUIRK(0x104d, 0x9016, "Sony VAIO", ALC262_AUTO), /* dig-only */
11463
11462
SND_PCI_QUIRK(0x104d, 0x9025, "Sony VAIO Z21MN", ALC262_TOSHIBA_S06),
11463
11463
+
SND_PCI_QUIRK(0x104d, 0x9035, "Sony VAIO VGN-FW170J", ALC262_AUTO),
11464
11464
SND_PCI_QUIRK_MASK(0x104d, 0xff00, 0x9000, "Sony VAIO",
11465
11465
ALC262_SONY_ASSAMD),
11466
11466
SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1",
+2
sound/pci/hda/patch_sigmatel.c
···
1590
1590
"Dell Studio 17", STAC_DELL_M6_DMIC),
1591
1591
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02be,
1592
1592
"Dell Studio 1555", STAC_DELL_M6_DMIC),
1593
1593
+
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
1594
1594
+
"Dell Studio 1557", STAC_DELL_M6_DMIC),
1593
1595
{} /* terminator */
1594
1596
};
1595
1597