sound fixes for 4.9-rc3
Linus,
please pull sound fixes for v4.9-rc3 from:
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.9-rc3
The topmost commit is bdc3478f90cd4d2928197f36629d5cf93b64dbe9
----------------------------------------------------------------
sound fixes for 4.9-rc3
Here contains the usual stuff -- the fixups and quirks for HD-audio and USB-audio, in addition to a bad regression fix in ALSA sequencer timer since 4.8, and a trivial fix for asihpi PCI driver.
----------------------------------------------------------------
Ard Biesheuvel (1):
ALSA: hda - allow 40 bit DMA mask for NVidia devices
Hui Wang (2):
ALSA: hda - Adding a new group of pin cfg into ALC295 pin quirk table
ALSA: hda - Fix headset mic detection problem for two Dell laptops
Marcel Hasler (1):
ALSA: usb-audio: Add quirk for Syntek STK1160
Takashi Iwai (2):
ALSA: hda - Fix surround output pins for ASRock B150M mobo
ALSA: seq: Fix time account regression
Vlad Tsyrklevich (1):
ALSA: asihpi: fix kernel memory disclosure
--- sound/core/seq/seq_timer.c | 4 ++-- sound/pci/asihpi/hpioctl.c | 2 +- sound/pci/hda/hda_intel.c | 7 +++++-- sound/pci/hda/patch_realtek.c | 30 +++++++++++++++++++++++++++--- sound/usb/quirks-table.h | 17 +++++++++++++++++ 5 files changed, 52 insertions(+), 8 deletions(-)
sound/core/seq/seq_timer.c +2 -2
@@ -448,8 +448,8 @@ snd_seq_real_time_t snd_seq_timer_get_cur_time(struct snd_seq_timer *tmr)ktime_get_ts64 (&tm); tm =timespec64_sub (tm, tmr->last_update); - cur_time.tv_nsec = tm.tv_nsec; - cur_time.tv_sec = tm.tv_sec; + cur_time.tv_nsec += tm.tv_nsec; + cur_time.tv_sec += tm.tv_sec;snd_seq_sanity_real_time (&cur_time); }spin_unlock_irqrestore (&tmr->lock, flags);
sound/pci/asihpi/hpioctl.c +1 -1
@@ -111,7 +111,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)return -EINVAL ; hm =kmalloc (sizeof (*hm),GFP_KERNEL ); - hr =kmalloc (sizeof (*hr),GFP_KERNEL ); + hr =kzalloc (sizeof (*hr),GFP_KERNEL );if (!hm || !hr) { err = -ENOMEM ; goto out;
sound/pci/hda/hda_intel.c +5 -2
@@ -341,8 +341,7 @@ enum {/* quirks for Nvidia */ #define AZX_DCAPS_PRESET_NVIDIA \ - (AZX_DCAPS_NO_MSI | /*AZX_DCAPS_ALIGN_BUFSIZE |*/ \ -AZX_DCAPS_NO_64BIT | AZX_DCAPS_CORBRP_SELF_CLEAR |\ + (AZX_DCAPS_NO_MSI | AZX_DCAPS_CORBRP_SELF_CLEAR |\ AZX_DCAPS_SNOOP_TYPE(NVIDIA))#define AZX_DCAPS_PRESET_CTHDA \
@@ -1716,6 +1715,10 @@ static int azx_first_init(struct azx *chip) } } +/* NVidia hardware normally only supports up to 40 bits of DMA */ +if (chip->pci->vendor ==PCI_VENDOR_ID_NVIDIA ) + dma_bits =40 ; +/* disable 64bit DMA address on some devices */ if (chip->driver_caps &AZX_DCAPS_NO_64BIT ) {dev_dbg (card->dev,"Disabling 64bit DMA\n" );
sound/pci/hda/patch_realtek.c +27 -3
@@ -5811,8 +5811,6 @@ static const struct hda_model_fixup alc269_fixup_models[] = {#define ALC295_STANDARD_PINS \ {0x12, 0xb7a60130}, \ {0x14, 0x90170110}, \ - {0x17, 0x21014020}, \ - {0x18, 0x21a19030}, \ {0x21, 0x04211020}#define ALC298_STANDARD_PINS \
@@ -5859,11 +5857,19 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x1b, 0x02011020}, {0x21, 0x0221101f}),SND_HDA_PIN_QUIRK (0x10ec0255 ,0x1028 ,"Dell" ,ALC255_FIXUP_DELL1_MIC_NO_PRESENCE , + {0x14, 0x90170110}, + {0x1b, 0x01011020}, + {0x21, 0x0221101f}), +SND_HDA_PIN_QUIRK (0x10ec0255 ,0x1028 ,"Dell" ,ALC255_FIXUP_DELL1_MIC_NO_PRESENCE , {0x14, 0x90170130}, {0x1b, 0x01014020}, {0x21, 0x0221103f}),SND_HDA_PIN_QUIRK (0x10ec0255 ,0x1028 ,"Dell" ,ALC255_FIXUP_DELL1_MIC_NO_PRESENCE , {0x14, 0x90170130}, + {0x1b, 0x01011020}, + {0x21, 0x0221103f}), +SND_HDA_PIN_QUIRK (0x10ec0255 ,0x1028 ,"Dell" ,ALC255_FIXUP_DELL1_MIC_NO_PRESENCE , + {0x14, 0x90170130}, {0x1b, 0x02011020}, {0x21, 0x0221103f}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
@@ -6039,7 +6045,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {ALC292_STANDARD_PINS , {0x13, 0x90a60140}),SND_HDA_PIN_QUIRK (0x10ec0295 ,0x1028 ,"Dell" ,ALC269_FIXUP_DELL1_MIC_NO_PRESENCE , -ALC295_STANDARD_PINS ), +ALC295_STANDARD_PINS , + {0x17, 0x21014020}, + {0x18, 0x21a19030}), +SND_HDA_PIN_QUIRK (0x10ec0295 ,0x1028 ,"Dell" ,ALC269_FIXUP_DELL1_MIC_NO_PRESENCE , +ALC295_STANDARD_PINS , + {0x17, 0x21014040}, + {0x18, 0x21a19050}),SND_HDA_PIN_QUIRK (0x10ec0298 ,0x1028 ,"Dell" ,ALC298_FIXUP_DELL1_MIC_NO_PRESENCE ,ALC298_STANDARD_PINS , {0x17, 0x90170110}),
@@ -6613,6 +6625,7 @@ enum {ALC891_FIXUP_HEADSET_MODE ,ALC891_FIXUP_DELL_MIC_NO_PRESENCE ,ALC662_FIXUP_ACER_VERITON , + ALC892_FIXUP_ASROCK_MOBO, }; static const struct hda_fixup alc662_fixups[] = {
@@ -6889,6 +6902,16 @@ static const struct hda_fixup alc662_fixups[] = { { } } }, + [ALC892_FIXUP_ASROCK_MOBO ] = { + .type =HDA_FIXUP_PINS , + .v.pins = (const struct hda_pintbl []) { + {0x15 ,0x40f000f0 },/* disabled */ + {0x16 ,0x40f000f0 },/* disabled */ + {0x18 ,0x01014011 },/* LO */ + {0x1a ,0x01014012 },/* LO */ + { } + } + }, };static const struct snd_pci_quirk alc662_fixup_tbl[] = {
@@ -6926,6 +6949,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {SND_PCI_QUIRK (0x144d ,0xc051 ,"Samsung R720" ,ALC662_FIXUP_IDEAPAD ),SND_PCI_QUIRK (0x17aa ,0x38af ,"Lenovo Ideapad Y550P" ,ALC662_FIXUP_IDEAPAD ),SND_PCI_QUIRK (0x17aa ,0x3a0d ,"Lenovo Ideapad Y550" ,ALC662_FIXUP_IDEAPAD ), +SND_PCI_QUIRK (0x1849 ,0x5892 ,"ASRock B150M" ,ALC892_FIXUP_ASROCK_MOBO ),SND_PCI_QUIRK (0x19da ,0xa130 ,"Zotac Z68" ,ALC662_FIXUP_ZOTAC_Z68 ),SND_PCI_QUIRK (0x1b0a ,0x01b8 ,"ACER Veriton" ,ALC662_FIXUP_ACER_VERITON ), SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
sound/usb/quirks-table.h +17 -0
@@ -2907,6 +2907,23 @@ AU0828_DEVICE(0x2040, 0x7260, "Hauppauge", "HVR-950Q"),AU0828_DEVICE (0x2040 ,0x7213 ,"Hauppauge" ,"HVR-950Q" ),AU0828_DEVICE (0x2040 ,0x7270 ,"Hauppauge" ,"HVR-950Q" ), +/* Syntek STK1160 */ +{ + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | +USB_DEVICE_ID_MATCH_INT_CLASS | +USB_DEVICE_ID_MATCH_INT_SUBCLASS , + .idVendor = 0x05e1, + .idProduct = 0x0408, + .bInterfaceClass = USB_CLASS_AUDIO, + .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL, + .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { + .vendor_name ="Syntek" , + .product_name ="STK1160" , + .ifnum =QUIRK_ANY_INTERFACE , + .type =QUIRK_AUDIO_ALIGN_TRANSFER + } +}, + /* Digidesign Mbox */ {/* Thanks to Clemens Ladisch <[email protected]> */