From: Greg Kroah-Hartman Date: Fri, 7 Aug 2015 21:14:32 +0000 (-0700) Subject: 4.1-stable patches X-Git-Tag: v4.1.5~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=387f863ebe1d82cd460efbc717f09abe7231a873;p=thirdparty%2Fkernel%2Fstable-queue.git 4.1-stable patches added patches: alsa-hda-add-headset-mic-pin-quirk-for-a-dell-device.patch alsa-hda-add-headset-mic-support-for-acer-aspire-v5-573g.patch alsa-hda-add-new-amd-pci-ids-with-proper-driver-caps.patch alsa-hda-add-new-gpu-codec-id-0x10de007d-to-snd-hda.patch alsa-hda-apply-a-fixup-to-dell-vostro-5480.patch alsa-hda-apply-fixup-for-another-toshiba-satellite-s50d.patch alsa-hda-fix-macbook-pro-5-2-quirk.patch alsa-line6-fix-ebusy-error-during-active-monitoring.patch alsa-pcm-fix-lockdep-warning-with-nonatomic-pcm-ops.patch alsa-usb-audio-add-db-range-mapping-for-some-devices.patch alsa-usb-audio-add-midi-support-for-steinberg-mi2-mi4.patch bio-integrity-do-not-assume-bio_integrity_pool-exists-if-bioset-exists.patch dma-debug-skip-debug_dma_assert_idle-when-disabled.patch genirq-prevent-resend-to-interrupts-marked-irq_nested_thread.patch --- diff --git a/queue-4.1/alsa-hda-add-headset-mic-pin-quirk-for-a-dell-device.patch b/queue-4.1/alsa-hda-add-headset-mic-pin-quirk-for-a-dell-device.patch new file mode 100644 index 00000000000..0246446c07c --- /dev/null +++ b/queue-4.1/alsa-hda-add-headset-mic-pin-quirk-for-a-dell-device.patch @@ -0,0 +1,40 @@ +From cba59972a1191a0c1647a52fe745eed7a4b34b38 Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Wed, 22 Jul 2015 10:00:25 +0200 +Subject: ALSA: hda - Add headset mic pin quirk for a Dell device + +From: David Henningsson + +commit cba59972a1191a0c1647a52fe745eed7a4b34b38 upstream. + +Without this patch, the headset mic will not work on this machine. + +BugLink: https://bugs.launchpad.net/bugs/1476987 +Signed-off-by: David Henningsson +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -5382,6 +5382,17 @@ static const struct snd_hda_pin_quirk al + {0x1d, 0x40700001}, + {0x21, 0x02211030}), + SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, ++ {0x12, 0x40000000}, ++ {0x14, 0x90170130}, ++ {0x17, 0x411111f0}, ++ {0x18, 0x411111f0}, ++ {0x19, 0x411111f0}, ++ {0x1a, 0x411111f0}, ++ {0x1b, 0x01014020}, ++ {0x1d, 0x4054c029}, ++ {0x1e, 0x411111f0}, ++ {0x21, 0x0221103f}), ++ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, + {0x12, 0x90a60160}, + {0x14, 0x90170120}, + {0x17, 0x90170140}, diff --git a/queue-4.1/alsa-hda-add-headset-mic-support-for-acer-aspire-v5-573g.patch b/queue-4.1/alsa-hda-add-headset-mic-support-for-acer-aspire-v5-573g.patch new file mode 100644 index 00000000000..32e5042d4cb --- /dev/null +++ b/queue-4.1/alsa-hda-add-headset-mic-support-for-acer-aspire-v5-573g.patch @@ -0,0 +1,37 @@ +From 0420694dddeb9e269a1ab2129a0119a5cea294a4 Mon Sep 17 00:00:00 2001 +From: Mateusz Sylwestrzak +Date: Sun, 19 Jul 2015 17:38:56 +0200 +Subject: ALSA: hda - Add headset mic support for Acer Aspire V5-573G + +From: Mateusz Sylwestrzak + +commit 0420694dddeb9e269a1ab2129a0119a5cea294a4 upstream. + +Acer Aspire V5 with the ALC282 codec is given the wrong value for the +0x19 PIN by the laptop's BIOS. Overriding it with the correct value +adds support for the headset microphone which would not otherwise be +visible in the system. + +The fix is based on commit 7819717b1134 with a similar quirk for Acer +Aspire with the ALC269 codec. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201 +Signed-off-by: Mateusz Sylwestrzak +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -5004,7 +5004,7 @@ static const struct hda_fixup alc269_fix + { 0x14, 0x90170110 }, + { 0x17, 0x40000008 }, + { 0x18, 0x411111f0 }, +- { 0x19, 0x411111f0 }, ++ { 0x19, 0x01a1913c }, + { 0x1a, 0x411111f0 }, + { 0x1b, 0x411111f0 }, + { 0x1d, 0x40f89b2d }, diff --git a/queue-4.1/alsa-hda-add-new-amd-pci-ids-with-proper-driver-caps.patch b/queue-4.1/alsa-hda-add-new-amd-pci-ids-with-proper-driver-caps.patch new file mode 100644 index 00000000000..a1c32e5397b --- /dev/null +++ b/queue-4.1/alsa-hda-add-new-amd-pci-ids-with-proper-driver-caps.patch @@ -0,0 +1,45 @@ +From 5022813ddb28b7679e8285812d52aaeb7e1e7657 Mon Sep 17 00:00:00 2001 +From: Maruthi Srinivas Bayyavarapu +Date: Mon, 20 Jul 2015 19:56:18 +0530 +Subject: ALSA: hda: add new AMD PCI IDs with proper driver caps + +From: Maruthi Srinivas Bayyavarapu + +commit 5022813ddb28b7679e8285812d52aaeb7e1e7657 upstream. + +Fixes audio problems on newer asics + +Signed-off-by: Maruthi Bayyavarapu +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_intel.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -2056,6 +2056,8 @@ static const struct pci_device_id azx_id + /* ATI HDMI */ + { PCI_DEVICE(0x1002, 0x1308), + .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, ++ { PCI_DEVICE(0x1002, 0x157a), ++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, + { PCI_DEVICE(0x1002, 0x793b), + .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI }, + { PCI_DEVICE(0x1002, 0x7919), +@@ -2110,8 +2112,14 @@ static const struct pci_device_id azx_id + .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, + { PCI_DEVICE(0x1002, 0xaab0), + .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, ++ { PCI_DEVICE(0x1002, 0xaac0), ++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, + { PCI_DEVICE(0x1002, 0xaac8), + .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, ++ { PCI_DEVICE(0x1002, 0xaad8), ++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, ++ { PCI_DEVICE(0x1002, 0xaae8), ++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, + /* VIA VT8251/VT8237A */ + { PCI_DEVICE(0x1106, 0x3288), + .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA }, diff --git a/queue-4.1/alsa-hda-add-new-gpu-codec-id-0x10de007d-to-snd-hda.patch b/queue-4.1/alsa-hda-add-new-gpu-codec-id-0x10de007d-to-snd-hda.patch new file mode 100644 index 00000000000..e4d1f8af20f --- /dev/null +++ b/queue-4.1/alsa-hda-add-new-gpu-codec-id-0x10de007d-to-snd-hda.patch @@ -0,0 +1,40 @@ +From 6c3d91193d829bf58a35a10650415b05a736ca6c Mon Sep 17 00:00:00 2001 +From: Aaron Plattner +Date: Mon, 20 Jul 2015 17:14:14 -0700 +Subject: ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda + +From: Aaron Plattner + +commit 6c3d91193d829bf58a35a10650415b05a736ca6c upstream. + +Vendor ID 0x10de007d is used by a yet-to-be-named GPU chip. + +This chip also has the 2-ch audio swapping bug, so patch_nvhdmi is +appropriate here. + +Signed-off-by: Aaron Plattner +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_hdmi.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -3333,6 +3333,7 @@ static const struct hda_codec_preset snd + { .id = 0x10de0070, .name = "GPU 70 HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de0071, .name = "GPU 71 HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de0072, .name = "GPU 72 HDMI/DP", .patch = patch_nvhdmi }, ++{ .id = 0x10de007d, .name = "GPU 7d HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de8001, .name = "MCP73 HDMI", .patch = patch_nvhdmi_2ch }, + { .id = 0x11069f80, .name = "VX900 HDMI/DP", .patch = patch_via_hdmi }, + { .id = 0x11069f81, .name = "VX900 HDMI/DP", .patch = patch_via_hdmi }, +@@ -3396,6 +3397,7 @@ MODULE_ALIAS("snd-hda-codec-id:10de0067" + MODULE_ALIAS("snd-hda-codec-id:10de0070"); + MODULE_ALIAS("snd-hda-codec-id:10de0071"); + MODULE_ALIAS("snd-hda-codec-id:10de0072"); ++MODULE_ALIAS("snd-hda-codec-id:10de007d"); + MODULE_ALIAS("snd-hda-codec-id:10de8001"); + MODULE_ALIAS("snd-hda-codec-id:11069f80"); + MODULE_ALIAS("snd-hda-codec-id:11069f81"); diff --git a/queue-4.1/alsa-hda-apply-a-fixup-to-dell-vostro-5480.patch b/queue-4.1/alsa-hda-apply-a-fixup-to-dell-vostro-5480.patch new file mode 100644 index 00000000000..1bde13fe694 --- /dev/null +++ b/queue-4.1/alsa-hda-apply-a-fixup-to-dell-vostro-5480.patch @@ -0,0 +1,30 @@ +From 3a05d12f46cb95a6a685114819363a56e6170996 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Wed, 29 Jul 2015 09:04:52 +0200 +Subject: ALSA: hda - Apply a fixup to Dell Vostro 5480 + +From: Takashi Iwai + +commit 3a05d12f46cb95a6a685114819363a56e6170996 upstream. + +Dell Vostro 5480 (1028:069a) needs the very same quirk used for Vostro +5470 model to make bass speakers properly working. + +Reported-and-tested-by: Paulo Roberto de Oliveira Castro +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -5114,6 +5114,7 @@ static const struct snd_pci_quirk alc269 + SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0665, "Dell XPS 13", ALC288_FIXUP_DELL_XPS_13), ++ SND_PCI_QUIRK(0x1028, 0x069a, "Dell Vostro 5480", ALC290_FIXUP_SUBWOOFER_HSJACK), + SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), diff --git a/queue-4.1/alsa-hda-apply-fixup-for-another-toshiba-satellite-s50d.patch b/queue-4.1/alsa-hda-apply-fixup-for-another-toshiba-satellite-s50d.patch new file mode 100644 index 00000000000..ac2d5a410c6 --- /dev/null +++ b/queue-4.1/alsa-hda-apply-fixup-for-another-toshiba-satellite-s50d.patch @@ -0,0 +1,33 @@ +From b9d9c9efc292dd0ffe172780f915ed74eba3556c Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 27 Jul 2015 10:13:37 +0200 +Subject: ALSA: hda - Apply fixup for another Toshiba Satellite S50D + +From: Takashi Iwai + +commit b9d9c9efc292dd0ffe172780f915ed74eba3556c upstream. + +Toshiba Satellite S50D has another model with a different PCI SSID +(1179:fa93) while the previous fixup was for 1179:fa91. Adjust the +fixup entry with SND_PCI_QUIRK_MASK() to match with both devices. + +Reported-by: Tim Sample +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_sigmatel.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_sigmatel.c ++++ b/sound/pci/hda/patch_sigmatel.c +@@ -2920,7 +2920,8 @@ static const struct snd_pci_quirk stac92 + SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x148a, + "HP Mini", STAC_92HD83XXX_HP_LED), + SND_PCI_QUIRK_VENDOR(PCI_VENDOR_ID_HP, "HP", STAC_92HD83XXX_HP), +- SND_PCI_QUIRK(PCI_VENDOR_ID_TOSHIBA, 0xfa91, ++ /* match both for 0xfa91 and 0xfa93 */ ++ SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_TOSHIBA, 0xfffd, 0xfa91, + "Toshiba Satellite S50D", STAC_92HD83XXX_GPIO10_EAPD), + {} /* terminator */ + }; diff --git a/queue-4.1/alsa-hda-fix-macbook-pro-5-2-quirk.patch b/queue-4.1/alsa-hda-fix-macbook-pro-5-2-quirk.patch new file mode 100644 index 00000000000..4a5a4506db4 --- /dev/null +++ b/queue-4.1/alsa-hda-fix-macbook-pro-5-2-quirk.patch @@ -0,0 +1,34 @@ +From 649ccd08534ee26deb2e5b08509800d0e95167f5 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 30 Jul 2015 22:30:29 +0200 +Subject: ALSA: hda - Fix MacBook Pro 5,2 quirk + +From: Takashi Iwai + +commit 649ccd08534ee26deb2e5b08509800d0e95167f5 upstream. + +MacBook Pro 5,2 with ALC889 codec had already a fixup entry, but this +seems not working correctly, a fix for pin NID 0x15 is needed in +addition. It's equivalent with the fixup for MacBook Air 1,1, so use +this instead. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102131 +Reported-and-tested-by: Jeffery Miller +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -2224,7 +2224,7 @@ static const struct snd_pci_quirk alc882 + SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF), + SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF), + SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF), +- SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF), ++ SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_MBA11_VREF), + + SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), + SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD), diff --git a/queue-4.1/alsa-line6-fix-ebusy-error-during-active-monitoring.patch b/queue-4.1/alsa-line6-fix-ebusy-error-during-active-monitoring.patch new file mode 100644 index 00000000000..10bd8bf41bc --- /dev/null +++ b/queue-4.1/alsa-line6-fix-ebusy-error-during-active-monitoring.patch @@ -0,0 +1,47 @@ +From 4d0e677523a999e1dec28e55cc314c47ba09ca12 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 14 Jul 2015 15:19:37 +0200 +Subject: ALSA: line6: Fix -EBUSY error during active monitoring + +From: Takashi Iwai + +commit 4d0e677523a999e1dec28e55cc314c47ba09ca12 upstream. + +When a monitor stream is active, the next PCM stream access results in +EBUSY error because of the check in line6_stream_start(). Fix this by +just skipping the submission of pending URBs when the stream is +already running instead. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/line6/pcm.c | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +--- a/sound/usb/line6/pcm.c ++++ b/sound/usb/line6/pcm.c +@@ -186,12 +186,8 @@ static int line6_stream_start(struct snd + int ret = 0; + + spin_lock_irqsave(&pstr->lock, flags); +- if (!test_and_set_bit(type, &pstr->running)) { +- if (pstr->active_urbs || pstr->unlink_urbs) { +- ret = -EBUSY; +- goto error; +- } +- ++ if (!test_and_set_bit(type, &pstr->running) && ++ !(pstr->active_urbs || pstr->unlink_urbs)) { + pstr->count = 0; + /* Submit all currently available URBs */ + if (direction == SNDRV_PCM_STREAM_PLAYBACK) +@@ -199,7 +195,6 @@ static int line6_stream_start(struct snd + else + ret = line6_submit_audio_in_all_urbs(line6pcm); + } +- error: + if (ret < 0) + clear_bit(type, &pstr->running); + spin_unlock_irqrestore(&pstr->lock, flags); diff --git a/queue-4.1/alsa-pcm-fix-lockdep-warning-with-nonatomic-pcm-ops.patch b/queue-4.1/alsa-pcm-fix-lockdep-warning-with-nonatomic-pcm-ops.patch new file mode 100644 index 00000000000..73df6b2dee5 --- /dev/null +++ b/queue-4.1/alsa-pcm-fix-lockdep-warning-with-nonatomic-pcm-ops.patch @@ -0,0 +1,55 @@ +From 67756e3191c90e7c0b94b8b2fb63de255b6cd337 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 17 Jul 2015 15:22:33 +0200 +Subject: ALSA: pcm: Fix lockdep warning with nonatomic PCM ops + +From: Takashi Iwai + +commit 67756e3191c90e7c0b94b8b2fb63de255b6cd337 upstream. + +With the nonatomic PCM ops, the system may spew lockdep warnings like: + + ============================================= + [ INFO: possible recursive locking detected ] + 4.2.0-rc1-jeejaval3 #12 Not tainted + --------------------------------------------- + aplay/4029 is trying to acquire lock: + (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_stream_lock+0x43/0x60 + + but task is already holding lock: + (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_action_nonatomic+0x29/0x80 + + other info that might help us debug this: + Possible unsafe locking scenario: + + CPU0 + ---- + lock(snd_pcm_link_rwsem); + lock(snd_pcm_link_rwsem); + +Although this is false-positive as the rwsem is taken always as +read-only for these code paths, it's certainly annoying to see this at +any occasion. A simple fix is to use down_read_nested() in +snd_pcm_stream_lock() that can be called inside another lock. + +Reported-by: Vinod Koul +Reported-by: Jeeja Kp +Tested-by: Jeeja Kp +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/core/pcm_native.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/core/pcm_native.c ++++ b/sound/core/pcm_native.c +@@ -85,7 +85,7 @@ static DECLARE_RWSEM(snd_pcm_link_rwsem) + void snd_pcm_stream_lock(struct snd_pcm_substream *substream) + { + if (substream->pcm->nonatomic) { +- down_read(&snd_pcm_link_rwsem); ++ down_read_nested(&snd_pcm_link_rwsem, SINGLE_DEPTH_NESTING); + mutex_lock(&substream->self_group.mutex); + } else { + read_lock(&snd_pcm_link_rwlock); diff --git a/queue-4.1/alsa-usb-audio-add-db-range-mapping-for-some-devices.patch b/queue-4.1/alsa-usb-audio-add-db-range-mapping-for-some-devices.patch new file mode 100644 index 00000000000..5f12436d734 --- /dev/null +++ b/queue-4.1/alsa-usb-audio-add-db-range-mapping-for-some-devices.patch @@ -0,0 +1,59 @@ +From 2d1cb7f658fb9c3ba8f9dab8aca297d4dfdec835 Mon Sep 17 00:00:00 2001 +From: Yao-Wen Mao +Date: Wed, 29 Jul 2015 15:13:54 +0800 +Subject: ALSA: usb-audio: add dB range mapping for some devices + +From: Yao-Wen Mao + +commit 2d1cb7f658fb9c3ba8f9dab8aca297d4dfdec835 upstream. + +Add the correct dB ranges of Bose Companion 5 and Drangonfly DAC 1.2. + +Signed-off-by: Yao-Wen Mao +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/mixer_maps.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +--- a/sound/usb/mixer_maps.c ++++ b/sound/usb/mixer_maps.c +@@ -341,6 +341,20 @@ static const struct usbmix_name_map scms + { 0 } + }; + ++/* Bose companion 5, the dB conversion factor is 16 instead of 256 */ ++static struct usbmix_dB_map bose_companion5_dB = {-5006, -6}; ++static struct usbmix_name_map bose_companion5_map[] = { ++ { 3, NULL, .dB = &bose_companion5_dB }, ++ { 0 } /* terminator */ ++}; ++ ++/* Dragonfly DAC 1.2, the dB conversion factor is 1 instead of 256 */ ++static struct usbmix_dB_map dragonfly_1_2_dB = {0, 5000}; ++static struct usbmix_name_map dragonfly_1_2_map[] = { ++ { 7, NULL, .dB = &dragonfly_1_2_dB }, ++ { 0 } /* terminator */ ++}; ++ + /* + * Control map entries + */ +@@ -451,6 +465,16 @@ static struct usbmix_ctl_map usbmix_ctl_ + .id = USB_ID(0x25c4, 0x0003), + .map = scms_usb3318_map, + }, ++ { ++ /* Bose Companion 5 */ ++ .id = USB_ID(0x05a7, 0x1020), ++ .map = bose_companion5_map, ++ }, ++ { ++ /* Dragonfly DAC 1.2 */ ++ .id = USB_ID(0x21b4, 0x0081), ++ .map = dragonfly_1_2_map, ++ }, + { 0 } /* terminator */ + }; + diff --git a/queue-4.1/alsa-usb-audio-add-midi-support-for-steinberg-mi2-mi4.patch b/queue-4.1/alsa-usb-audio-add-midi-support-for-steinberg-mi2-mi4.patch new file mode 100644 index 00000000000..085a04a4598 --- /dev/null +++ b/queue-4.1/alsa-usb-audio-add-midi-support-for-steinberg-mi2-mi4.patch @@ -0,0 +1,107 @@ +From 0689a86ae814f39af94a9736a0a5426dd82eb107 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominic=20Sacr=C3=A9?= +Date: Tue, 30 Jun 2015 17:41:33 +0200 +Subject: ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Dominic=20Sacr=C3=A9?= + +commit 0689a86ae814f39af94a9736a0a5426dd82eb107 upstream. + +The Steinberg MI2 and MI4 interfaces are compatible with the USB class +audio spec, but the MIDI part of the devices is reported as a vendor +specific interface. + +This patch adds entries to quirks-table.h to recognize the MIDI +endpoints. Audio functionality was already working and is unaffected by +this change. + +Signed-off-by: Dominic Sacré +Signed-off-by: Albert Huitsing +Acked-by: Clemens Ladisch +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks-table.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 68 insertions(+) + +--- a/sound/usb/quirks-table.h ++++ b/sound/usb/quirks-table.h +@@ -2512,6 +2512,74 @@ YAMAHA_DEVICE(0x7010, "UB99"), + } + }, + ++/* Steinberg devices */ ++{ ++ /* Steinberg MI2 */ ++ USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x2040), ++ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { ++ .ifnum = QUIRK_ANY_INTERFACE, ++ .type = QUIRK_COMPOSITE, ++ .data = & (const struct snd_usb_audio_quirk[]) { ++ { ++ .ifnum = 0, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 1, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 2, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 3, ++ .type = QUIRK_MIDI_FIXED_ENDPOINT, ++ .data = &(const struct snd_usb_midi_endpoint_info) { ++ .out_cables = 0x0001, ++ .in_cables = 0x0001 ++ } ++ }, ++ { ++ .ifnum = -1 ++ } ++ } ++ } ++}, ++{ ++ /* Steinberg MI4 */ ++ USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x4040), ++ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { ++ .ifnum = QUIRK_ANY_INTERFACE, ++ .type = QUIRK_COMPOSITE, ++ .data = & (const struct snd_usb_audio_quirk[]) { ++ { ++ .ifnum = 0, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 1, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 2, ++ .type = QUIRK_AUDIO_STANDARD_INTERFACE ++ }, ++ { ++ .ifnum = 3, ++ .type = QUIRK_MIDI_FIXED_ENDPOINT, ++ .data = &(const struct snd_usb_midi_endpoint_info) { ++ .out_cables = 0x0001, ++ .in_cables = 0x0001 ++ } ++ }, ++ { ++ .ifnum = -1 ++ } ++ } ++ } ++}, ++ + /* TerraTec devices */ + { + USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012), diff --git a/queue-4.1/bio-integrity-do-not-assume-bio_integrity_pool-exists-if-bioset-exists.patch b/queue-4.1/bio-integrity-do-not-assume-bio_integrity_pool-exists-if-bioset-exists.patch new file mode 100644 index 00000000000..f281010db67 --- /dev/null +++ b/queue-4.1/bio-integrity-do-not-assume-bio_integrity_pool-exists-if-bioset-exists.patch @@ -0,0 +1,71 @@ +From bb8bd38b9a1685334b73e8c62e128cbedb875867 Mon Sep 17 00:00:00 2001 +From: Mike Snitzer +Date: Wed, 1 Jul 2015 12:57:40 -0400 +Subject: bio integrity: do not assume bio_integrity_pool exists if bioset exists + +From: Mike Snitzer + +commit bb8bd38b9a1685334b73e8c62e128cbedb875867 upstream. + +bio_integrity_alloc() and bio_integrity_free() assume that if a bio was +allocated from a bioset that that bioset also had its bio_integrity_pool +allocated using bioset_integrity_create(). This is a very bad +assumption given that bioset_create() and bioset_integrity_create() are +completely disjoint. Not all callers of bioset_create() have been +trained to also call bioset_integrity_create() -- and they may not care +to be. + +Fix this by falling back to kmalloc'ing 'struct bio_integrity_payload' +rather than force all bioset consumers to (wastefully) preallocate a +bio_integrity_pool that they very likely won't actually need (given the +niche nature of the current block integrity support). + +Otherwise, a NULL pointer "Kernel BUG" with a trace like the following +will be observed (as seen on s390x using zfcp storage) because dm-io +doesn't use bioset_integrity_create() when creating its bioset: + + [ 791.643338] Call Trace: + [ 791.643339] ([<00000003df98b848>] 0x3df98b848) + [ 791.643341] [<00000000002c5de8>] bio_integrity_alloc+0x48/0xf8 + [ 791.643348] [<00000000002c6486>] bio_integrity_prep+0xae/0x2f0 + [ 791.643349] [<0000000000371e38>] blk_queue_bio+0x1c8/0x3d8 + [ 791.643355] [<000000000036f8d0>] generic_make_request+0xc0/0x100 + [ 791.643357] [<000000000036f9b2>] submit_bio+0xa2/0x198 + [ 791.643406] [<000003ff801f9774>] dispatch_io+0x15c/0x3b0 [dm_mod] + [ 791.643419] [<000003ff801f9b3e>] dm_io+0x176/0x2f0 [dm_mod] + [ 791.643423] [<000003ff8074b28a>] do_reads+0x13a/0x1a8 [dm_mirror] + [ 791.643425] [<000003ff8074b43a>] do_mirror+0x142/0x298 [dm_mirror] + [ 791.643428] [<0000000000154fca>] process_one_work+0x18a/0x3f8 + [ 791.643432] [<000000000015598a>] worker_thread+0x132/0x3b0 + [ 791.643435] [<000000000015d49a>] kthread+0xd2/0xd8 + [ 791.643438] [<00000000005bc0ca>] kernel_thread_starter+0x6/0xc + [ 791.643446] [<00000000005bc0c4>] kernel_thread_starter+0x0/0xc + +Signed-off-by: Mike Snitzer +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman + +--- + block/bio-integrity.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/block/bio-integrity.c ++++ b/block/bio-integrity.c +@@ -51,7 +51,7 @@ struct bio_integrity_payload *bio_integr + unsigned long idx = BIO_POOL_NONE; + unsigned inline_vecs; + +- if (!bs) { ++ if (!bs || !bs->bio_integrity_pool) { + bip = kmalloc(sizeof(struct bio_integrity_payload) + + sizeof(struct bio_vec) * nr_vecs, gfp_mask); + inline_vecs = nr_vecs; +@@ -104,7 +104,7 @@ void bio_integrity_free(struct bio *bio) + kfree(page_address(bip->bip_vec->bv_page) + + bip->bip_vec->bv_offset); + +- if (bs) { ++ if (bs && bs->bio_integrity_pool) { + if (bip->bip_slab != BIO_POOL_NONE) + bvec_free(bs->bvec_integrity_pool, bip->bip_vec, + bip->bip_slab); diff --git a/queue-4.1/dma-debug-skip-debug_dma_assert_idle-when-disabled.patch b/queue-4.1/dma-debug-skip-debug_dma_assert_idle-when-disabled.patch new file mode 100644 index 00000000000..de1483b879b --- /dev/null +++ b/queue-4.1/dma-debug-skip-debug_dma_assert_idle-when-disabled.patch @@ -0,0 +1,46 @@ +From c9d120b0b2b5069cb2ae62f8eac0cef31c8544be Mon Sep 17 00:00:00 2001 +From: Haggai Eran +Date: Fri, 17 Jul 2015 16:24:06 -0700 +Subject: dma-debug: skip debug_dma_assert_idle() when disabled + +From: Haggai Eran + +commit c9d120b0b2b5069cb2ae62f8eac0cef31c8544be upstream. + +If dma-debug is disabled due to a memory error, DMA unmaps do not affect +the dma_active_cacheline radix tree anymore, and debug_dma_assert_idle() +can print false warnings. + +Disable debug_dma_assert_idle() when dma_debug_disabled() is true. + +Signed-off-by: Haggai Eran +Fixes: 0abdd7a81b7e ("dma-debug: introduce debug_dma_assert_idle()") +Cc: Dan Williams +Cc: Joerg Roedel +Cc: Vinod Koul +Cc: Russell King +Cc: James Bottomley +Cc: Florian Fainelli +Cc: Sebastian Ott +Cc: Jiri Kosina +Cc: Horia Geanta +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + lib/dma-debug.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/lib/dma-debug.c ++++ b/lib/dma-debug.c +@@ -574,6 +574,9 @@ void debug_dma_assert_idle(struct page * + unsigned long flags; + phys_addr_t cln; + ++ if (dma_debug_disabled()) ++ return; ++ + if (!page) + return; + diff --git a/queue-4.1/genirq-prevent-resend-to-interrupts-marked-irq_nested_thread.patch b/queue-4.1/genirq-prevent-resend-to-interrupts-marked-irq_nested_thread.patch new file mode 100644 index 00000000000..c40a82b0216 --- /dev/null +++ b/queue-4.1/genirq-prevent-resend-to-interrupts-marked-irq_nested_thread.patch @@ -0,0 +1,58 @@ +From 75a06189fc508a2acf470b0b12710362ffb2c4b1 Mon Sep 17 00:00:00 2001 +From: Thomas Gleixner +Date: Thu, 16 Jul 2015 14:10:17 +0200 +Subject: genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Thomas Gleixner + +commit 75a06189fc508a2acf470b0b12710362ffb2c4b1 upstream. + +The resend mechanism happily calls the interrupt handler of interrupts +which are marked IRQ_NESTED_THREAD from softirq context. This can +result in crashes because the interrupt handler is not the proper way +to invoke the device handlers. They must be invoked via +handle_nested_irq. + +Prevent the resend even if the interrupt has no valid parent irq +set. Its better to have a lost interrupt than a crashing machine. + +Reported-by: Uwe Kleine-König +Signed-off-by: Thomas Gleixner +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/irq/resend.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +--- a/kernel/irq/resend.c ++++ b/kernel/irq/resend.c +@@ -75,13 +75,21 @@ void check_irq_resend(struct irq_desc *d + !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) { + #ifdef CONFIG_HARDIRQS_SW_RESEND + /* +- * If the interrupt has a parent irq and runs +- * in the thread context of the parent irq, +- * retrigger the parent. ++ * If the interrupt is running in the thread ++ * context of the parent irq we need to be ++ * careful, because we cannot trigger it ++ * directly. + */ +- if (desc->parent_irq && +- irq_settings_is_nested_thread(desc)) ++ if (irq_settings_is_nested_thread(desc)) { ++ /* ++ * If the parent_irq is valid, we ++ * retrigger the parent, otherwise we ++ * do nothing. ++ */ ++ if (!desc->parent_irq) ++ return; + irq = desc->parent_irq; ++ } + /* Set it pending and activate the softirq: */ + set_bit(irq, irqs_resend); + tasklet_schedule(&resend_tasklet); diff --git a/queue-4.1/series b/queue-4.1/series index 638b57956c6..c90baff195c 100644 --- a/queue-4.1/series +++ b/queue-4.1/series @@ -32,3 +32,17 @@ s390-cachinfo-add-missing-facility-check-to-init_cache_level.patch arc-override-toplevel-default-o2-with-o3.patch arc-make-sure-instruction_pointer-returns-unsigned-value.patch kbuild-allow-arch-makefiles-to-override-cpp-ld-c-flags.patch +bio-integrity-do-not-assume-bio_integrity_pool-exists-if-bioset-exists.patch +dma-debug-skip-debug_dma_assert_idle-when-disabled.patch +genirq-prevent-resend-to-interrupts-marked-irq_nested_thread.patch +alsa-usb-audio-add-midi-support-for-steinberg-mi2-mi4.patch +alsa-line6-fix-ebusy-error-during-active-monitoring.patch +alsa-pcm-fix-lockdep-warning-with-nonatomic-pcm-ops.patch +alsa-hda-add-headset-mic-support-for-acer-aspire-v5-573g.patch +alsa-hda-add-new-amd-pci-ids-with-proper-driver-caps.patch +alsa-hda-add-new-gpu-codec-id-0x10de007d-to-snd-hda.patch +alsa-hda-add-headset-mic-pin-quirk-for-a-dell-device.patch +alsa-hda-apply-fixup-for-another-toshiba-satellite-s50d.patch +alsa-hda-apply-a-fixup-to-dell-vostro-5480.patch +alsa-usb-audio-add-db-range-mapping-for-some-devices.patch +alsa-hda-fix-macbook-pro-5-2-quirk.patch