Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d853d872c14b9adc4adad29e56cd378b291f86e0
Commit:     d853d872c14b9adc4adad29e56cd378b291f86e0
Parent:     63f991b2871bdb1431e8ff62cae2b7b94b4e5b0c
Author:     Johann Wilhelm <[EMAIL PROTECTED]>
AuthorDate: Wed Sep 5 13:49:29 2007 +0200
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 14:55:24 2007 -0700

    USB: usb-storage: Initialize Huawei E220 properly
    
    This is a reworked version of this patch:
    
http://www.mail-archive.com/linux-usb-devel%40lists.sourceforge.net/msg55094/activate_huawei_dev.patch
    
    That properly initializes the HUAWEI E220 devices into multi-port mode.
    
    Signed-off-by: Johann Wilhelm <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/storage/initializers.c |   14 ++++++++++++++
 drivers/usb/storage/initializers.h |    3 +++
 drivers/usb/storage/unusual_devs.h |   11 +++++++++++
 3 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/storage/initializers.c 
b/drivers/usb/storage/initializers.c
index 3a41740..ee5b42a 100644
--- a/drivers/usb/storage/initializers.c
+++ b/drivers/usb/storage/initializers.c
@@ -90,3 +90,17 @@ int usb_stor_ucr61s2b_init(struct us_data *us)
 
        return (res ? -1 : 0);
 }
+
+/* This places the HUAWEI E220 devices in multi-port mode */
+int usb_stor_huawei_e220_init(struct us_data *us)
+{
+       int result;
+
+       us->iobuf[0] = 0x1;
+       result = usb_stor_control_msg(us, us->send_ctrl_pipe,
+                                     USB_REQ_SET_FEATURE,
+                                     USB_TYPE_STANDARD | USB_RECIP_DEVICE,
+                                     0x01, 0x0, us->iobuf, 0x1, 1000);
+       US_DEBUGP("usb_control_msg performing result is %d\n", result);
+       return (result ? 0 : -1);
+}
diff --git a/drivers/usb/storage/initializers.h 
b/drivers/usb/storage/initializers.h
index e2967a4..ad3ffd4 100644
--- a/drivers/usb/storage/initializers.h
+++ b/drivers/usb/storage/initializers.h
@@ -47,3 +47,6 @@ int usb_stor_euscsi_init(struct us_data *us);
 /* This function is required to activate all four slots on the UCR-61S2B
  * flash reader */
 int usb_stor_ucr61s2b_init(struct us_data *us);
+
+/* This places the HUAWEI E220 devices in multi-port mode */
+int usb_stor_huawei_e220_init(struct us_data *us);
diff --git a/drivers/usb/storage/unusual_devs.h 
b/drivers/usb/storage/unusual_devs.h
index c6b78ba..94b1dd2 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1463,6 +1463,17 @@ UNUSUAL_DEV(  0x1210, 0x0003, 0x0100, 0x0100,
                US_SC_DEVICE, US_PR_DEVICE, NULL,
                US_FL_IGNORE_RESIDUE ),
 
+/* Reported by fangxiaozhi <[EMAIL PROTECTED]>
+ * and by linlei <[EMAIL PROTECTED]>
+ * Patch reworked by Johann Wilhelm <[EMAIL PROTECTED]>
+ * This brings the HUAWEI E220 devices into multi-port mode
+ */
+UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+
 /* Reported by Vilius Bilinkevicius <vilisas AT xxx DOT lt) */
 UNUSUAL_DEV(  0x132b, 0x000b, 0x0001, 0x0001,
                "Minolta",
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to