sound fixes for 4.9-rc6
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. -----BEGIN PGP SIGNATURE----- iQIrBAABCAAVBQJYLsqoDhx0aXdhaUBzdXNlLmRlAAoJEGwxgFQ9KSmkF+gQAIyL IJROXA6MWSHMaUUa0zToCBYscF+Z1CXavqLkBVGpaMGLM9m4CLkWavmxIIJkfr/1 XDTDgu6fvDQ0mRBSp3VnxKZGGf0V9fvdODWD7ueCZNHgdNMxMCMwAPaZwTJVk41L 1W/OfJG/w059L7zY0ZQ05zNphF9noav8Qdb685QdXY5brD92KbGs4TYNHl/D4bw7 rkT/dcLAxKfSg3Bnwi0Dong5MmXSH+IqvaapHVlhoBkHala5iHZS4URZKS2JgdUl nbHFY1kDK5DBN4hHixrRMWqf6MP+ASA/zdEFUeQzoZ9mo/oYjbHURr63+chYkj5I Y3yzn4YOEL9O+SdShRYdr6YCHpIJzuvwZCwIPLUlnXrqHoeJPkBnb4J8JiMmqm7O F/REdLJoUldqEp3UhBePSSg53UI9qceB1QMYk8YIQy0yyom20uBuQ4GbXnyKQrLl MpRb8sfh1GATaTfEshqH+52t7taRPv9VPtGAmDHOLYpcmWhfrJ7Kc6Mh60yTJJbd 91V4lNib8fV3eqWsW5+l25xzMku8FSIQHgUtG4zW2uOVD3lQiuYS6L8jYiBBApas Tgvuowh3Y0toDDH5VTAtorUzYEKF203uqOytey3SgVyTz4lErrzdp+JyaeobGhHv BIZKgV1Q00r+FNi7LC4thS9K6yvXLtXPc2mI4OMu =aKgB -----END PGP SIGNATURE----- Merge tag 'sound-4.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 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
This commit is contained in:
Коммит
c1717701be
|
@ -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 */
|
|
||||||
{ }
|
{ }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче