sound fixes for 4.13-rc7
Subsystems (4)
Linus,
please pull sound fixes for v4.13-rc7 from:
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.13-rc7
The topmost commit is 9ce76511b67be8fbcdff36b7e1662e3887bb7377
----------------------------------------------------------------
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.
----------------------------------------------------------------
Joakim Tjernlund (1):
ALSA: usb-audio: Add delay quirk for H650e/Jabra 550a USB headsets
Takashi Iwai (2):
ALSA: core: Fix unexpected error at replacing user TLV
ALSA: hda - Add stereo mic quirk for Lenovo G50-70 (17aa:3978)
Takashi Sakamoto (2):
ALSA: firewire: fix NULL pointer dereference when releasing uninitialized data of iso-resource
ALSA: firewire-motu: destroy stream data surely at failure of card initialization
Tom Rini (1):
ASoC: rt5677: Reintroduce I2C device IDs
--- sound/core/control.c | 2 +- sound/firewire/iso-resources.c | 7 ++++++- sound/firewire/motu/motu.c | 1 + sound/pci/hda/patch_conexant.c | 1 + sound/soc/codecs/rt5677.c | 1 + sound/usb/quirks.c | 9 ++++++--- 6 files changed, 16 insertions(+), 5 deletions(-)
sound/core/control.c +1 -1
@@ -1137,7 +1137,7 @@ static int snd_ctl_elem_user_tlv(struct snd_kcontrol *kcontrol,mutex_lock (&ue->card->user_ctl_lock); change = ue->tlv_data_size != size;if (!change) - change =memcmp (ue->tlv_data, new_data, size); + change =memcmp (ue->tlv_data, new_data, size) !=0 ;kfree (ue->tlv_data); ue->tlv_data = new_data; ue->tlv_data_size = size;
sound/firewire/iso-resources.c +6 -1
@@ -210,9 +210,14 @@ EXPORT_SYMBOL(fw_iso_resources_update);*/ 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; +/* Not initialized. */ +if (r->unit ==NULL ) +return ; + card =fw_parent_device (r->unit)->card; +mutex_lock (&r->mutex);if (r->allocated) {
sound/firewire/motu/motu.c +1 -0
@@ -128,6 +128,7 @@ static void do_registration(struct work_struct *work)return ; error:snd_motu_transaction_unregister (motu); +snd_motu_stream_destroy_duplex (motu);snd_card_free (motu->card);dev_info (&motu->unit->device,"Sound card registration failed: %d\n" , err);
sound/pci/hda/patch_conexant.c +1 -0
@@ -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 ,0x3975 ,"Lenovo U300s" ,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_VENDOR (0x17aa ,"Thinkpad" ,CXT_FIXUP_THINKPAD_ACPI ), SND_PCI_QUIRK(0x1c06, 0x2011, "Lemote A1004", CXT_PINCFG_LEMOTE_A1004),
sound/soc/codecs/rt5677.c +1 -0
@@ -5021,6 +5021,7 @@ static const struct regmap_config rt5677_regmap = {static const struct i2c_device_id rt5677_i2c_id[] = { {"rt5677" ,RT5677 }, {"rt5676" ,RT5676 }, + {"RT5677CE:00" ,RT5677 }, { } };MODULE_DEVICE_TABLE (i2c, rt5677_i2c_id);
sound/usb/quirks.c +6 -3
@@ -1309,10 +1309,13 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe, && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)mdelay (20 ); -/* Zoom R16/24 needs a tiny delay here, otherwise requests like -* get/set frequency return as failed despite actually succeeding. +/* Zoom R16/24, Logitech H650e, Jabra 550a needs a tiny delay here, +* 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 )mdelay (1 ); }