Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"We've had a very calm development cycle, so far. Here are the few
fixes for HD-audio and USB-audio, all of which are small and easy"

* tag 'sound-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda - Fix inconsistent monitor_present state until repoll
ALSA: hda - Fix regression of monitor_present flag in eld proc file
ALSA: usb-audio: Skip volume controls triggers hangup on Dell USB Dock
ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s
ALSA: sscape: Use correct format identifier for size_t
ALSA: usb-audio: Add a quirk for Plantronics BT300
ALSA: usb-audio: Add a sample rate quirk for Phoenix Audio TMX320
ALSA: hda - Bind with i915 only when Intel graphics is present

+45 -7
+15
sound/hda/hdac_i915.c
··· 267 267 } 268 268 EXPORT_SYMBOL_GPL(snd_hdac_i915_register_notifier); 269 269 270 + /* check whether intel graphics is present */ 271 + static bool i915_gfx_present(void) 272 + { 273 + static struct pci_device_id ids[] = { 274 + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_ANY_ID), 275 + .class = PCI_BASE_CLASS_DISPLAY << 16, 276 + .class_mask = 0xff << 16 }, 277 + {} 278 + }; 279 + return pci_dev_present(ids); 280 + } 281 + 270 282 /** 271 283 * snd_hdac_i915_init - Initialize i915 audio component 272 284 * @bus: HDA core bus ··· 297 285 struct device *dev = bus->dev; 298 286 struct i915_audio_component *acomp; 299 287 int ret; 288 + 289 + if (!i915_gfx_present()) 290 + return -ENODEV; 300 291 301 292 acomp = kzalloc(sizeof(*acomp), GFP_KERNEL); 302 293 if (!acomp)
+1 -1
sound/isa/sscape.c
··· 591 591 } 592 592 err = upload_dma_data(sscape, init_fw->data, init_fw->size); 593 593 if (err == 0) 594 - snd_printk(KERN_INFO "sscape: MIDI firmware loaded %d KBs\n", 594 + snd_printk(KERN_INFO "sscape: MIDI firmware loaded %zu KBs\n", 595 595 init_fw->size >> 10); 596 596 597 597 release_firmware(init_fw);
+4 -5
sound/pci/hda/patch_hdmi.c
··· 1396 1396 struct hda_codec *codec = per_pin->codec; 1397 1397 struct hdmi_spec *spec = codec->spec; 1398 1398 struct hdmi_eld *eld = &spec->temp_eld; 1399 - struct hdmi_eld *pin_eld = &per_pin->sink_eld; 1400 1399 hda_nid_t pin_nid = per_pin->pin_nid; 1401 1400 /* 1402 1401 * Always execute a GetPinSense verb here, even when called from ··· 1412 1413 present = snd_hda_pin_sense(codec, pin_nid); 1413 1414 1414 1415 mutex_lock(&per_pin->lock); 1415 - pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE); 1416 - if (pin_eld->monitor_present) 1416 + eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE); 1417 + if (eld->monitor_present) 1417 1418 eld->eld_valid = !!(present & AC_PINSENSE_ELDV); 1418 1419 else 1419 1420 eld->eld_valid = false; 1420 1421 1421 1422 codec_dbg(codec, 1422 1423 "HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", 1423 - codec->addr, pin_nid, pin_eld->monitor_present, eld->eld_valid); 1424 + codec->addr, pin_nid, eld->monitor_present, eld->eld_valid); 1424 1425 1425 1426 if (eld->eld_valid) { 1426 1427 if (spec->ops.pin_get_eld(codec, pin_nid, eld->eld_buffer, ··· 1440 1441 else 1441 1442 update_eld(codec, per_pin, eld); 1442 1443 1443 - ret = !repoll || !pin_eld->monitor_present || pin_eld->eld_valid; 1444 + ret = !repoll || !eld->monitor_present || eld->eld_valid; 1444 1445 1445 1446 jack = snd_hda_jack_tbl_get(codec, pin_nid); 1446 1447 if (jack)
+9 -1
sound/pci/hda/patch_realtek.c
··· 4760 4760 ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, 4761 4761 ALC280_FIXUP_HP_HEADSET_MIC, 4762 4762 ALC221_FIXUP_HP_FRONT_MIC, 4763 + ALC292_FIXUP_TPT460, 4763 4764 }; 4764 4765 4765 4766 static const struct hda_fixup alc269_fixups[] = { ··· 5410 5409 { } 5411 5410 }, 5412 5411 }, 5412 + [ALC292_FIXUP_TPT460] = { 5413 + .type = HDA_FIXUP_FUNC, 5414 + .v.func = alc_fixup_tpt440_dock, 5415 + .chained = true, 5416 + .chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE, 5417 + }, 5413 5418 }; 5414 5419 5415 5420 static const struct snd_pci_quirk alc269_fixup_tbl[] = { ··· 5570 5563 SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK), 5571 5564 SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK), 5572 5565 SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), 5573 - SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE), 5566 + SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460), 5574 5567 SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), 5575 5568 SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), 5576 5569 SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI), ··· 5665 5658 {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"}, 5666 5659 {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"}, 5667 5660 {.id = ALC292_FIXUP_TPT440, .name = "tpt440"}, 5661 + {.id = ALC292_FIXUP_TPT460, .name = "tpt460"}, 5668 5662 {} 5669 5663 }; 5670 5664 #define ALC225_STANDARD_PINS \
+14
sound/usb/mixer_maps.c
··· 349 349 }; 350 350 351 351 /* 352 + * Dell usb dock with ALC4020 codec had a firmware problem where it got 353 + * screwed up when zero volume is passed; just skip it as a workaround 354 + */ 355 + static const struct usbmix_name_map dell_alc4020_map[] = { 356 + { 16, NULL }, 357 + { 19, NULL }, 358 + { 0 } 359 + }; 360 + 361 + /* 352 362 * Control map entries 353 363 */ 354 364 ··· 439 429 { 440 430 .id = USB_ID(0x0ccd, 0x0028), 441 431 .map = aureon_51_2_map, 432 + }, 433 + { 434 + .id = USB_ID(0x0bda, 0x4014), 435 + .map = dell_alc4020_map, 442 436 }, 443 437 { 444 438 .id = USB_ID(0x0dba, 0x1000),
+2
sound/usb/quirks.c
··· 1134 1134 case USB_ID(0x045E, 0x076F): /* MS Lifecam HD-6000 */ 1135 1135 case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */ 1136 1136 case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */ 1137 + case USB_ID(0x047F, 0x0415): /* Plantronics BT-300 */ 1137 1138 case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ 1138 1139 case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ 1139 1140 case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ 1141 + case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */ 1140 1142 case USB_ID(0x21B4, 0x0081): /* AudioQuest DragonFly */ 1141 1143 return true; 1142 1144 }