summaryrefslogtreecommitdiffstats
path: root/drivers/usb/storage/initializers.c
diff options
context:
space:
mode:
authorJohann Wilhelm <johann.wilhelm@student.tugraz.at>2007-09-05 13:49:29 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-12 14:55:24 -0700
commitd853d872c14b9adc4adad29e56cd378b291f86e0 (patch)
tree7304314552d5b4e27d155797d6b56c1a4aa720f7 /drivers/usb/storage/initializers.c
parent63f991b2871bdb1431e8ff62cae2b7b94b4e5b0c (diff)
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 <johann.wilhelm@student.tugraz.at> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/storage/initializers.c')
-rw-r--r--drivers/usb/storage/initializers.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/usb/storage/initializers.c b/drivers/usb/storage/initializers.c
index 3a41740cad9..ee5b42aa536 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);
+}