diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-05 13:16:52 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-05 13:16:52 -0400 |
| commit | 6e6f9e0b00f9ecfa816b290e08d5e660c3f1aae5 (patch) | |
| tree | 1aebdfb907716e0749066c79063f13e2019f0942 | |
| parent | 44953afbea29760bfcb1f2bd42a244072e0dadec (diff) | |
| parent | ea114fc27dc0cb9a550b6add5426720feb66262a (diff) | |
Merge tag 'sound-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"It was a fairly calm week; here you can find only a few trivial quirks
and fixes for USB and HD-audio. All changes are pretty device
specific"
* tag 'sound-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: usb-audio: fix missing input volume controls in MAYA44 USB(+)
ALSA: usb-audio: add MAYA44 USB+ mixer control names
ALSA: hda/realtek - Add a fixup for another Acer Aspire 9420
ALSA: hda - Fix jack detection at resume with VT codecs
ALSA: usb-audio: don't try to get Outlaw RR2150 sample rate
ALSA: usb-audio: Add mic volume fix quirk for Logitech Quickcam Fusion
ALSA: hda/realtek - Suooprt Dell headset mode for ALC256
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 8 | ||||
| -rw-r--r-- | sound/pci/hda/patch_via.c | 10 | ||||
| -rw-r--r-- | sound/usb/mixer.c | 10 | ||||
| -rw-r--r-- | sound/usb/mixer_maps.c | 5 | ||||
| -rw-r--r-- | sound/usb/quirks.c | 1 |
5 files changed, 28 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 464168426465..0320cb523d9e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -2168,6 +2168,7 @@ static const struct hda_fixup alc882_fixups[] = { | |||
| 2168 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 2168 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { |
| 2169 | SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_FIXUP_ACER_EAPD), | 2169 | SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_FIXUP_ACER_EAPD), |
| 2170 | SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_FIXUP_ACER_EAPD), | 2170 | SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_FIXUP_ACER_EAPD), |
| 2171 | SND_PCI_QUIRK(0x1025, 0x0107, "Acer Aspire", ALC883_FIXUP_ACER_EAPD), | ||
| 2171 | SND_PCI_QUIRK(0x1025, 0x010a, "Acer Ferrari 5000", ALC883_FIXUP_ACER_EAPD), | 2172 | SND_PCI_QUIRK(0x1025, 0x010a, "Acer Ferrari 5000", ALC883_FIXUP_ACER_EAPD), |
| 2172 | SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_FIXUP_ACER_EAPD), | 2173 | SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_FIXUP_ACER_EAPD), |
| 2173 | SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_FIXUP_ACER_EAPD), | 2174 | SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_FIXUP_ACER_EAPD), |
| @@ -5377,6 +5378,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { | |||
| 5377 | {0x1d, 0x40700001}, | 5378 | {0x1d, 0x40700001}, |
| 5378 | {0x21, 0x02211040}), | 5379 | {0x21, 0x02211040}), |
| 5379 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | 5380 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, |
| 5381 | ALC255_STANDARD_PINS, | ||
| 5382 | {0x12, 0x90a60160}, | ||
| 5383 | {0x14, 0x90170120}, | ||
| 5384 | {0x17, 0x40000000}, | ||
| 5385 | {0x1d, 0x40700001}, | ||
| 5386 | {0x21, 0x02211030}), | ||
| 5387 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | ||
| 5380 | ALC256_STANDARD_PINS, | 5388 | ALC256_STANDARD_PINS, |
| 5381 | {0x13, 0x40000000}), | 5389 | {0x13, 0x40000000}), |
| 5382 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | 5390 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, |
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 31a95cca015d..bab6c04932aa 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
| @@ -449,6 +449,15 @@ static int via_suspend(struct hda_codec *codec) | |||
| 449 | 449 | ||
| 450 | return 0; | 450 | return 0; |
| 451 | } | 451 | } |
| 452 | |||
| 453 | static int via_resume(struct hda_codec *codec) | ||
| 454 | { | ||
| 455 | /* some delay here to make jack detection working (bko#98921) */ | ||
| 456 | msleep(10); | ||
| 457 | codec->patch_ops.init(codec); | ||
| 458 | regcache_sync(codec->core.regmap); | ||
| 459 | return 0; | ||
| 460 | } | ||
| 452 | #endif | 461 | #endif |
| 453 | 462 | ||
| 454 | #ifdef CONFIG_PM | 463 | #ifdef CONFIG_PM |
| @@ -475,6 +484,7 @@ static const struct hda_codec_ops via_patch_ops = { | |||
| 475 | .stream_pm = snd_hda_gen_stream_pm, | 484 | .stream_pm = snd_hda_gen_stream_pm, |
| 476 | #ifdef CONFIG_PM | 485 | #ifdef CONFIG_PM |
| 477 | .suspend = via_suspend, | 486 | .suspend = via_suspend, |
| 487 | .resume = via_resume, | ||
| 478 | .check_power_status = via_check_power_status, | 488 | .check_power_status = via_check_power_status, |
| 479 | #endif | 489 | #endif |
| 480 | }; | 490 | }; |
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 3e2ef61c627b..8b7e391dd0b8 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c | |||
| @@ -918,6 +918,7 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval, | |||
| 918 | case USB_ID(0x046d, 0x081d): /* HD Webcam c510 */ | 918 | case USB_ID(0x046d, 0x081d): /* HD Webcam c510 */ |
| 919 | case USB_ID(0x046d, 0x0825): /* HD Webcam c270 */ | 919 | case USB_ID(0x046d, 0x0825): /* HD Webcam c270 */ |
| 920 | case USB_ID(0x046d, 0x0826): /* HD Webcam c525 */ | 920 | case USB_ID(0x046d, 0x0826): /* HD Webcam c525 */ |
| 921 | case USB_ID(0x046d, 0x08ca): /* Logitech Quickcam Fusion */ | ||
| 921 | case USB_ID(0x046d, 0x0991): | 922 | case USB_ID(0x046d, 0x0991): |
| 922 | /* Most audio usb devices lie about volume resolution. | 923 | /* Most audio usb devices lie about volume resolution. |
| 923 | * Most Logitech webcams have res = 384. | 924 | * Most Logitech webcams have res = 384. |
| @@ -1582,12 +1583,6 @@ static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, | |||
| 1582 | unitid); | 1583 | unitid); |
| 1583 | return -EINVAL; | 1584 | return -EINVAL; |
| 1584 | } | 1585 | } |
| 1585 | /* no bmControls field (e.g. Maya44) -> ignore */ | ||
| 1586 | if (desc->bLength <= 10 + input_pins) { | ||
| 1587 | usb_audio_dbg(state->chip, "MU %d has no bmControls field\n", | ||
| 1588 | unitid); | ||
| 1589 | return 0; | ||
| 1590 | } | ||
| 1591 | 1586 | ||
| 1592 | num_ins = 0; | 1587 | num_ins = 0; |
| 1593 | ich = 0; | 1588 | ich = 0; |
| @@ -1595,6 +1590,9 @@ static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, | |||
| 1595 | err = parse_audio_unit(state, desc->baSourceID[pin]); | 1590 | err = parse_audio_unit(state, desc->baSourceID[pin]); |
| 1596 | if (err < 0) | 1591 | if (err < 0) |
| 1597 | continue; | 1592 | continue; |
| 1593 | /* no bmControls field (e.g. Maya44) -> ignore */ | ||
| 1594 | if (desc->bLength <= 10 + input_pins) | ||
| 1595 | continue; | ||
| 1598 | err = check_input_term(state, desc->baSourceID[pin], &iterm); | 1596 | err = check_input_term(state, desc->baSourceID[pin], &iterm); |
| 1599 | if (err < 0) | 1597 | if (err < 0) |
| 1600 | return err; | 1598 | return err; |
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c index b703cb3cda19..e5000da9e9d7 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c | |||
| @@ -437,6 +437,11 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { | |||
| 437 | .map = ebox44_map, | 437 | .map = ebox44_map, |
| 438 | }, | 438 | }, |
| 439 | { | 439 | { |
| 440 | /* MAYA44 USB+ */ | ||
| 441 | .id = USB_ID(0x2573, 0x0008), | ||
| 442 | .map = maya44_map, | ||
| 443 | }, | ||
| 444 | { | ||
| 440 | /* KEF X300A */ | 445 | /* KEF X300A */ |
| 441 | .id = USB_ID(0x27ac, 0x1000), | 446 | .id = USB_ID(0x27ac, 0x1000), |
| 442 | .map = scms_usb3318_map, | 447 | .map = scms_usb3318_map, |
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 29175346cc4f..b8c97d092a47 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c | |||
| @@ -1120,6 +1120,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip) | |||
| 1120 | case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */ | 1120 | case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */ |
| 1121 | case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */ | 1121 | case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */ |
| 1122 | case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ | 1122 | case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ |
| 1123 | case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ | ||
| 1123 | return true; | 1124 | return true; |
| 1124 | } | 1125 | } |
| 1125 | return false; | 1126 | return false; |
