From: Greg Kroah-Hartman Date: Mon, 18 Apr 2016 01:27:21 +0000 (+0900) Subject: 4.5-stable patches X-Git-Tag: v3.14.67~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3a953f50595d9b5b2ec657cab6b2f8b1dfd1683;p=thirdparty%2Fkernel%2Fstable-queue.git 4.5-stable patches added patches: alsa-hda-fix-regression-of-monitor_present-flag-in-eld-proc-file.patch alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t460s.patch alsa-usb-audio-add-a-quirk-for-plantronics-bt300.patch alsa-usb-audio-add-a-sample-rate-quirk-for-phoenix-audio-tmx320.patch alsa-usb-audio-skip-volume-controls-triggers-hangup-on-dell-usb-dock.patch hid-usbhid-fix-inconsistent-reset-resume-reset-resume-behavior.patch hid-wacom-fix-bamboo-one-oops.patch --- diff --git a/queue-4.5/alsa-hda-fix-regression-of-monitor_present-flag-in-eld-proc-file.patch b/queue-4.5/alsa-hda-fix-regression-of-monitor_present-flag-in-eld-proc-file.patch new file mode 100644 index 00000000000..03ab3fdde37 --- /dev/null +++ b/queue-4.5/alsa-hda-fix-regression-of-monitor_present-flag-in-eld-proc-file.patch @@ -0,0 +1,44 @@ +From 023d8218ec0dfc30e11d4ec54f640e8f127d1fbe Mon Sep 17 00:00:00 2001 +From: Hyungwon Hwang +Date: Wed, 13 Apr 2016 09:27:39 +0900 +Subject: ALSA: hda - Fix regression of monitor_present flag in eld proc file + +From: Hyungwon Hwang + +commit 023d8218ec0dfc30e11d4ec54f640e8f127d1fbe upstream. + +The commit [bd48128539ab: ALSA: hda - Fix forgotten HDMI +monitor_present update] covered the missing update of monitor_present +flag, but this caused a regression for devices without the i915 eld +notifier. Since the old code supposed that pin_eld->monitor_present +was updated by the caller side, the hdmi_present_sense_via_verbs() +doesn't update the temporary eld->monitor_present but only +pin_eld->monitor_present, which is now overridden in update_eld(). + +The fix is to update pin_eld->monitor_present as well before calling +update_eld(). + +Note that this may still leave monitor_present flag in an inconsistent +state when the driver repolls, but this is at least the old behavior. +More proper fix will follow in the later patch. + +Fixes: bd48128539ab ('ALSA: hda - Fix forgotten HDMI monitor_present update') +Signed-off-by: Hyungwon Hwang +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 +@@ -1623,6 +1623,8 @@ static bool hdmi_present_sense_via_verbs + + mutex_lock(&per_pin->lock); + pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE); ++ eld->monitor_present = pin_eld->monitor_present; ++ + if (pin_eld->monitor_present) + eld->eld_valid = !!(present & AC_PINSENSE_ELDV); + else diff --git a/queue-4.5/alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t460s.patch b/queue-4.5/alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t460s.patch new file mode 100644 index 00000000000..f2492d7db99 --- /dev/null +++ b/queue-4.5/alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t460s.patch @@ -0,0 +1,64 @@ +From c636b95ec5980345674ad7960a3c67135a84b687 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 11 Apr 2016 16:55:26 +0200 +Subject: ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s + +From: Sven Eckelmann + +commit c636b95ec5980345674ad7960a3c67135a84b687 upstream. + +The Lenovo Thinkpad T460s requires the alc_fixup_tpt440_dock as well in +order to get working sound output on the docking stations headphone jack. + +Patch tested on a Thinkpad T460s (20F9CT01WW) using a ThinkPad Ultradock +on kernel 4.4.6. + +Signed-off-by: Sven Eckelmann +Tested-by: Simon Wunderlich +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -4760,6 +4760,7 @@ enum { + ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, + ALC280_FIXUP_HP_HEADSET_MIC, + ALC221_FIXUP_HP_FRONT_MIC, ++ ALC292_FIXUP_TPT460, + }; + + static const struct hda_fixup alc269_fixups[] = { +@@ -5409,6 +5410,12 @@ static const struct hda_fixup alc269_fix + { } + }, + }, ++ [ALC292_FIXUP_TPT460] = { ++ .type = HDA_FIXUP_FUNC, ++ .v.func = alc_fixup_tpt440_dock, ++ .chained = true, ++ .chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE, ++ }, + }; + + static const struct snd_pci_quirk alc269_fixup_tbl[] = { +@@ -5563,7 +5570,7 @@ static const struct snd_pci_quirk alc269 + SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK), + SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK), + SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), +- SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE), ++ SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460), + SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), + SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), + SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI), +@@ -5658,6 +5665,7 @@ static const struct hda_model_fixup alc2 + {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"}, + {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"}, + {.id = ALC292_FIXUP_TPT440, .name = "tpt440"}, ++ {.id = ALC292_FIXUP_TPT460, .name = "tpt460"}, + {} + }; + #define ALC225_STANDARD_PINS \ diff --git a/queue-4.5/alsa-usb-audio-add-a-quirk-for-plantronics-bt300.patch b/queue-4.5/alsa-usb-audio-add-a-quirk-for-plantronics-bt300.patch new file mode 100644 index 00000000000..92a97a68f0b --- /dev/null +++ b/queue-4.5/alsa-usb-audio-add-a-quirk-for-plantronics-bt300.patch @@ -0,0 +1,31 @@ +From b4203ff5464da00b7812e7b480192745b0d66bbf Mon Sep 17 00:00:00 2001 +From: Dennis Kadioglu +Date: Wed, 6 Apr 2016 08:39:01 +0200 +Subject: ALSA: usb-audio: Add a quirk for Plantronics BT300 + +From: Dennis Kadioglu + +commit b4203ff5464da00b7812e7b480192745b0d66bbf upstream. + +Plantronics BT300 does not support reading the sample rate which leads +to many lines of "cannot get freq at ep 0x1". This patch adds the USB +ID of the BT300 to quirks.c and avoids those error messages. + +Signed-off-by: Dennis Kadioglu +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -1135,6 +1135,7 @@ bool snd_usb_get_sample_rate_quirk(struc + case USB_ID(0x045E, 0x076F): /* MS Lifecam HD-6000 */ + case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */ + case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */ ++ case USB_ID(0x047F, 0x0415): /* Plantronics BT-300 */ + case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ + case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ + case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ diff --git a/queue-4.5/alsa-usb-audio-add-a-sample-rate-quirk-for-phoenix-audio-tmx320.patch b/queue-4.5/alsa-usb-audio-add-a-sample-rate-quirk-for-phoenix-audio-tmx320.patch new file mode 100644 index 00000000000..951dcea05f9 --- /dev/null +++ b/queue-4.5/alsa-usb-audio-add-a-sample-rate-quirk-for-phoenix-audio-tmx320.patch @@ -0,0 +1,36 @@ +From f03b24a851d32ca85dacab01785b24a7ee717d37 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 4 Apr 2016 11:47:50 +0200 +Subject: ALSA: usb-audio: Add a sample rate quirk for Phoenix Audio TMX320 + +From: Takashi Iwai + +commit f03b24a851d32ca85dacab01785b24a7ee717d37 upstream. + +Phoenix Audio TMX320 gives the similar error when the sample rate is +asked: + usb 2-1.3: 2:1: cannot get freq at ep 0x85 + usb 2-1.3: 1:1: cannot get freq at ep 0x2 + .... + +Add the corresponding USB-device ID (1de7:0014) to +snd_usb_get_sample_rate_quirk() list. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110221 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -1138,6 +1138,7 @@ bool snd_usb_get_sample_rate_quirk(struc + case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ + case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ + case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ ++ case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */ + case USB_ID(0x21B4, 0x0081): /* AudioQuest DragonFly */ + return true; + } diff --git a/queue-4.5/alsa-usb-audio-skip-volume-controls-triggers-hangup-on-dell-usb-dock.patch b/queue-4.5/alsa-usb-audio-skip-volume-controls-triggers-hangup-on-dell-usb-dock.patch new file mode 100644 index 00000000000..d55b3809186 --- /dev/null +++ b/queue-4.5/alsa-usb-audio-skip-volume-controls-triggers-hangup-on-dell-usb-dock.patch @@ -0,0 +1,57 @@ +From adcdd0d5a1cb779f6d455ae70882c19c527627a8 Mon Sep 17 00:00:00 2001 +From: Kailang Yang +Date: Tue, 12 Apr 2016 10:55:03 +0800 +Subject: ALSA: usb-audio: Skip volume controls triggers hangup on Dell USB Dock + +From: Kailang Yang + +commit adcdd0d5a1cb779f6d455ae70882c19c527627a8 upstream. + +This is Dell usb dock audio workaround. +It was fixed the master volume keep lower. + +[Some background: the patch essentially skips the controls of a couple + of FU volumes. Although the firmware exposes the dB and the value + information via the usb descriptor, changing the values (we set the + min volume as default) screws up the device. Although this has been + fixed in the newer firmware, the devices are shipped with the old + firmware, thus we need the workaround in the driver side. -- tiwai] + +Signed-off-by: Kailang Yang +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/mixer_maps.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/sound/usb/mixer_maps.c ++++ b/sound/usb/mixer_maps.c +@@ -349,6 +349,16 @@ static struct usbmix_name_map bose_compa + }; + + /* ++ * Dell usb dock with ALC4020 codec had a firmware problem where it got ++ * screwed up when zero volume is passed; just skip it as a workaround ++ */ ++static const struct usbmix_name_map dell_alc4020_map[] = { ++ { 16, NULL }, ++ { 19, NULL }, ++ { 0 } ++}; ++ ++/* + * Control map entries + */ + +@@ -431,6 +441,10 @@ static struct usbmix_ctl_map usbmix_ctl_ + .map = aureon_51_2_map, + }, + { ++ .id = USB_ID(0x0bda, 0x4014), ++ .map = dell_alc4020_map, ++ }, ++ { + .id = USB_ID(0x0dba, 0x1000), + .map = mbox1_map, + }, diff --git a/queue-4.5/hid-usbhid-fix-inconsistent-reset-resume-reset-resume-behavior.patch b/queue-4.5/hid-usbhid-fix-inconsistent-reset-resume-reset-resume-behavior.patch new file mode 100644 index 00000000000..63c3e662e6a --- /dev/null +++ b/queue-4.5/hid-usbhid-fix-inconsistent-reset-resume-reset-resume-behavior.patch @@ -0,0 +1,174 @@ +From 972e6a993f278b416a8ee3ec65475724fc36feb2 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Wed, 23 Mar 2016 12:17:09 -0400 +Subject: HID: usbhid: fix inconsistent reset/resume/reset-resume behavior + +From: Alan Stern + +commit 972e6a993f278b416a8ee3ec65475724fc36feb2 upstream. + +The usbhid driver has inconsistently duplicated code in its post-reset, +resume, and reset-resume pathways. + + reset-resume doesn't check HID_STARTED before trying to + restart the I/O queues. + + resume fails to clear the HID_SUSPENDED flag if HID_STARTED + isn't set. + + resume calls usbhid_restart_queues() with usbhid->lock held + and the others call it without holding the lock. + +The first item in particular causes a problem following a reset-resume +if the driver hasn't started up its I/O. URB submission fails because +usbhid->urbin is NULL, and this triggers an unending reset-retry loop. + +This patch fixes the problem by creating a new subroutine, +hid_restart_io(), to carry out all the common activities. It also +adds some checks that were missing in the original code: + + After a reset, there's no need to clear any halted endpoints. + + After a resume, if a reset is pending there's no need to + restart any I/O until the reset is finished. + + After a resume, if the interrupt-IN endpoint is halted there's + no need to submit the input URB until the halt has been + cleared. + +Signed-off-by: Alan Stern +Reported-by: Daniel Fraga +Tested-by: Daniel Fraga +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hid/usbhid/hid-core.c | 73 +++++++++++++++++++++--------------------- + 1 file changed, 37 insertions(+), 36 deletions(-) + +--- a/drivers/hid/usbhid/hid-core.c ++++ b/drivers/hid/usbhid/hid-core.c +@@ -951,14 +951,6 @@ static int usbhid_output_report(struct h + return ret; + } + +-static void usbhid_restart_queues(struct usbhid_device *usbhid) +-{ +- if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl)) +- usbhid_restart_out_queue(usbhid); +- if (!test_bit(HID_CTRL_RUNNING, &usbhid->iofl)) +- usbhid_restart_ctrl_queue(usbhid); +-} +- + static void hid_free_buffers(struct usb_device *dev, struct hid_device *hid) + { + struct usbhid_device *usbhid = hid->driver_data; +@@ -1404,6 +1396,37 @@ static void hid_cease_io(struct usbhid_d + usb_kill_urb(usbhid->urbout); + } + ++static void hid_restart_io(struct hid_device *hid) ++{ ++ struct usbhid_device *usbhid = hid->driver_data; ++ int clear_halt = test_bit(HID_CLEAR_HALT, &usbhid->iofl); ++ int reset_pending = test_bit(HID_RESET_PENDING, &usbhid->iofl); ++ ++ spin_lock_irq(&usbhid->lock); ++ clear_bit(HID_SUSPENDED, &usbhid->iofl); ++ usbhid_mark_busy(usbhid); ++ ++ if (clear_halt || reset_pending) ++ schedule_work(&usbhid->reset_work); ++ usbhid->retry_delay = 0; ++ spin_unlock_irq(&usbhid->lock); ++ ++ if (reset_pending || !test_bit(HID_STARTED, &usbhid->iofl)) ++ return; ++ ++ if (!clear_halt) { ++ if (hid_start_in(hid) < 0) ++ hid_io_error(hid); ++ } ++ ++ spin_lock_irq(&usbhid->lock); ++ if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl)) ++ usbhid_restart_out_queue(usbhid); ++ if (!test_bit(HID_CTRL_RUNNING, &usbhid->iofl)) ++ usbhid_restart_ctrl_queue(usbhid); ++ spin_unlock_irq(&usbhid->lock); ++} ++ + /* Treat USB reset pretty much the same as suspend/resume */ + static int hid_pre_reset(struct usb_interface *intf) + { +@@ -1453,14 +1476,14 @@ static int hid_post_reset(struct usb_int + return 1; + } + ++ /* No need to do another reset or clear a halted endpoint */ + spin_lock_irq(&usbhid->lock); + clear_bit(HID_RESET_PENDING, &usbhid->iofl); ++ clear_bit(HID_CLEAR_HALT, &usbhid->iofl); + spin_unlock_irq(&usbhid->lock); + hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0); +- status = hid_start_in(hid); +- if (status < 0) +- hid_io_error(hid); +- usbhid_restart_queues(usbhid); ++ ++ hid_restart_io(hid); + + return 0; + } +@@ -1483,25 +1506,9 @@ void usbhid_put_power(struct hid_device + #ifdef CONFIG_PM + static int hid_resume_common(struct hid_device *hid, bool driver_suspended) + { +- struct usbhid_device *usbhid = hid->driver_data; +- int status; +- +- spin_lock_irq(&usbhid->lock); +- clear_bit(HID_SUSPENDED, &usbhid->iofl); +- usbhid_mark_busy(usbhid); +- +- if (test_bit(HID_CLEAR_HALT, &usbhid->iofl) || +- test_bit(HID_RESET_PENDING, &usbhid->iofl)) +- schedule_work(&usbhid->reset_work); +- usbhid->retry_delay = 0; +- +- usbhid_restart_queues(usbhid); +- spin_unlock_irq(&usbhid->lock); +- +- status = hid_start_in(hid); +- if (status < 0) +- hid_io_error(hid); ++ int status = 0; + ++ hid_restart_io(hid); + if (driver_suspended && hid->driver && hid->driver->resume) + status = hid->driver->resume(hid); + return status; +@@ -1570,12 +1577,8 @@ static int hid_suspend(struct usb_interf + static int hid_resume(struct usb_interface *intf) + { + struct hid_device *hid = usb_get_intfdata (intf); +- struct usbhid_device *usbhid = hid->driver_data; + int status; + +- if (!test_bit(HID_STARTED, &usbhid->iofl)) +- return 0; +- + status = hid_resume_common(hid, true); + dev_dbg(&intf->dev, "resume status %d\n", status); + return 0; +@@ -1584,10 +1587,8 @@ static int hid_resume(struct usb_interfa + static int hid_reset_resume(struct usb_interface *intf) + { + struct hid_device *hid = usb_get_intfdata(intf); +- struct usbhid_device *usbhid = hid->driver_data; + int status; + +- clear_bit(HID_SUSPENDED, &usbhid->iofl); + status = hid_post_reset(intf); + if (status >= 0 && hid->driver && hid->driver->reset_resume) { + int ret = hid->driver->reset_resume(hid); diff --git a/queue-4.5/hid-wacom-fix-bamboo-one-oops.patch b/queue-4.5/hid-wacom-fix-bamboo-one-oops.patch new file mode 100644 index 00000000000..442d43d4215 --- /dev/null +++ b/queue-4.5/hid-wacom-fix-bamboo-one-oops.patch @@ -0,0 +1,46 @@ +From 580549ef6b3e3fb3b958de490ca99f43a089a2cf Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires +Date: Fri, 25 Mar 2016 15:26:55 +0100 +Subject: HID: wacom: fix Bamboo ONE oops + +From: Benjamin Tissoires + +commit 580549ef6b3e3fb3b958de490ca99f43a089a2cf upstream. + +Looks like recent changes in the Wacom driver made the Bamboo ONE crashes. +The tablet behaves as if it was a regular Bamboo device with pen, touch +and pad, but there is no physical pad connected to it. +The weird part is that the pad is still sending events and given that +there is no input node connected to it, we get anull pointer exception. + +Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317116 + +Signed-off-by: Benjamin Tissoires +Acked-by: Ping Cheng +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hid/wacom_wac.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/drivers/hid/wacom_wac.c ++++ b/drivers/hid/wacom_wac.c +@@ -2409,6 +2409,17 @@ void wacom_setup_device_quirks(struct wa + } + + /* ++ * Hack for the Bamboo One: ++ * the device presents a PAD/Touch interface as most Bamboos and even ++ * sends ghosts PAD data on it. However, later, we must disable this ++ * ghost interface, and we can not detect it unless we set it here ++ * to WACOM_DEVICETYPE_PAD or WACOM_DEVICETYPE_TOUCH. ++ */ ++ if (features->type == BAMBOO_PEN && ++ features->pktlen == WACOM_PKGLEN_BBTOUCH3) ++ features->device_type |= WACOM_DEVICETYPE_PAD; ++ ++ /* + * Raw Wacom-mode pen and touch events both come from interface + * 0, whose HID descriptor has an application usage of 0xFF0D + * (i.e., WACOM_VENDORDEFINED_PEN). We route pen packets back diff --git a/queue-4.5/series b/queue-4.5/series index 84a712ccc50..379016e38b4 100644 --- a/queue-4.5/series +++ b/queue-4.5/series @@ -114,3 +114,10 @@ btrfs-fix-file-data-loss-caused-by-fsync-after-rename-and-new-inode.patch arm64-replace-read_lock-to-rcu-lock-in-call_step_hook.patch mmc-sdhci-fix-regression-setting-power-on-trats2-board.patch mmc-sdhci-pci-add-support-and-pci-ids-for-more-broxton-host-controllers.patch +alsa-hda-fix-regression-of-monitor_present-flag-in-eld-proc-file.patch +alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t460s.patch +alsa-usb-audio-add-a-sample-rate-quirk-for-phoenix-audio-tmx320.patch +alsa-usb-audio-add-a-quirk-for-plantronics-bt300.patch +alsa-usb-audio-skip-volume-controls-triggers-hangup-on-dell-usb-dock.patch +hid-wacom-fix-bamboo-one-oops.patch +hid-usbhid-fix-inconsistent-reset-resume-reset-resume-behavior.patch