rpms/kernel/F-8 linux-2.6-usb-huawei-fix-init-in-modem-mode.patch, 1.1, 1.2 linux-2.6-usb-storage-initialize-huawei-e220-properly.patch, 1.2, 1.3

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Fri Dec 21 23:30:48 UTC 2007


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28888

Modified Files:
	linux-2.6-usb-huawei-fix-init-in-modem-mode.patch 
	linux-2.6-usb-storage-initialize-huawei-e220-properly.patch 
Log Message:
replace the right patch this time


linux-2.6-usb-huawei-fix-init-in-modem-mode.patch:

Index: linux-2.6-usb-huawei-fix-init-in-modem-mode.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-usb-huawei-fix-init-in-modem-mode.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-usb-huawei-fix-init-in-modem-mode.patch	29 Nov 2007 00:25:06 -0000	1.1
+++ linux-2.6-usb-huawei-fix-init-in-modem-mode.patch	21 Dec 2007 23:30:38 -0000	1.2
@@ -1,59 +1,36 @@
-bz #253096
+Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
+Commit:     b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
+Parent:     8be27c2de64e95c3da12a4b002f623570b039874
+Author:     Jaime Velasco Juan <jsagarribay at gmail.com>
+AuthorDate: Fri Nov 30 16:30:11 2007 +0000
+Committer:  Greg Kroah-Hartman <gregkh at suse.de>
+CommitDate: Mon Dec 17 10:47:15 2007 -0800
 
-diff -urp -X dontdiff linux-2.6.23.1-42.fc8/drivers/usb/serial/option.c linux-2.6.23.1-42.fc8.e220.1/drivers/usb/serial/option.c
---- linux-2.6.23.1-42.fc8/drivers/usb/serial/option.c	2007-10-09 13:31:38.000000000 -0700
-+++ linux-2.6.23.1-42.fc8.e220.1/drivers/usb/serial/option.c	2007-11-27 21:36:11.000000000 -0800
-@@ -448,7 +448,7 @@ static void option_indat_callback(struct
- 			err = usb_submit_urb(urb, GFP_ATOMIC);
- 			if (err)
- 				printk(KERN_ERR "%s: resubmit read urb failed. "
--					"(%d)", __FUNCTION__, err);
-+					"(%d)\n", __FUNCTION__, err);
- 		}
- 	}
- 	return;
-@@ -728,6 +728,35 @@ static int option_send_setup(struct usb_
- 	return 0;
- }
- 
-+static void option_start_huawei(struct usb_serial *serial)
-+{
-+	struct usb_device *dev = serial->dev;
-+	char *buf;
-+	int rc;
-+
-+	if (!(le16_to_cpu(dev->descriptor.idVendor) == HUAWEI_VENDOR_ID &&
-+	    le16_to_cpu(dev->descriptor.idProduct) == HUAWEI_PRODUCT_E220))
-+		return;
-+
-+	if ((buf = kmalloc(1, GFP_KERNEL)) == 0)
-+		goto err_buf;
-+
-+	buf[0] = 0x1;
-+	rc = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
-+		USB_REQ_SET_FEATURE, USB_TYPE_STANDARD | USB_RECIP_DEVICE,
-+		0x01, 0x0, buf, 1, 1000);
-+	if (rc) {
-+		printk(KERN_ERR "%s: HUAWEI E220 setup failed (%d)\n",
-+		    __FUNCTION__, rc);
-+	}
-+
-+	kfree(buf);
-+	return;
-+
-+err_buf:
-+	;
-+}
-+
- static int option_startup(struct usb_serial *serial)
- {
- 	int i, err;
-@@ -736,6 +765,8 @@ static int option_startup(struct usb_ser
- 
- 	dbg("%s", __FUNCTION__);
- 
-+	option_start_huawei(serial);
-+
- 	/* Now setup per port private data */
- 	for (i = 0; i < serial->num_ports; i++) {
- 		port = serial->port[i];
+    USB: option: Bind to the correct interface of the Huawei E220
+    
+    This fixes a bunch of problems we are having with the Huawei devices...
+    
+    
+    Signed-off-by: Oliver Neukum <oneukum at suse.de>
+    Signed-off-by: Jaime Velasco Juan <jsagarribay at gmail.com>
+    Signed-off-by: Pete Zaitcev <zaitcev at redhat.com>
+    Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ drivers/usb/serial/option.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
+index 4590124..d1185f5 100644
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -158,8 +158,8 @@ static struct usb_device_id option_ids[] = {
+ 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
+ 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
+ 	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
+-	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) },
+-	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS) },
++	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
++	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
+ 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin XS620/S640 */
+ 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin S620 */
+ 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin EX720 */

linux-2.6-usb-storage-initialize-huawei-e220-properly.patch:

Index: linux-2.6-usb-storage-initialize-huawei-e220-properly.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-usb-storage-initialize-huawei-e220-properly.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-usb-storage-initialize-huawei-e220-properly.patch	21 Dec 2007 23:11:50 -0000	1.2
+++ linux-2.6-usb-storage-initialize-huawei-e220-properly.patch	21 Dec 2007 23:30:38 -0000	1.3
@@ -1,36 +1,76 @@
-Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
-Commit:     b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
-Parent:     8be27c2de64e95c3da12a4b002f623570b039874
-Author:     Jaime Velasco Juan <jsagarribay at gmail.com>
-AuthorDate: Fri Nov 30 16:30:11 2007 +0000
-Committer:  Greg Kroah-Hartman <gregkh at suse.de>
-CommitDate: Mon Dec 17 10:47:15 2007 -0800
-
-    USB: option: Bind to the correct interface of the Huawei E220
-    
-    This fixes a bunch of problems we are having with the Huawei devices...
-    
-    
-    Signed-off-by: Oliver Neukum <oneukum at suse.de>
-    Signed-off-by: Jaime Velasco Juan <jsagarribay at gmail.com>
-    Signed-off-by: Pete Zaitcev <zaitcev at redhat.com>
-    Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+From johann.wilhelm at student.tugraz.at  Sun Sep  9 08:19:38 2007
+From: Johann Wilhelm <johann.wilhelm at student.tugraz.at>
+Date: Wed, 05 Sep 2007 13:49:29 +0200
+Subject: USB: usb-storage: Initialize Huawei E220 properly
+To: linux-usb-devel at lists.sourceforge.net
+Cc: greg at kroah.com, drussell at redhat.com
+Message-ID: <20070905134929.5fv51ji2v40gkw0c at webmail.tugraz.at>
+Content-Disposition: inline
+
+bz 253096
+
+From: Johann Wilhelm <johann.wilhelm at student.tugraz.at>
+
+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 at student.tugraz.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
 ---
- drivers/usb/serial/option.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ drivers/usb/storage/initializers.c |   14 ++++++++++++++
+ drivers/usb/storage/initializers.h |    3 +++
+ drivers/usb/storage/unusual_devs.h |   11 +++++++++++
+ 3 files changed, 28 insertions(+)
 
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 4590124..d1185f5 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -158,8 +158,8 @@ static struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
- 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
- 	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
--	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) },
--	{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin XS620/S640 */
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin S620 */
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin EX720 */
+--- linux-2.6.22.noarch.orig/drivers/usb/storage/initializers.c
++++ linux-2.6.22.noarch/drivers/usb/storage/initializers.c
+@@ -90,3 +90,17 @@ int usb_stor_ucr61s2b_init(struct us_dat
+ 
+ 	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);
++}
+--- linux-2.6.22.noarch.orig/drivers/usb/storage/initializers.h
++++ linux-2.6.22.noarch/drivers/usb/storage/initializers.h
+@@ -47,3 +47,6 @@ int usb_stor_euscsi_init(struct us_data 
+ /* 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);
+--- linux-2.6.22.noarch.orig/drivers/usb/storage/unusual_devs.h
++++ linux-2.6.22.noarch/drivers/usb/storage/unusual_devs.h
+@@ -1394,6 +1394,17 @@ UNUSUAL_DEV(  0x1210, 0x0003, 0x0100, 0x
+ 		US_SC_DEVICE, US_PR_DEVICE, NULL,
+ 		US_FL_IGNORE_RESIDUE ),
+ 
++/* Reported by fangxiaozhi <fangxiaozhi60675 at huawei.com>
++ * and by linlei <linlei83 at huawei.com>
++ * Patch reworked by Johann Wilhelm <johann.wilhelm at student.tugraz.at>
++ * 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",




More information about the fedora-extras-commits mailing list