]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge tag 'sound-4.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 18 Nov 2016 16:56:47 +0000 (08:56 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 18 Nov 2016 16:56:47 +0000 (08:56 -0800)
Pull sound fixes from Takashi Iwai:
 "Three trivial fixes:

  A regression fix for ASRock mobo, a use-after-free fix at hot-unplug
  of USB-audio, and a quirk for new Thinkpad models"

* tag 'sound-4.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
  ALSA: hda - Fix mic regression by ASRock mobo fixup
  ALSA: hda - add a new condition to check if it is thinkpad

sound/pci/hda/patch_realtek.c
sound/pci/hda/thinkpad_helper.c
sound/usb/card.c

index 2f909dd8b7b851680f5c84195f046d58046144c9..ea81c08ddc7acf77dc7c4144a5b093b0d72ef867 100644 (file)
@@ -6907,8 +6907,6 @@ static const struct hda_fixup alc662_fixups[] = {
                .v.pins = (const struct hda_pintbl[]) {
                        { 0x15, 0x40f000f0 }, /* disabled */
                        { 0x16, 0x40f000f0 }, /* disabled */
-                       { 0x18, 0x01014011 }, /* LO */
-                       { 0x1a, 0x01014012 }, /* LO */
                        { }
                }
        },
index 6a23302297c9cc4b74fd66eab52a32433a45949c..4d9d320a79711f5e95deac5f32c2ac0f741ff21d 100644 (file)
@@ -13,7 +13,8 @@ static void (*old_vmaster_hook)(void *, int);
 static bool is_thinkpad(struct hda_codec *codec)
 {
        return (codec->core.subsystem_id >> 16 == 0x17aa) &&
-              (acpi_dev_found("LEN0068") || acpi_dev_found("IBM0068"));
+              (acpi_dev_found("LEN0068") || acpi_dev_found("LEN0268") ||
+               acpi_dev_found("IBM0068"));
 }
 
 static void update_tpacpi_mute_led(void *private_data, int enabled)
index 9e5276d6dda05c999fcba24ff35ab7345513c6da..2ddc034673a8e99d232ebe62b87ff4115628d453 100644 (file)
@@ -315,7 +315,8 @@ static int snd_usb_audio_free(struct snd_usb_audio *chip)
                snd_usb_endpoint_free(ep);
 
        mutex_destroy(&chip->mutex);
-       dev_set_drvdata(&chip->dev->dev, NULL);
+       if (!atomic_read(&chip->shutdown))
+               dev_set_drvdata(&chip->dev->dev, NULL);
        kfree(chip);
        return 0;
 }