All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gernot Hillier <gernot@hillier.de>
To: Oliver Neukum <oliver@neukum.org>
Cc: Matthias Urlichs <smurf@smurf.noris.de>,
	Greg Kroah-Hartman <gregkh@suse.de>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Add support for Mobilcom Debitel USB UMTS Surf-Stick to option driver
Date: Fri, 27 Nov 2009 13:49:23 +0100	[thread overview]
Message-ID: <4B0FCAD3.9000801@hillier.de> (raw)
In-Reply-To: <200911241919.10895.oliver@neukum.org>

Oliver Neukum wrote:
> Am Dienstag, 24. November 2009 19:00:33 schrieb Gernot Hillier:
>> As you might have expected, I have no detailed spec about the device 
>> which could explain this. I can only say that the device reacts on AT 
>> commands on ttyUSB1 and ttyUSB2 while ttyUSB0 seems to serve other
>>  purposes.
>>
>> What do you think - shall I disable sending the usb control message 
>> depending on bInterfaceNumber? Any better ideas?
> 
> I have no better idea.
> 
> 	Regards
> 		Oliver
> 

Ok, so here comes the update. The patch was tested to apply against 2.6.31
as well as 2.6-git. Please apply if you agree...

----------- SNIP -------------
From: Gernot Hillier <gernot@hillier.de>

This patch adds the vendor and device id for the Mobilcom Debitel UMTS surf
stick (a.k.a. 4G Systems XSStick W14, MobiData MBD-200HU, ...).

To see these ids, you need to switch the stick to modem operation first
with the help of usb_modeswitch. This makes it switch from 1c9e:f000 to
1c9e:9603 and thus be recognized by the option driver.

In addition, this device seems to ignore setting of RTS/DTR by option_send_
setup and doesn't answer the usb_control_msg leading to a 5 s timeout
(USB_CTRL_SET_TIMEOUT) in userspace open() and other operations. As this
confused several impatient userspace applications like Minicom and
ModemManager, I return immediately instead.

Signed-off-by: Gernot Hillier <gernot@hillier.de>

--- linux-source-2.6.31/drivers/usb/serial/option.c.orig	2009-11-24 08:17:31.000000000 +0100
+++ linux-source-2.6.31/drivers/usb/serial/option.c	2009-11-27 12:48:15.000000000 +0100
@@ -337,6 +337,10 @@
 #define AIRPLUS_VENDOR_ID			0x1011
 #define AIRPLUS_PRODUCT_MCD650			0x3198
 
+/* 4G Systems products */
+#define FOUR_G_SYSTEMS_VENDOR_ID		0x1c9e
+#define FOUR_G_SYSTEMS_PRODUCT_W14		0x9603
+
 static struct usb_device_id option_ids[] = {
 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -600,6 +604,7 @@
 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S) },
 	{ USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
 	{ USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) },
+	{ USB_DEVICE(FOUR_G_SYSTEMS_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14) },
 	{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, option_ids);
@@ -1171,6 +1176,13 @@
 	int val = 0;
 	dbg("%s", __func__);
 
+	/* 4G Systems W14 simply ignores this message on interface 0 & 1 
+	   and would cause long timeouts when calling usb_control_msg()  */
+	if (serial->dev->descriptor.idVendor == FOUR_G_SYSTEMS_VENDOR_ID &&
+		serial->dev->descriptor.idProduct == FOUR_G_SYSTEMS_PRODUCT_W14 &&
+		(ifNum == 0 || ifNum == 1) )
+		return -EIO;
+
 	portdata = usb_get_serial_port_data(port);
 
 	if (portdata->dtr_state)



  reply	other threads:[~2009-11-27 12:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-22  8:08 [PATCH] Add support for Mobilcom Debitel USB UMTS Surf-Stick to option driver Gernot Hillier
2009-11-22  8:20 ` Oliver Neukum
2009-11-24 18:00   ` Gernot Hillier
2009-11-24 18:19     ` Oliver Neukum
2009-11-27 12:49       ` Gernot Hillier [this message]
2009-11-27 13:24         ` Matthias Urlichs
2009-11-27 18:11           ` Gernot Hillier
2009-11-27 18:53             ` Greg KH
2009-12-08  6:20           ` Gernot Hillier
2009-12-08  7:34             ` Matthias Urlichs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B0FCAD3.9000801@hillier.de \
    --to=gernot@hillier.de \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=oliver@neukum.org \
    --cc=smurf@smurf.noris.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.