--- /dev/null
+From 4451d494b1910bf7b7f8381a637d0fe6d2142467 Mon Sep 17 00:00:00 2001
+From: Cristian Stoica <cristian.stoica@freescale.com>
+Date: Thu, 14 Aug 2014 13:51:57 +0300
+Subject: crypto: caam - fix addressing of struct member
+
+From: Cristian Stoica <cristian.stoica@freescale.com>
+
+commit 4451d494b1910bf7b7f8381a637d0fe6d2142467 upstream.
+
+buf_0 and buf_1 in caam_hash_state are not next to each other.
+Accessing buf_1 is incorrect from &buf_0 with an offset of only
+size_of(buf_0). The same issue is also with buflen_0 and buflen_1
+
+Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/crypto/caam/caamhash.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/crypto/caam/caamhash.c
++++ b/drivers/crypto/caam/caamhash.c
+@@ -1413,9 +1413,9 @@ static int ahash_update_first(struct aha
+ struct device *jrdev = ctx->jrdev;
+ gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
+ CRYPTO_TFM_REQ_MAY_SLEEP)) ? GFP_KERNEL : GFP_ATOMIC;
+- u8 *next_buf = state->buf_0 + state->current_buf *
+- CAAM_MAX_HASH_BLOCK_SIZE;
+- int *next_buflen = &state->buflen_0 + state->current_buf;
++ u8 *next_buf = state->current_buf ? state->buf_1 : state->buf_0;
++ int *next_buflen = state->current_buf ?
++ &state->buflen_1 : &state->buflen_0;
+ int to_hash;
+ u32 *sh_desc = ctx->sh_desc_update_first, *desc;
+ dma_addr_t ptr = ctx->sh_desc_update_first_dma;
--- /dev/null
+From d433889cd5a0933fbd90f1e65bff5a8d7963cc52 Mon Sep 17 00:00:00 2001
+From: Yinghai Lu <yinghai@kernel.org>
+Date: Mon, 22 Sep 2014 20:07:35 -0600
+Subject: PCI: pciehp: Fix wait time in timeout message
+
+From: Yinghai Lu <yinghai@kernel.org>
+
+commit d433889cd5a0933fbd90f1e65bff5a8d7963cc52 upstream.
+
+When we warned about a timeout on a hotplug command, we previously printed
+the time between calls to pcie_write_cmd(), without accounting for any time
+spent actually waiting. Consider this sequence:
+
+ pcie_write_cmd
+ write SLTCTL
+ cmd_started = jiffies # T1
+
+ pcie_write_cmd
+ pcie_wait_cmd
+ now = jiffies # T2
+ wait_event_timeout # we may wait here
+ if (timeout)
+ ctrl_info("Timeout on command issued %u msec ago",
+ jiffies_to_msecs(now - cmd_started))
+
+We previously printed (T2 - T1), but that doesn't include the time spent in
+wait_event_timeout().
+
+Fix this by using the current jiffies value, not the one cached before
+calling wait_event_timeout().
+
+[bhelgaas: changelog, use current jiffies instead of adding timeout]
+Fixes: 40b960831cfa ("PCI: pciehp: Compute timeout from hotplug command start time")
+Signed-off-by: Yinghai Lu <yinghai@kernel.org>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pci/hotplug/pciehp_hpc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/pci/hotplug/pciehp_hpc.c
++++ b/drivers/pci/hotplug/pciehp_hpc.c
+@@ -173,7 +173,7 @@ static void pcie_wait_cmd(struct control
+ if (!rc)
+ ctrl_info(ctrl, "Timeout on hotplug command %#010x (issued %u msec ago)\n",
+ ctrl->slot_ctrl,
+- jiffies_to_msecs(now - ctrl->cmd_started));
++ jiffies_to_msecs(jiffies - ctrl->cmd_started));
+ }
+
+ /**
--- /dev/null
+From bf17eba7ae1e813b0ad67cb1078dcbd7083b906e Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <balbi@ti.com>
+Date: Thu, 18 Sep 2014 09:31:32 -0500
+Subject: Revert "usb: gadget: composite: dequeue cdev->req before free it in composite_dev_cleanup"
+
+From: Felipe Balbi <balbi@ti.com>
+
+commit bf17eba7ae1e813b0ad67cb1078dcbd7083b906e upstream.
+
+This reverts commit f2267089ea17fa97b796b1b4247e3f8957655df3.
+
+That commit causes more problem than fixes. Firstly, kfree()
+should be called after usb_ep_dequeue() and secondly, the way
+things are, we will try to dequeue a request that has already
+completed much more frequently than one which is pending.
+
+Cc: Li Jun <b47624@freescale.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/composite.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/usb/gadget/composite.c
++++ b/drivers/usb/gadget/composite.c
+@@ -1956,7 +1956,6 @@ void composite_dev_cleanup(struct usb_co
+ }
+ if (cdev->req) {
+ kfree(cdev->req->buf);
+- usb_ep_dequeue(cdev->gadget->ep0, cdev->req);
+ usb_ep_free_request(cdev->gadget->ep0, cdev->req);
+ }
+ cdev->next_string_id = 0;
irq_work-force-raised-irq-work-to-run-on-irq-work-interrupt.patch
x86-tell-irq-work-about-self-ipi-support.patch
arm-tell-irq-work-about-self-ipi-support.patch
+pci-pciehp-fix-wait-time-in-timeout-message.patch
+uas-add-a-quirk-for-rejecting-ata_12-and-ata_16-commands.patch
+uas-add-no-report-opcodes-quirk.patch
+uas-add-us_fl_no_ata_1x-quirk-for-seagate-0bc2-ab20-drives.patch
+uas-add-another-asm1051-usb-id-to-the-uas-blacklist.patch
+usb-gadget-f_fs-signedness-bug-in-__ffs_func_bind_do_descs.patch
+revert-usb-gadget-composite-dequeue-cdev-req-before-free-it-in-composite_dev_cleanup.patch
+usb-serial-cp210x-added-ketra-n1-wireless-interface-support.patch
+usb-cp210x-add-support-for-seluxit-usb-dongle.patch
+usb-musb-dsps-kill-otg-timer-on-suspend.patch
+usb-add-device-quirk-for-asus-t100-base-station-keyboard.patch
+crypto-caam-fix-addressing-of-struct-member.patch
--- /dev/null
+From 593078525c8b234a35a36ff551b8716464e86481 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 15 Sep 2014 16:04:12 +0200
+Subject: uas: Add a quirk for rejecting ATA_12 and ATA_16 commands
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 593078525c8b234a35a36ff551b8716464e86481 upstream.
+
+And set this quirk for the Seagate Expansion Desk (0bc2:2312), as that one
+seems to hang upon receiving an ATA_12 or ATA_16 command.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=79511
+https://bbs.archlinux.org/viewtopic.php?id=183190
+
+While at it also add missing documentation for the u value for usb-storage
+quirks.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/kernel-parameters.txt | 2 ++
+ drivers/usb/storage/uas.c | 13 +++++++++++++
+ drivers/usb/storage/unusual_uas.h | 23 +++++++++++++----------
+ drivers/usb/storage/usb.c | 6 +++++-
+ include/linux/usb_usual.h | 2 ++
+ 5 files changed, 35 insertions(+), 11 deletions(-)
+
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -3541,6 +3541,8 @@ bytes respectively. Such letter suffixes
+ bogus residue values);
+ s = SINGLE_LUN (the device has only one
+ Logical Unit);
++ t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
++ commands, uas only);
+ u = IGNORE_UAS (don't bind to the uas driver);
+ w = NO_WP_DETECT (don't test whether the
+ medium is write-protected).
+--- a/drivers/usb/storage/uas.c
++++ b/drivers/usb/storage/uas.c
+@@ -28,6 +28,7 @@
+ #include <scsi/scsi_tcq.h>
+
+ #include "uas-detect.h"
++#include "scsiglue.h"
+
+ /*
+ * The r00-r01c specs define this version of the SENSE IU data structure.
+@@ -49,6 +50,7 @@ struct uas_dev_info {
+ struct usb_anchor cmd_urbs;
+ struct usb_anchor sense_urbs;
+ struct usb_anchor data_urbs;
++ unsigned long flags;
+ int qdepth, resetting;
+ struct response_iu response;
+ unsigned cmd_pipe, status_pipe, data_in_pipe, data_out_pipe;
+@@ -714,6 +716,15 @@ static int uas_queuecommand_lck(struct s
+
+ BUILD_BUG_ON(sizeof(struct uas_cmd_info) > sizeof(struct scsi_pointer));
+
++ if ((devinfo->flags & US_FL_NO_ATA_1X) &&
++ (cmnd->cmnd[0] == ATA_12 || cmnd->cmnd[0] == ATA_16)) {
++ memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
++ sizeof(usb_stor_sense_invalidCDB));
++ cmnd->result = SAM_STAT_CHECK_CONDITION;
++ cmnd->scsi_done(cmnd);
++ return 0;
++ }
++
+ spin_lock_irqsave(&devinfo->lock, flags);
+
+ if (devinfo->resetting) {
+@@ -1087,6 +1098,8 @@ static int uas_probe(struct usb_interfac
+ devinfo->resetting = 0;
+ devinfo->running_task = 0;
+ devinfo->shutdown = 0;
++ devinfo->flags = id->driver_info;
++ usb_stor_adjust_quirks(udev, &devinfo->flags);
+ init_usb_anchor(&devinfo->cmd_urbs);
+ init_usb_anchor(&devinfo->sense_urbs);
+ init_usb_anchor(&devinfo->data_urbs);
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -40,13 +40,16 @@
+ * and don't forget to CC: the USB development list <linux-usb@vger.kernel.org>
+ */
+
+-/*
+- * This is an example entry for the US_FL_IGNORE_UAS flag. Once we have an
+- * actual entry using US_FL_IGNORE_UAS this entry should be removed.
+- *
+- * UNUSUAL_DEV( 0xabcd, 0x1234, 0x0100, 0x0100,
+- * "Example",
+- * "Storage with broken UAS",
+- * USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+- * US_FL_IGNORE_UAS),
+- */
++/* https://bugzilla.kernel.org/show_bug.cgi?id=79511 */
++UNUSUAL_DEV(0x0bc2, 0x2312, 0x0000, 0x9999,
++ "Seagate",
++ "Expansion Desk",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_ATA_1X),
++
++/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
++UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x9999,
++ "Seagate",
++ "Expansion Desk",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_ATA_1X),
+--- a/drivers/usb/storage/usb.c
++++ b/drivers/usb/storage/usb.c
+@@ -478,7 +478,8 @@ void usb_stor_adjust_quirks(struct usb_d
+ US_FL_CAPACITY_OK | US_FL_IGNORE_RESIDUE |
+ US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT |
+ US_FL_NO_READ_DISC_INFO | US_FL_NO_READ_CAPACITY_16 |
+- US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE);
++ US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE |
++ US_FL_NO_ATA_1X);
+
+ p = quirks;
+ while (*p) {
+@@ -543,6 +544,9 @@ void usb_stor_adjust_quirks(struct usb_d
+ case 's':
+ f |= US_FL_SINGLE_LUN;
+ break;
++ case 't':
++ f |= US_FL_NO_ATA_1X;
++ break;
+ case 'u':
+ f |= US_FL_IGNORE_UAS;
+ break;
+--- a/include/linux/usb_usual.h
++++ b/include/linux/usb_usual.h
+@@ -73,6 +73,8 @@
+ /* Device advertises UAS but it is broken */ \
+ US_FLAG(BROKEN_FUA, 0x01000000) \
+ /* Cannot handle FUA in WRITE or READ CDBs */ \
++ US_FLAG(NO_ATA_1X, 0x02000000) \
++ /* Cannot handle ATA_12 or ATA_16 CDBs */ \
+
+ #define US_FLAG(name, value) US_FL_##name = value ,
+ enum { US_DO_ALL_FLAGS };
--- /dev/null
+From 710f1bf16ab1b1558f099b62c5011c4cbba6a7bb Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 23 Sep 2014 15:48:50 +0200
+Subject: uas: Add another ASM1051 usb-id to the uas blacklist
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 710f1bf16ab1b1558f099b62c5011c4cbba6a7bb upstream.
+
+As most ASM1051 based devices, this one has unfixable issues with uas too.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/storage/unusual_uas.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -67,3 +67,11 @@ UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x99
+ "JMS567",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_REPORT_OPCODES),
++
++/* Most ASM1051 based devices have issues with uas, blacklist them all */
++/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
++UNUSUAL_DEV(0x174c, 0x5106, 0x0000, 0x9999,
++ "ASMedia",
++ "ASM1051",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_IGNORE_UAS),
--- /dev/null
+From 734016b00b50a3c6a0e1fc1b7b217e783f5123a1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 16 Sep 2014 18:36:52 +0200
+Subject: uas: Add no-report-opcodes quirk
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 734016b00b50a3c6a0e1fc1b7b217e783f5123a1 upstream.
+
+Besides the ASM1051 (*) needing sdev->no_report_opcodes = 1, it turns out that
+the JMicron JMS567 also needs it to work properly with uas (usb-storage always
+sets it). Since some of the scsi devs were not to keen on the idea to
+outrightly set sdev->no_report_opcodes = 1 for all uas devices, so add a quirk
+for this, and set it for the JMS567.
+
+*) Which has become a non-issue since we've completely blacklisted uas on
+the ASM1051 for other reasons
+
+Reported-and-tested-by: Claudio Bizzarri <claudio.bizzarri@gmail.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/kernel-parameters.txt | 2 ++
+ drivers/usb/storage/uas.c | 4 ++++
+ drivers/usb/storage/unusual_uas.h | 7 +++++++
+ drivers/usb/storage/usb.c | 5 ++++-
+ include/linux/usb_usual.h | 2 ++
+ 5 files changed, 19 insertions(+), 1 deletion(-)
+
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -3522,6 +3522,8 @@ bytes respectively. Such letter suffixes
+ READ_DISC_INFO command);
+ e = NO_READ_CAPACITY_16 (don't use
+ READ_CAPACITY_16 command);
++ f = NO_REPORT_OPCODES (don't use report opcodes
++ command, uas only);
+ h = CAPACITY_HEURISTICS (decrease the
+ reported device capacity by one
+ sector if the number is odd);
+--- a/drivers/usb/storage/uas.c
++++ b/drivers/usb/storage/uas.c
+@@ -961,6 +961,10 @@ static int uas_slave_alloc(struct scsi_d
+ static int uas_slave_configure(struct scsi_device *sdev)
+ {
+ struct uas_dev_info *devinfo = sdev->hostdata;
++
++ if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
++ sdev->no_report_opcodes = 1;
++
+ scsi_set_tag_type(sdev, MSG_ORDERED_TAG);
+ scsi_activate_tcq(sdev, devinfo->qdepth - 2);
+ return 0;
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -53,3 +53,10 @@ UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x99
+ "Expansion Desk",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
++
++/* Reported-by: Claudio Bizzarri <claudio.bizzarri@gmail.com> */
++UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
++ "JMicron",
++ "JMS567",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_REPORT_OPCODES),
+--- a/drivers/usb/storage/usb.c
++++ b/drivers/usb/storage/usb.c
+@@ -479,7 +479,7 @@ void usb_stor_adjust_quirks(struct usb_d
+ US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT |
+ US_FL_NO_READ_DISC_INFO | US_FL_NO_READ_CAPACITY_16 |
+ US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE |
+- US_FL_NO_ATA_1X);
++ US_FL_NO_ATA_1X | US_FL_NO_REPORT_OPCODES);
+
+ p = quirks;
+ while (*p) {
+@@ -517,6 +517,9 @@ void usb_stor_adjust_quirks(struct usb_d
+ case 'e':
+ f |= US_FL_NO_READ_CAPACITY_16;
+ break;
++ case 'f':
++ f |= US_FL_NO_REPORT_OPCODES;
++ break;
+ case 'h':
+ f |= US_FL_CAPACITY_HEURISTICS;
+ break;
+--- a/include/linux/usb_usual.h
++++ b/include/linux/usb_usual.h
+@@ -75,6 +75,8 @@
+ /* Cannot handle FUA in WRITE or READ CDBs */ \
+ US_FLAG(NO_ATA_1X, 0x02000000) \
+ /* Cannot handle ATA_12 or ATA_16 CDBs */ \
++ US_FLAG(NO_REPORT_OPCODES, 0x04000000) \
++ /* Cannot handle MI_REPORT_SUPPORTED_OPERATION_CODES */ \
+
+ #define US_FLAG(name, value) US_FL_##name = value ,
+ enum { US_DO_ALL_FLAGS };
--- /dev/null
+From f9554a6b199360c2f888173fd600e1eb7ff165ef Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 17 Sep 2014 10:10:58 +0200
+Subject: uas: Add US_FL_NO_ATA_1X quirk for Seagate (0bc2:ab20) drives
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit f9554a6b199360c2f888173fd600e1eb7ff165ef upstream.
+
+https://bbs.archlinux.org/viewtopic.php?pid=1457492
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/storage/unusual_uas.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -54,6 +54,13 @@ UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x99
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
+
++/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
++UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
++ "Seagate",
++ "Backup+ BK",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_ATA_1X),
++
+ /* Reported-by: Claudio Bizzarri <claudio.bizzarri@gmail.com> */
+ UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
+ "JMicron",
--- /dev/null
+From ddbe1fca0bcb87ca8c199ea873a456ca8a948567 Mon Sep 17 00:00:00 2001
+From: Lu Baolu <baolu.lu@linux.intel.com>
+Date: Fri, 19 Sep 2014 10:13:50 +0800
+Subject: USB: Add device quirk for ASUS T100 Base Station keyboard
+
+From: Lu Baolu <baolu.lu@linux.intel.com>
+
+commit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream.
+
+This full-speed USB device generates spurious remote wakeup event
+as soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result,
+Linux can't enter system suspend and S0ix power saving modes once
+this keyboard is used.
+
+This patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk.
+With this quirk set, wakeup capability will be ignored during
+device configure.
+
+This patch could be back-ported to kernels as old as 2.6.39.
+
+Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/core/hub.c | 6 ++++--
+ drivers/usb/core/quirks.c | 4 ++++
+ include/linux/usb/quirks.h | 3 +++
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -1983,8 +1983,10 @@ void usb_set_device_state(struct usb_dev
+ || new_state == USB_STATE_SUSPENDED)
+ ; /* No change to wakeup settings */
+ else if (new_state == USB_STATE_CONFIGURED)
+- wakeup = udev->actconfig->desc.bmAttributes
+- & USB_CONFIG_ATT_WAKEUP;
++ wakeup = (udev->quirks &
++ USB_QUIRK_IGNORE_REMOTE_WAKEUP) ? 0 :
++ udev->actconfig->desc.bmAttributes &
++ USB_CONFIG_ATT_WAKEUP;
+ else
+ wakeup = 0;
+ }
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -159,6 +159,10 @@ static const struct usb_device_id usb_qu
+ /* USB3503 */
+ { USB_DEVICE(0x0424, 0x3503), .driver_info = USB_QUIRK_RESET_RESUME },
+
++ /* ASUS Base Station(T100) */
++ { USB_DEVICE(0x0b05, 0x17e0), .driver_info =
++ USB_QUIRK_IGNORE_REMOTE_WAKEUP },
++
+ { } /* terminating entry must be last */
+ };
+
+--- a/include/linux/usb/quirks.h
++++ b/include/linux/usb/quirks.h
+@@ -41,4 +41,7 @@
+ */
+ #define USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL 0x00000080
+
++/* device generates spurious wakeup, ignore remote wakeup capability */
++#define USB_QUIRK_IGNORE_REMOTE_WAKEUP 0x00000200
++
+ #endif /* __LINUX_USB_QUIRKS_H */
--- /dev/null
+From dee80ad12d2b1b304286a707fde7ab05d1fc7bab Mon Sep 17 00:00:00 2001
+From: Andreas Bomholtz <andreas@seluxit.com>
+Date: Mon, 22 Sep 2014 09:50:43 +0200
+Subject: USB: cp210x: add support for Seluxit USB dongle
+
+From: Andreas Bomholtz <andreas@seluxit.com>
+
+commit dee80ad12d2b1b304286a707fde7ab05d1fc7bab upstream.
+
+Added the Seluxit ApS USB Serial Dongle to cp210x driver.
+
+Signed-off-by: Andreas Bomholtz <andreas@seluxit.com>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/cp210x.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/serial/cp210x.c
++++ b/drivers/usb/serial/cp210x.c
+@@ -156,6 +156,7 @@ static const struct usb_device_id id_tab
+ { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
+ { USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */
+ { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
++ { USB_DEVICE(0x1D6F, 0x0010) }, /* Seluxit ApS RF Dongle */
+ { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
+ { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
+ { USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */
--- /dev/null
+From 85b06f5e53d17c15844ef3cd45d0c7107f0ae45c Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Tue, 9 Sep 2014 15:06:09 +0300
+Subject: usb: gadget: f_fs: signedness bug in __ffs_func_bind_do_descs()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 85b06f5e53d17c15844ef3cd45d0c7107f0ae45c upstream.
+
+We need "idx" to be signed for the error handling to work.
+
+Fixes: 6d5c1c77bbf9 ('usb: gadget: f_fs: fix the redundant ep files problem')
+Acked-by: Michal Nazarewicz <mina86@mina86.com>
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/function/f_fs.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/function/f_fs.c
++++ b/drivers/usb/gadget/function/f_fs.c
+@@ -2393,7 +2393,8 @@ static int __ffs_func_bind_do_descs(enum
+ struct usb_endpoint_descriptor *ds = (void *)desc;
+ struct ffs_function *func = priv;
+ struct ffs_ep *ffs_ep;
+- unsigned ep_desc_id, idx;
++ unsigned ep_desc_id;
++ int idx;
+ static const char *speed_names[] = { "full", "high", "super" };
+
+ if (type != FFS_DESCRIPTOR)
--- /dev/null
+From 468bcc2a2ca071f652009d2d20d97f2437630cae Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <balbi@ti.com>
+Date: Mon, 15 Sep 2014 09:03:24 -0500
+Subject: usb: musb: dsps: kill OTG timer on suspend
+
+From: Felipe Balbi <balbi@ti.com>
+
+commit 468bcc2a2ca071f652009d2d20d97f2437630cae upstream.
+
+if we don't make sure to kill the timer, it could
+expire after we have already gated our clocks.
+
+That will trigger a Data Abort exception because
+we would try to access register while clock is gated.
+
+Fix that bug.
+
+Fixes 869c597 (usb: musb: dsps: add support for suspend and resume)
+Tested-by: Dave Gerlach <d-gerlach@ti.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/musb/musb_dsps.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/musb/musb_dsps.c
++++ b/drivers/usb/musb/musb_dsps.c
+@@ -870,6 +870,7 @@ static int dsps_suspend(struct device *d
+ struct musb *musb = platform_get_drvdata(glue->musb);
+ void __iomem *mbase = musb->ctrl_base;
+
++ del_timer_sync(&glue->timer);
+ glue->context.control = dsps_readl(mbase, wrp->control);
+ glue->context.epintr = dsps_readl(mbase, wrp->epintr_set);
+ glue->context.coreintr = dsps_readl(mbase, wrp->coreintr_set);
+@@ -895,6 +896,7 @@ static int dsps_resume(struct device *de
+ dsps_writel(mbase, wrp->mode, glue->context.mode);
+ dsps_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
+ dsps_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
++ setup_timer(&glue->timer, otg_timer, (unsigned long) musb);
+
+ return 0;
+ }
--- /dev/null
+From bfc2d7dfdd761ae3beccdb26abebe03cef042f46 Mon Sep 17 00:00:00 2001
+From: Joe Savage <joe.savage@goketra.com>
+Date: Sat, 20 Sep 2014 08:01:16 -0500
+Subject: USB: serial: cp210x: added Ketra N1 wireless interface support
+
+From: Joe Savage <joe.savage@goketra.com>
+
+commit bfc2d7dfdd761ae3beccdb26abebe03cef042f46 upstream.
+
+Added support for Ketra N1 wireless interface, which uses the
+Silicon Labs' CP2104 USB to UART bridge with customized PID 8946.
+
+Signed-off-by: Joe Savage <joe.savage@goketra.com>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/cp210x.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/serial/cp210x.c
++++ b/drivers/usb/serial/cp210x.c
+@@ -122,6 +122,7 @@ static const struct usb_device_id id_tab
+ { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
+ { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */
+ { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */
++ { USB_DEVICE(0x10C4, 0x8946) }, /* Ketra N1 Wireless Interface */
+ { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
+ { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
+ { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */