]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 May 2013 00:05:13 +0000 (09:05 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 May 2013 00:05:13 +0000 (09:05 +0900)
added patches:
arm-plat-orion-fix-num_resources-and-id-for-ge10-and-ge11.patch
cifs-only-set-ops-for-inodes-in-i_new-state.patch
fat-fix-possible-overflow-for-fat_clusters.patch
staging-vt6656-use-free_netdev-instead-of-kfree.patch
tty-fix-tty-miss-restart-after-we-turn-off-flow-control.patch
usb-blacklisted-cinterion-s-plxx-wwan-interface.patch
usb-cxacru-potential-underflow-in-cxacru_cm_get_array.patch
usb-ftdi_sio-add-support-for-newport-conex-motor-drivers.patch
usb-option-add-device-ids-for-dell-5804-novatel-e371-wwan-card.patch
usb-option-add-telewell-tw-lte-4g.patch
usb-reset-resume-quirk-needed-by-a-hub.patch
usb-uhci-fix-for-suspend-of-virtual-hp-controller.patch
usb-xhci-override-bogus-bulk-wmaxpacketsize-values.patch

14 files changed:
queue-3.4/arm-plat-orion-fix-num_resources-and-id-for-ge10-and-ge11.patch [new file with mode: 0644]
queue-3.4/cifs-only-set-ops-for-inodes-in-i_new-state.patch [new file with mode: 0644]
queue-3.4/fat-fix-possible-overflow-for-fat_clusters.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/staging-vt6656-use-free_netdev-instead-of-kfree.patch [new file with mode: 0644]
queue-3.4/tty-fix-tty-miss-restart-after-we-turn-off-flow-control.patch [new file with mode: 0644]
queue-3.4/usb-blacklisted-cinterion-s-plxx-wwan-interface.patch [new file with mode: 0644]
queue-3.4/usb-cxacru-potential-underflow-in-cxacru_cm_get_array.patch [new file with mode: 0644]
queue-3.4/usb-ftdi_sio-add-support-for-newport-conex-motor-drivers.patch [new file with mode: 0644]
queue-3.4/usb-option-add-device-ids-for-dell-5804-novatel-e371-wwan-card.patch [new file with mode: 0644]
queue-3.4/usb-option-add-telewell-tw-lte-4g.patch [new file with mode: 0644]
queue-3.4/usb-reset-resume-quirk-needed-by-a-hub.patch [new file with mode: 0644]
queue-3.4/usb-uhci-fix-for-suspend-of-virtual-hp-controller.patch [new file with mode: 0644]
queue-3.4/usb-xhci-override-bogus-bulk-wmaxpacketsize-values.patch [new file with mode: 0644]

diff --git a/queue-3.4/arm-plat-orion-fix-num_resources-and-id-for-ge10-and-ge11.patch b/queue-3.4/arm-plat-orion-fix-num_resources-and-id-for-ge10-and-ge11.patch
new file mode 100644 (file)
index 0000000..6268121
--- /dev/null
@@ -0,0 +1,66 @@
+From 2b8b2797142c7951e635c6eec5d1705ee9bc45c5 Mon Sep 17 00:00:00 2001
+From: Gregory CLEMENT <gregory.clement@free-electrons.com>
+Date: Sun, 19 May 2013 22:12:43 +0200
+Subject: ARM: plat-orion: Fix num_resources and id for ge10 and ge11
+
+From: Gregory CLEMENT <gregory.clement@free-electrons.com>
+
+commit 2b8b2797142c7951e635c6eec5d1705ee9bc45c5 upstream.
+
+When platform data were moved from arch/arm/mach-mv78xx0/common.c to
+arch/arm/plat-orion/common.c with the commit "7e3819d ARM: orion:
+Consolidate ethernet platform data", there were few typo made on
+gigabit Ethernet interface ge10 and ge11. This commit writes back
+their initial value, which allows to use this interfaces again.
+
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+Acked-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Jason Cooper <jason@lakedaemon.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/plat-orion/common.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/arch/arm/plat-orion/common.c
++++ b/arch/arm/plat-orion/common.c
+@@ -340,7 +340,7 @@ static struct resource orion_ge10_shared
+ static struct platform_device orion_ge10_shared = {
+       .name           = MV643XX_ETH_SHARED_NAME,
+-      .id             = 1,
++      .id             = 2,
+       .dev            = {
+               .platform_data  = &orion_ge10_shared_data,
+       },
+@@ -355,8 +355,8 @@ static struct resource orion_ge10_resour
+ static struct platform_device orion_ge10 = {
+       .name           = MV643XX_ETH_NAME,
+-      .id             = 1,
+-      .num_resources  = 2,
++      .id             = 2,
++      .num_resources  = 1,
+       .resource       = orion_ge10_resources,
+       .dev            = {
+               .coherent_dma_mask      = DMA_BIT_MASK(32),
+@@ -393,7 +393,7 @@ static struct resource orion_ge11_shared
+ static struct platform_device orion_ge11_shared = {
+       .name           = MV643XX_ETH_SHARED_NAME,
+-      .id             = 1,
++      .id             = 3,
+       .dev            = {
+               .platform_data  = &orion_ge11_shared_data,
+       },
+@@ -408,8 +408,8 @@ static struct resource orion_ge11_resour
+ static struct platform_device orion_ge11 = {
+       .name           = MV643XX_ETH_NAME,
+-      .id             = 1,
+-      .num_resources  = 2,
++      .id             = 3,
++      .num_resources  = 1,
+       .resource       = orion_ge11_resources,
+       .dev            = {
+               .coherent_dma_mask      = DMA_BIT_MASK(32),
diff --git a/queue-3.4/cifs-only-set-ops-for-inodes-in-i_new-state.patch b/queue-3.4/cifs-only-set-ops-for-inodes-in-i_new-state.patch
new file mode 100644 (file)
index 0000000..04d1ae5
--- /dev/null
@@ -0,0 +1,36 @@
+From c2b93e0699723700f886ce17bb65ffd771195a6d Mon Sep 17 00:00:00 2001
+From: Jeff Layton <jlayton@redhat.com>
+Date: Tue, 7 May 2013 11:28:31 -0400
+Subject: cifs: only set ops for inodes in I_NEW state
+
+From: Jeff Layton <jlayton@redhat.com>
+
+commit c2b93e0699723700f886ce17bb65ffd771195a6d upstream.
+
+It's generally not safe to reset the inode ops once they've been set. In
+the case where the inode was originally thought to be a directory and
+then later found to be a DFS referral, this can lead to an oops when we
+try to trigger an inode op on it after changing the ops to the blank
+referral operations.
+
+Reported-and-Tested-by: Sachin Prabhu <sprabhu@redhat.com>
+Signed-off-by: Jeff Layton <jlayton@redhat.com>
+Signed-off-by: Steve French <smfrench@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/inode.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/cifs/inode.c
++++ b/fs/cifs/inode.c
+@@ -173,7 +173,8 @@ cifs_fattr_to_inode(struct inode *inode,
+       if (fattr->cf_flags & CIFS_FATTR_DFS_REFERRAL)
+               inode->i_flags |= S_AUTOMOUNT;
+-      cifs_set_ops(inode);
++      if (inode->i_state & I_NEW)
++              cifs_set_ops(inode);
+ }
+ void
diff --git a/queue-3.4/fat-fix-possible-overflow-for-fat_clusters.patch b/queue-3.4/fat-fix-possible-overflow-for-fat_clusters.patch
new file mode 100644 (file)
index 0000000..695a973
--- /dev/null
@@ -0,0 +1,52 @@
+From 7b92d03c3239f43e5b86c9cc9630f026d36ee995 Mon Sep 17 00:00:00 2001
+From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+Date: Fri, 24 May 2013 15:55:08 -0700
+Subject: fat: fix possible overflow for fat_clusters
+
+From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+
+commit 7b92d03c3239f43e5b86c9cc9630f026d36ee995 upstream.
+
+Intermediate value of fat_clusters can be overflowed on 32bits arch.
+
+Reported-by: Krzysztof Strasburger <strasbur@chkw386.ch.pwr.wroc.pl>
+Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/fat/inode.c |   15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+--- a/fs/fat/inode.c
++++ b/fs/fat/inode.c
+@@ -1237,6 +1237,19 @@ static int fat_read_root(struct inode *i
+       return 0;
+ }
++static unsigned long calc_fat_clusters(struct super_block *sb)
++{
++      struct msdos_sb_info *sbi = MSDOS_SB(sb);
++
++      /* Divide first to avoid overflow */
++      if (sbi->fat_bits != 12) {
++              unsigned long ent_per_sec = sb->s_blocksize * 8 / sbi->fat_bits;
++              return ent_per_sec * sbi->fat_length;
++      }
++
++      return sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
++}
++
+ /*
+  * Read the super block of an MS-DOS FS.
+  */
+@@ -1433,7 +1446,7 @@ int fat_fill_super(struct super_block *s
+               sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
+       /* check that FAT table does not overflow */
+-      fat_clusters = sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
++      fat_clusters = calc_fat_clusters(sb);
+       total_clusters = min(total_clusters, fat_clusters - FAT_START_ENT);
+       if (total_clusters > MAX_FAT(sb)) {
+               if (!silent)
index 57dd9f2dcffc7205060cafbbc671cc37c9ad2828..7ffddfa9be3afca204cfb1110986248d86a29231 100644 (file)
@@ -1 +1,14 @@
 avr32-fix-relocation-check-for-signed-18-bit-offset.patch
+arm-plat-orion-fix-num_resources-and-id-for-ge10-and-ge11.patch
+staging-vt6656-use-free_netdev-instead-of-kfree.patch
+usb-option-add-telewell-tw-lte-4g.patch
+usb-option-add-device-ids-for-dell-5804-novatel-e371-wwan-card.patch
+usb-ftdi_sio-add-support-for-newport-conex-motor-drivers.patch
+usb-cxacru-potential-underflow-in-cxacru_cm_get_array.patch
+tty-fix-tty-miss-restart-after-we-turn-off-flow-control.patch
+usb-blacklisted-cinterion-s-plxx-wwan-interface.patch
+usb-reset-resume-quirk-needed-by-a-hub.patch
+usb-xhci-override-bogus-bulk-wmaxpacketsize-values.patch
+usb-uhci-fix-for-suspend-of-virtual-hp-controller.patch
+cifs-only-set-ops-for-inodes-in-i_new-state.patch
+fat-fix-possible-overflow-for-fat_clusters.patch
diff --git a/queue-3.4/staging-vt6656-use-free_netdev-instead-of-kfree.patch b/queue-3.4/staging-vt6656-use-free_netdev-instead-of-kfree.patch
new file mode 100644 (file)
index 0000000..976ff3e
--- /dev/null
@@ -0,0 +1,29 @@
+From 0a438d5b381e2bdfd5e02d653bf46fcc878356e3 Mon Sep 17 00:00:00 2001
+From: Hema Prathaban <hemaklnce@gmail.com>
+Date: Sat, 11 May 2013 22:39:47 +0530
+Subject: staging: vt6656: use free_netdev instead of kfree
+
+From: Hema Prathaban <hemaklnce@gmail.com>
+
+commit 0a438d5b381e2bdfd5e02d653bf46fcc878356e3 upstream.
+
+use free_netdev() instead of kfree(pDevice->apdev)
+
+Signed-off-by: Hema Prathaban <hemaklnce@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/vt6656/hostap.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/staging/vt6656/hostap.c
++++ b/drivers/staging/vt6656/hostap.c
+@@ -153,7 +153,7 @@ static int hostap_disable_hostapd(PSDevi
+             DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Netdevice %s unregistered\n",
+                      pDevice->dev->name, pDevice->apdev->name);
+       }
+-      kfree(pDevice->apdev);
++      free_netdev(pDevice->apdev);
+       pDevice->apdev = NULL;
+     pDevice->bEnable8021x = FALSE;
+     pDevice->bEnableHostWEP = FALSE;
diff --git a/queue-3.4/tty-fix-tty-miss-restart-after-we-turn-off-flow-control.patch b/queue-3.4/tty-fix-tty-miss-restart-after-we-turn-off-flow-control.patch
new file mode 100644 (file)
index 0000000..0a2473a
--- /dev/null
@@ -0,0 +1,51 @@
+From dab73b4eb9ef924a2b90dab84e539076d82b256f Mon Sep 17 00:00:00 2001
+From: Wang YanQing <udknight@gmail.com>
+Date: Thu, 9 May 2013 14:16:47 +0800
+Subject: TTY: Fix tty miss restart after we turn off flow-control
+
+From: Wang YanQing <udknight@gmail.com>
+
+commit dab73b4eb9ef924a2b90dab84e539076d82b256f upstream.
+
+I meet emacs hang in start if I do the operation below:
+  1: echo 3 > /proc/sys/vm/drop_caches
+  2: emacs BigFile
+  3: Press CTRL-S follow 2 immediately
+
+Then emacs hang on, CTRL-Q can't resume, the terminal
+hang on, you can do nothing with this terminal except
+close it.
+
+The reason is before emacs takeover control the tty,
+we use CTRL-S to XOFF it. Then when emacs takeover the
+control, it may don't use the flow-control, so emacs hang.
+This patch fix it.
+
+This patch will fix a kind of strange tty relation hang problem,
+I believe I meet it with vim in ssh, and also see below bug report:
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=465823
+
+Signed-off-by: Wang YanQing <udknight@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/n_tty.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/tty/n_tty.c
++++ b/drivers/tty/n_tty.c
+@@ -1529,6 +1529,14 @@ static void n_tty_set_termios(struct tty
+                       tty->real_raw = 0;
+       }
+       n_tty_set_room(tty);
++      /*
++       * Fix tty hang when I_IXON(tty) is cleared, but the tty
++       * been stopped by STOP_CHAR(tty) before it.
++       */
++      if (!I_IXON(tty) && old && (old->c_iflag & IXON) && !tty->flow_stopped) {
++              start_tty(tty);
++      }
++
+       /* The termios change make the tty ready for I/O */
+       wake_up_interruptible(&tty->write_wait);
+       wake_up_interruptible(&tty->read_wait);
diff --git a/queue-3.4/usb-blacklisted-cinterion-s-plxx-wwan-interface.patch b/queue-3.4/usb-blacklisted-cinterion-s-plxx-wwan-interface.patch
new file mode 100644 (file)
index 0000000..1bda243
--- /dev/null
@@ -0,0 +1,45 @@
+From 8ff10bdb14a52e3f25d4ce09e0582a8684c1a6db Mon Sep 17 00:00:00 2001
+From: Schemmel Hans-Christoph <Hans-Christoph.Schemmel@gemalto.com>
+Date: Mon, 6 May 2013 11:05:12 +0200
+Subject: USB: Blacklisted Cinterion's PLxx WWAN Interface
+
+From: Schemmel Hans-Christoph <Hans-Christoph.Schemmel@gemalto.com>
+
+commit 8ff10bdb14a52e3f25d4ce09e0582a8684c1a6db upstream.
+
+/drivers/usb/serial/option.c: Blacklisted Cinterion's PLxx WWAN
+Interface (USB Interface 4), because it will be handled by QMI WWAN
+driver. Product IDs renamed.
+
+Signed-off-by: Hans-Christoph Schemmel <hans-christoph.schemmel@gemalto.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -342,8 +342,8 @@ static void option_instat_callback(struc
+ #define CINTERION_PRODUCT_EU3_E                       0x0051
+ #define CINTERION_PRODUCT_EU3_P                       0x0052
+ #define CINTERION_PRODUCT_PH8                 0x0053
+-#define CINTERION_PRODUCT_AH6                 0x0055
+-#define CINTERION_PRODUCT_PLS8                        0x0060
++#define CINTERION_PRODUCT_AHXX                        0x0055
++#define CINTERION_PRODUCT_PLXX                        0x0060
+ /* Olivetti products */
+ #define OLIVETTI_VENDOR_ID                    0x0b3c
+@@ -1268,8 +1268,9 @@ static const struct usb_device_id option
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8) },
+-      { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AH6) },
+-      { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLS8) },
++      { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX) },
++      { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
++              .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, 
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
+       { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) },
diff --git a/queue-3.4/usb-cxacru-potential-underflow-in-cxacru_cm_get_array.patch b/queue-3.4/usb-cxacru-potential-underflow-in-cxacru_cm_get_array.patch
new file mode 100644 (file)
index 0000000..990ce8a
--- /dev/null
@@ -0,0 +1,32 @@
+From 2a0ebf80aa95cc758d4725f74a7016e992606a39 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Sun, 19 May 2013 21:52:20 +0300
+Subject: USB: cxacru: potential underflow in cxacru_cm_get_array()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 2a0ebf80aa95cc758d4725f74a7016e992606a39 upstream.
+
+The value of "offd" comes off the instance->rcv_buf[] and we used it as
+the offset into an array.  The problem is that we check the upper bound
+but not for negative values.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/atm/cxacru.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/atm/cxacru.c
++++ b/drivers/usb/atm/cxacru.c
+@@ -686,7 +686,8 @@ static int cxacru_cm_get_array(struct cx
+ {
+       int ret, len;
+       __le32 *buf;
+-      int offb, offd;
++      int offb;
++      unsigned int offd;
+       const int stride = CMD_PACKET_SIZE / (4 * 2) - 1;
+       int buflen =  ((size - 1) / stride + 1 + size * 2) * 4;
diff --git a/queue-3.4/usb-ftdi_sio-add-support-for-newport-conex-motor-drivers.patch b/queue-3.4/usb-ftdi_sio-add-support-for-newport-conex-motor-drivers.patch
new file mode 100644 (file)
index 0000000..a513d9f
--- /dev/null
@@ -0,0 +1,57 @@
+From 7138143972b7c293267c783fc99a194f0ceff7f2 Mon Sep 17 00:00:00 2001
+From: "Gomella, Andrew (NIH/NHLBI) [F]" <andrew.gomella@nih.gov>
+Date: Fri, 17 May 2013 17:39:46 +0000
+Subject: USB: ftdi_sio: Add support for Newport CONEX motor drivers
+
+From: "Gomella, Andrew (NIH/NHLBI) [F]" <andrew.gomella@nih.gov>
+
+commit 7138143972b7c293267c783fc99a194f0ceff7f2 upstream.
+
+Here are two more devices that use FTDI USB-to-serial chips with new product ID's.
+
+The devices are the Newport Conex-AGP and Conex-CC motor controllers.
+(http://www.newport.com/CONEX-AGP-Integrated-Piezo-Motor-Rotation-Stages-/987623/1033/info.aspx)
+(http://www.newport.com/CONEX-CC-DC-Servo-Controller-Actuators/934114/1033/info.aspx)
+
+usb-devices command yields:
+
+P:  Vendor=104d ProdID=3002 Rev=06.00
+S:  Manufacturer=Newport
+S:  Product=CONEX-CC
+
+as well as
+
+P:  Vendor=104d ProdID=3006 Rev=06.00
+S:  Manufacturer=Newport
+S:  Product=CONEX-AGP
+
+Signed-off-by: Andrew Gomella <andrew.gomella@nih.gov>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/ftdi_sio.c     |    2 ++
+ drivers/usb/serial/ftdi_sio_ids.h |    2 ++
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -199,6 +199,8 @@ static struct usb_device_id id_table_com
+       { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GBM_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GBM_BOOST_PID) },
+       { USB_DEVICE(NEWPORT_VID, NEWPORT_AGILIS_PID) },
++      { USB_DEVICE(NEWPORT_VID, NEWPORT_CONEX_CC_PID) },
++      { USB_DEVICE(NEWPORT_VID, NEWPORT_CONEX_AGP_PID) },
+       { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) },
+       { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -772,6 +772,8 @@
+  */
+ #define NEWPORT_VID                   0x104D
+ #define NEWPORT_AGILIS_PID            0x3000
++#define NEWPORT_CONEX_CC_PID          0x3002
++#define NEWPORT_CONEX_AGP_PID         0x3006
+ /* Interbiometrics USB I/O Board */
+ /* Developed for Interbiometrics by Rudolf Gugler */
diff --git a/queue-3.4/usb-option-add-device-ids-for-dell-5804-novatel-e371-wwan-card.patch b/queue-3.4/usb-option-add-device-ids-for-dell-5804-novatel-e371-wwan-card.patch
new file mode 100644 (file)
index 0000000..74e03aa
--- /dev/null
@@ -0,0 +1,36 @@
+From 49c6e370dd6400b84897c4100095089b5c13a061 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Mon, 6 May 2013 16:16:44 -0500
+Subject: USB: option: add device IDs for Dell 5804 (Novatel E371) WWAN card
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit 49c6e370dd6400b84897c4100095089b5c13a061 upstream.
+
+A rebranded Novatel E371 for AT&T's LTE bands.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -196,6 +196,7 @@ static void option_instat_callback(struc
+ #define DELL_PRODUCT_5800_MINICARD_VZW                0x8195  /* Novatel E362 */
+ #define DELL_PRODUCT_5800_V2_MINICARD_VZW     0x8196  /* Novatel E362 */
++#define DELL_PRODUCT_5804_MINICARD_ATT                0x819b  /* Novatel E371 */
+ #define KYOCERA_VENDOR_ID                     0x0c88
+ #define KYOCERA_PRODUCT_KPC650                        0x17da
+@@ -771,6 +772,7 @@ static const struct usb_device_id option
+       { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) },         /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
+       { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_MINICARD_VZW, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_V2_MINICARD_VZW, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5804_MINICARD_ATT, 0xff, 0xff, 0xff) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },   /* ADU-E100, ADU-310 */
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
diff --git a/queue-3.4/usb-option-add-telewell-tw-lte-4g.patch b/queue-3.4/usb-option-add-telewell-tw-lte-4g.patch
new file mode 100644 (file)
index 0000000..f8259aa
--- /dev/null
@@ -0,0 +1,35 @@
+From 73c042df6e1bc50544842a04b777b36bbe3630e6 Mon Sep 17 00:00:00 2001
+From: Teppo Kotilainen <qubit303@gmail.com>
+Date: Fri, 3 May 2013 10:28:12 +0300
+Subject: usb: option: Add Telewell TW-LTE 4G
+
+From: Teppo Kotilainen <qubit303@gmail.com>
+
+commit 73c042df6e1bc50544842a04b777b36bbe3630e6 upstream.
+
+Information from driver description files:
+
+  diag:  VID_19D2&PID_0412&MI_00
+  nmea:  VID_19D2&PID_0412&MI_01
+  at:    VID_19D2&PID_0412&MI_02
+  modem: VID_19D2&PID_0412&MI_03
+  net:   VID_19D2&PID_0412&MI_04
+
+Signed-off-by: Teppo Kotilainen <qubit303@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -966,6 +966,8 @@ static const struct usb_device_id option
+         .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0330, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0395, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0412, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G */
++        .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0414, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0417, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
diff --git a/queue-3.4/usb-reset-resume-quirk-needed-by-a-hub.patch b/queue-3.4/usb-reset-resume-quirk-needed-by-a-hub.patch
new file mode 100644 (file)
index 0000000..91cc0ea
--- /dev/null
@@ -0,0 +1,30 @@
+From bac6b03275184c912ad0818c9a0a736847804dca Mon Sep 17 00:00:00 2001
+From: Oliver Neukum <oliver@neukum.org>
+Date: Tue, 30 Apr 2013 10:18:04 +0200
+Subject: USB: reset resume quirk needed by a hub
+
+From: Oliver Neukum <oliver@neukum.org>
+
+commit bac6b03275184c912ad0818c9a0a736847804dca upstream.
+
+Werner Fink has reported problems with this hub.
+
+Signed-off-by: Oliver Neukum <oliver@neukum.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/core/quirks.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -110,6 +110,9 @@ static const struct usb_device_id usb_qu
+       /* Edirol SD-20 */
+       { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME },
++      /* Alcor Micro Corp. Hub */
++      { USB_DEVICE(0x058f, 0x9254), .driver_info = USB_QUIRK_RESET_RESUME },
++
+       /* appletouch */
+       { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
diff --git a/queue-3.4/usb-uhci-fix-for-suspend-of-virtual-hp-controller.patch b/queue-3.4/usb-uhci-fix-for-suspend-of-virtual-hp-controller.patch
new file mode 100644 (file)
index 0000000..e4dfc90
--- /dev/null
@@ -0,0 +1,39 @@
+From 997ff893603c6455da4c5e26ba1d0f81adfecdfc Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Tue, 14 May 2013 13:55:29 -0400
+Subject: USB: UHCI: fix for suspend of virtual HP controller
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit 997ff893603c6455da4c5e26ba1d0f81adfecdfc upstream.
+
+HP's virtual UHCI host controller takes a long time to suspend
+(several hundred microseconds), even when no devices are attached.
+This provokes a warning message from uhci-hcd in the auto-stop case.
+
+To prevent this from happening, this patch adds a test to avoid
+performing an auto-stop when the wait_for_hp quirk flag is set.  The
+controller will still suspend through the normal runtime PM mechanism.
+And since that pathway includes a 1-ms delay, the slowness of the
+virtual hardware won't matter.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Reported-and-tested-by: ZhenHua <zhen-hual@hp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/uhci-hub.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/host/uhci-hub.c
++++ b/drivers/usb/host/uhci-hub.c
+@@ -222,7 +222,8 @@ static int uhci_hub_status_data(struct u
+               /* auto-stop if nothing connected for 1 second */
+               if (any_ports_active(uhci))
+                       uhci->rh_state = UHCI_RH_RUNNING;
+-              else if (time_after_eq(jiffies, uhci->auto_stop_time))
++              else if (time_after_eq(jiffies, uhci->auto_stop_time) &&
++                              !uhci->wait_for_hp)
+                       suspend_rh(uhci, UHCI_RH_AUTO_STOPPED);
+               break;
diff --git a/queue-3.4/usb-xhci-override-bogus-bulk-wmaxpacketsize-values.patch b/queue-3.4/usb-xhci-override-bogus-bulk-wmaxpacketsize-values.patch
new file mode 100644 (file)
index 0000000..845de74
--- /dev/null
@@ -0,0 +1,79 @@
+From e4f47e3675e6f1f40906b785b934ce963e9f2eb3 Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Wed, 8 May 2013 11:18:05 -0400
+Subject: USB: xHCI: override bogus bulk wMaxPacketSize values
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit e4f47e3675e6f1f40906b785b934ce963e9f2eb3 upstream.
+
+This patch shortens the logic in xhci_endpoint_init() by moving common
+calculations involving max_packet and max_burst outside the switch
+statement, rather than repeating the same code in multiple
+case-specific statements.  It also replaces two usages of max_packet
+which were clearly intended to be max_burst all along.
+
+More importantly, it compensates for a common bug in high-speed bulk
+endpoint descriptors.  In many devices there is a bulk endpoint having
+a wMaxPacketSize value smaller than 512, which is forbidden by the USB
+spec.  Some xHCI controllers can't handle this and refuse to accept
+the endpoint.  This patch changes the max_packet value to 512, which
+allows the controller to use the endpoint properly.
+
+In practice the bogus maxpacket size doesn't matter, because none of
+the transfers sent via these endpoints are longer than the maxpacket
+value anyway.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Reported-and-tested-by: "AurĂ©lien Leblond" <blablack@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci-mem.c |   17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+--- a/drivers/usb/host/xhci-mem.c
++++ b/drivers/usb/host/xhci-mem.c
+@@ -1443,15 +1443,17 @@ int xhci_endpoint_init(struct xhci_hcd *
+       ep_ctx->ep_info2 |= cpu_to_le32(xhci_get_endpoint_type(udev, ep));
+       /* Set the max packet size and max burst */
++      max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc));
++      max_burst = 0;
+       switch (udev->speed) {
+       case USB_SPEED_SUPER:
+-              max_packet = usb_endpoint_maxp(&ep->desc);
+-              ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet));
+               /* dig out max burst from ep companion desc */
+-              max_packet = ep->ss_ep_comp.bMaxBurst;
+-              ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_packet));
++              max_burst = ep->ss_ep_comp.bMaxBurst;
+               break;
+       case USB_SPEED_HIGH:
++              /* Some devices get this wrong */
++              if (usb_endpoint_xfer_bulk(&ep->desc))
++                      max_packet = 512;
+               /* bits 11:12 specify the number of additional transaction
+                * opportunities per microframe (USB 2.0, section 9.6.6)
+                */
+@@ -1459,17 +1461,16 @@ int xhci_endpoint_init(struct xhci_hcd *
+                               usb_endpoint_xfer_int(&ep->desc)) {
+                       max_burst = (usb_endpoint_maxp(&ep->desc)
+                                    & 0x1800) >> 11;
+-                      ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_burst));
+               }
+-              /* Fall through */
++              break;
+       case USB_SPEED_FULL:
+       case USB_SPEED_LOW:
+-              max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc));
+-              ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet));
+               break;
+       default:
+               BUG();
+       }
++      ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet) |
++                      MAX_BURST(max_burst));
+       max_esit_payload = xhci_get_max_esit_payload(xhci, udev, ep);
+       ep_ctx->tx_info = cpu_to_le32(MAX_ESIT_PAYLOAD_FOR_EP(max_esit_payload));