aboutsummaryrefslogtreecommitdiffstats
path: root/usb.current
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2009-10-27 10:54:41 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-10-27 10:54:41 -0700
commit607008879414ffa8d5f424a3646cca2644119c3b (patch)
tree32c49c67c62c88b9559f644f418b1c585122f2d7 /usb.current
parentd93ada0e086cc8b5de957b5dfaeb1247489f1717 (diff)
downloadpatches-607008879414ffa8d5f424a3646cca2644119c3b.tar.gz
more patches
Diffstat (limited to 'usb.current')
-rw-r--r--usb.current/usb-option-tlaytech-tue800-support.patch40
-rw-r--r--usb.current/usb-r8a66597-hcd-fix-cannot-detect-a-device-when-uses_new_polling-is-set.patch57
-rw-r--r--usb.current/usb-serial-sierra-driver-send_setup-autopm-fix.patch82
3 files changed, 179 insertions, 0 deletions
diff --git a/usb.current/usb-option-tlaytech-tue800-support.patch b/usb.current/usb-option-tlaytech-tue800-support.patch
new file mode 100644
index 00000000000000..b3d50d9b214f83
--- /dev/null
+++ b/usb.current/usb-option-tlaytech-tue800-support.patch
@@ -0,0 +1,40 @@
+From bryan.wu@canonical.com Tue Oct 27 10:35:48 2009
+From: Bryan Wu <bryan.wu@canonical.com>
+Date: Thu, 22 Oct 2009 15:00:36 +0800
+Subject: USB: option: TLAYTECH TUE800 support
+To: smurf@smurf.noris.de
+Cc: linux-usb@vger.kernel.org, gregkh@suse.de, linux-kernel@vger.kernel.org
+Message-ID: <1256194836-15733-1-git-send-email-bryan.wu@canonical.com>
+
+
+Add ID for Tlaytech TUE800 CDMA modem to the option driver.
+
+Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
+Acked-By: Matthias Urlichs <matthias@urlichs.de>
+Cc: stable <stable@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/option.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -315,6 +315,9 @@ static int option_resume(struct usb_ser
+ #define QISDA_PRODUCT_H20_4515 0x4515
+ #define QISDA_PRODUCT_H20_4519 0x4519
+
++/* TLAYTECH PRODUCTS */
++#define TLAYTECH_VENDOR_ID 0x20B9
++#define TLAYTECH_PRODUCT_TEU800 0x1682
+
+ /* TOSHIBA PRODUCTS */
+ #define TOSHIBA_VENDOR_ID 0x0930
+@@ -593,6 +596,7 @@ static struct usb_device_id option_ids[]
+ { USB_DEVICE_AND_INTERFACE_INFO(ALINK_VENDOR_ID, ALINK_PRODUCT_3GU, 0xff, 0xff, 0xff) },
+ { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S) },
+ { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
++ { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) },
+ { } /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, option_ids);
diff --git a/usb.current/usb-r8a66597-hcd-fix-cannot-detect-a-device-when-uses_new_polling-is-set.patch b/usb.current/usb-r8a66597-hcd-fix-cannot-detect-a-device-when-uses_new_polling-is-set.patch
new file mode 100644
index 00000000000000..2ff23a249f8137
--- /dev/null
+++ b/usb.current/usb-r8a66597-hcd-fix-cannot-detect-a-device-when-uses_new_polling-is-set.patch
@@ -0,0 +1,57 @@
+From shimoda.yoshihiro@renesas.com Tue Oct 27 10:23:57 2009
+From: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+Date: Wed, 21 Oct 2009 20:33:39 +0900
+Subject: USB: r8a66597-hcd: fix cannot detect a device when uses_new_polling is set
+To: Greg Kroah-Hartman <gregkh@suse.de>
+Message-ID: <4ADEF193.30204@renesas.com>
+
+
+Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/host/r8a66597-hcd.c | 23 +++++++++++++----------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+--- a/drivers/usb/host/r8a66597-hcd.c
++++ b/drivers/usb/host/r8a66597-hcd.c
+@@ -1003,19 +1003,20 @@ static void r8a66597_check_syssts(struct
+ if (syssts == SE0) {
+ r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port));
+ r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port));
+- return;
+- }
++ } else {
++ if (syssts == FS_JSTS)
++ r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port));
++ else if (syssts == LS_JSTS)
++ r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
+
+- if (syssts == FS_JSTS)
+- r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port));
+- else if (syssts == LS_JSTS)
+- r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
++ r8a66597_write(r8a66597, ~DTCH, get_intsts_reg(port));
++ r8a66597_bset(r8a66597, DTCHE, get_intenb_reg(port));
+
+- r8a66597_write(r8a66597, ~DTCH, get_intsts_reg(port));
+- r8a66597_bset(r8a66597, DTCHE, get_intenb_reg(port));
++ if (r8a66597->bus_suspended)
++ usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
++ }
+
+- if (r8a66597->bus_suspended)
+- usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
++ usb_hcd_poll_rh_status(r8a66597_to_hcd(r8a66597));
+ }
+
+ /* this function must be called with interrupt disabled */
+@@ -1024,6 +1025,8 @@ static void r8a66597_usb_connect(struct
+ u16 speed = get_rh_usb_speed(r8a66597, port);
+ struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
+
++ rh->port &= ~((1 << USB_PORT_FEAT_HIGHSPEED) |
++ (1 << USB_PORT_FEAT_LOWSPEED));
+ if (speed == HSMODE)
+ rh->port |= (1 << USB_PORT_FEAT_HIGHSPEED);
+ else if (speed == LSMODE)
diff --git a/usb.current/usb-serial-sierra-driver-send_setup-autopm-fix.patch b/usb.current/usb-serial-sierra-driver-send_setup-autopm-fix.patch
new file mode 100644
index 00000000000000..6aa61e5a1d0af9
--- /dev/null
+++ b/usb.current/usb-serial-sierra-driver-send_setup-autopm-fix.patch
@@ -0,0 +1,82 @@
+From epasheva@sierrawireless.com Tue Oct 27 10:12:48 2009
+From: Elina Pasheva <epasheva@sierrawireless.com>
+Date: Fri, 16 Oct 2009 12:04:54 -0700
+Subject: USB: serial: sierra driver send_setup() autopm fix
+To: <gregkh@suse.de>
+Cc: <epasheva@sierrawireless.com>, <rfiler@sierrawireless.com>
+Message-ID: <1255719894.23492.5.camel@Linuxdev4-laptop>
+
+
+From: Elina Pasheva <epasheva@sierrawireless.com>
+
+This patch presents a fix for the autosuspend feature implementation in
+sierra usb serial driver for function sierra_send_setup(). Because it
+is possible to call sierra_send_setup() before sierra_open() or after
+sierra_close() we added a get/put interface activity to assure that the
+usb control can happen even when the device is autosuspended.
+
+Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
+Tested-by: Matthew Safar <msafar@sierrawireless.com>
+Cc: stable <stable@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/usb/serial/sierra.c | 24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+--- a/drivers/usb/serial/sierra.c
++++ b/drivers/usb/serial/sierra.c
+@@ -296,7 +296,6 @@ struct sierra_port_private {
+ int dsr_state;
+ int dcd_state;
+ int ri_state;
+-
+ unsigned int opened:1;
+ };
+
+@@ -306,6 +305,8 @@ static int sierra_send_setup(struct usb_
+ struct sierra_port_private *portdata;
+ __u16 interface = 0;
+ int val = 0;
++ int do_send = 0;
++ int retval;
+
+ dev_dbg(&port->dev, "%s\n", __func__);
+
+@@ -324,10 +325,7 @@ static int sierra_send_setup(struct usb_
+ */
+ if (port->interrupt_in_urb) {
+ /* send control message */
+- return usb_control_msg(serial->dev,
+- usb_rcvctrlpipe(serial->dev, 0),
+- 0x22, 0x21, val, interface,
+- NULL, 0, USB_CTRL_SET_TIMEOUT);
++ do_send = 1;
+ }
+ }
+
+@@ -339,12 +337,18 @@ static int sierra_send_setup(struct usb_
+ interface = 1;
+ else if (port->bulk_out_endpointAddress == 5)
+ interface = 2;
+- return usb_control_msg(serial->dev,
+- usb_rcvctrlpipe(serial->dev, 0),
+- 0x22, 0x21, val, interface,
+- NULL, 0, USB_CTRL_SET_TIMEOUT);
++
++ do_send = 1;
+ }
+- return 0;
++ if (!do_send)
++ return 0;
++
++ usb_autopm_get_interface(serial->interface);
++ retval = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
++ 0x22, 0x21, val, interface, NULL, 0, USB_CTRL_SET_TIMEOUT);
++ usb_autopm_put_interface(serial->interface);
++
++ return retval;
+ }
+
+ static void sierra_set_termios(struct tty_struct *tty,