Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1717701 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents bd2bc2b8 6ff1a253
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -6907,8 +6907,6 @@ static const struct hda_fixup alc662_fixups[] = {
		.v.pins = (const struct hda_pintbl[]) {
		.v.pins = (const struct hda_pintbl[]) {
			{ 0x15, 0x40f000f0 }, /* disabled */
			{ 0x15, 0x40f000f0 }, /* disabled */
			{ 0x16, 0x40f000f0 }, /* disabled */
			{ 0x16, 0x40f000f0 }, /* disabled */
			{ 0x18, 0x01014011 }, /* LO */
			{ 0x1a, 0x01014012 }, /* LO */
			{ }
			{ }
		}
		}
	},
	},
+2 −1
Original line number Original line Diff line number Diff line
@@ -13,7 +13,8 @@ static void (*old_vmaster_hook)(void *, int);
static bool is_thinkpad(struct hda_codec *codec)
static bool is_thinkpad(struct hda_codec *codec)
{
{
	return (codec->core.subsystem_id >> 16 == 0x17aa) &&
	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)
static void update_tpacpi_mute_led(void *private_data, int enabled)
+2 −1
Original line number Original line Diff line number Diff line
@@ -315,6 +315,7 @@ static int snd_usb_audio_free(struct snd_usb_audio *chip)
		snd_usb_endpoint_free(ep);
		snd_usb_endpoint_free(ep);


	mutex_destroy(&chip->mutex);
	mutex_destroy(&chip->mutex);
	if (!atomic_read(&chip->shutdown))
		dev_set_drvdata(&chip->dev->dev, NULL);
		dev_set_drvdata(&chip->dev->dev, NULL);
	kfree(chip);
	kfree(chip);
	return 0;
	return 0;