sound fixes for 4.13-rc7
We're keeping in a good shape, this batch contains just a few small fixes (a regression fix for ASoC rt5677 codec, NULL dereference and error-path fixes in firewire, and a corner-case ioctl error fix for user TLV), as well as usual quirks for USB-audio and HD-audio. -----BEGIN PGP SIGNATURE----- iQJCBAABCAAsFiEECxfAB4MH3rD5mfB6bDGAVD0pKaQFAlmf4wAOHHRpd2FpQHN1 c2UuZGUACgkQbDGAVD0pKaTafhAAks6blpz37fjodZVl/0LSb84jv/oIRtuednSD 9wdZyvL/mDHe7c5u88+/k5A/MNIi49TQO0MlMTmRm+ZB5gEtCFn2fX8dtNvMwfEC Vxmt9A9k8AnQVOVB8QR4A+v4/TB22MACdYECs9T5PYv6DchOUtiM+aGrgYuSu3Hi kkjThAvi8JheuaSGCjRLB0ztEXUSE8Y8LouINiYNBM1cIxxYFkwa/Dp1erCjMqf3 bImUKC5rJSq7ex8dVMJ30tfP+0hLPyntx1SotUPDn0POKmw/VBZasOdEvIrk/rDV sk2HoNTiV8APKYgwHO+SwVFufjr3ioKAh4q+xtE1z7iqZbRqE8AOnse6p36zD7Lh gx7DbSYG5M3UlYoQByWO/l6HNq7Ei2gC3zmbXpW68JinLvxt3qGhiHQhZJ8q+GuD NGO8IZbO0e4VK3uvW2fFh27xlceTSZbmfC9yQ8IFncd/tUly+ZYaD7U7t360X4Ap fyI2/oCckM1OGG51VlO5sympvR5dh4+L5h4m3+H3ZoTUjFeiS2rdjAokjxsRmQdo rrSGPlNYn1LQ0s+IC+NuDuTLih9BhQN3IGM87UVbxRInjhb/ftcOhaRgu4hrJ+lw npR2CfMVdfvgkeJ3wQ5pThsN1hOmoL/7ytF4OdV+YdlQSrtRxOW47eqTWdRpPXz8 YTomDyo= =Sqtt -----END PGP SIGNATURE----- Merge tag 'sound-4.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "We're keeping in a good shape, this batch contains just a few small fixes (a regression fix for ASoC rt5677 codec, NULL dereference and error-path fixes in firewire, and a corner-case ioctl error fix for user TLV), as well as usual quirks for USB-audio and HD-audio" * tag 'sound-4.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: rt5677: Reintroduce I2C device IDs ALSA: hda - Add stereo mic quirk for Lenovo G50-70 (17aa:3978) ALSA: core: Fix unexpected error at replacing user TLV ALSA: usb-audio: Add delay quirk for H650e/Jabra 550a USB headsets ALSA: firewire-motu: destroy stream data surely at failure of card initialization ALSA: firewire: fix NULL pointer dereference when releasing uninitialized data of iso-resource
This commit is contained in:
commit
8efeb3500c
@ -1137,7 +1137,7 @@ static int snd_ctl_elem_user_tlv(struct snd_kcontrol *kcontrol,
|
|||||||
mutex_lock(&ue->card->user_ctl_lock);
|
mutex_lock(&ue->card->user_ctl_lock);
|
||||||
change = ue->tlv_data_size != size;
|
change = ue->tlv_data_size != size;
|
||||||
if (!change)
|
if (!change)
|
||||||
change = memcmp(ue->tlv_data, new_data, size);
|
change = memcmp(ue->tlv_data, new_data, size) != 0;
|
||||||
kfree(ue->tlv_data);
|
kfree(ue->tlv_data);
|
||||||
ue->tlv_data = new_data;
|
ue->tlv_data = new_data;
|
||||||
ue->tlv_data_size = size;
|
ue->tlv_data_size = size;
|
||||||
|
@ -210,9 +210,14 @@ EXPORT_SYMBOL(fw_iso_resources_update);
|
|||||||
*/
|
*/
|
||||||
void fw_iso_resources_free(struct fw_iso_resources *r)
|
void fw_iso_resources_free(struct fw_iso_resources *r)
|
||||||
{
|
{
|
||||||
struct fw_card *card = fw_parent_device(r->unit)->card;
|
struct fw_card *card;
|
||||||
int bandwidth, channel;
|
int bandwidth, channel;
|
||||||
|
|
||||||
|
/* Not initialized. */
|
||||||
|
if (r->unit == NULL)
|
||||||
|
return;
|
||||||
|
card = fw_parent_device(r->unit)->card;
|
||||||
|
|
||||||
mutex_lock(&r->mutex);
|
mutex_lock(&r->mutex);
|
||||||
|
|
||||||
if (r->allocated) {
|
if (r->allocated) {
|
||||||
|
@ -128,6 +128,7 @@ static void do_registration(struct work_struct *work)
|
|||||||
return;
|
return;
|
||||||
error:
|
error:
|
||||||
snd_motu_transaction_unregister(motu);
|
snd_motu_transaction_unregister(motu);
|
||||||
|
snd_motu_stream_destroy_duplex(motu);
|
||||||
snd_card_free(motu->card);
|
snd_card_free(motu->card);
|
||||||
dev_info(&motu->unit->device,
|
dev_info(&motu->unit->device,
|
||||||
"Sound card registration failed: %d\n", err);
|
"Sound card registration failed: %d\n", err);
|
||||||
|
@ -947,6 +947,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
|
|||||||
SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC),
|
SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC),
|
SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC),
|
SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC),
|
||||||
|
SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo G50-70", CXT_FIXUP_STEREO_DMIC),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC),
|
SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC),
|
||||||
SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI),
|
SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI),
|
||||||
SND_PCI_QUIRK(0x1c06, 0x2011, "Lemote A1004", CXT_PINCFG_LEMOTE_A1004),
|
SND_PCI_QUIRK(0x1c06, 0x2011, "Lemote A1004", CXT_PINCFG_LEMOTE_A1004),
|
||||||
|
@ -5021,6 +5021,7 @@ static const struct regmap_config rt5677_regmap = {
|
|||||||
static const struct i2c_device_id rt5677_i2c_id[] = {
|
static const struct i2c_device_id rt5677_i2c_id[] = {
|
||||||
{ "rt5677", RT5677 },
|
{ "rt5677", RT5677 },
|
||||||
{ "rt5676", RT5676 },
|
{ "rt5676", RT5676 },
|
||||||
|
{ "RT5677CE:00", RT5677 },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, rt5677_i2c_id);
|
MODULE_DEVICE_TABLE(i2c, rt5677_i2c_id);
|
||||||
|
@ -1309,10 +1309,13 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
|
|||||||
&& (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
&& (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
||||||
mdelay(20);
|
mdelay(20);
|
||||||
|
|
||||||
/* Zoom R16/24 needs a tiny delay here, otherwise requests like
|
/* Zoom R16/24, Logitech H650e, Jabra 550a needs a tiny delay here,
|
||||||
* get/set frequency return as failed despite actually succeeding.
|
* otherwise requests like get/set frequency return as failed despite
|
||||||
|
* actually succeeding.
|
||||||
*/
|
*/
|
||||||
if (chip->usb_id == USB_ID(0x1686, 0x00dd) &&
|
if ((chip->usb_id == USB_ID(0x1686, 0x00dd) ||
|
||||||
|
chip->usb_id == USB_ID(0x046d, 0x0a46) ||
|
||||||
|
chip->usb_id == USB_ID(0x0b0e, 0x0349)) &&
|
||||||
(requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
(requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
||||||
mdelay(1);
|
mdelay(1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user