Hi,
there are a lot of buggy modems.
Regards
Oliver
Signed-Off-By: Oliver Neukum <[EMAIL PROTECTED]>
You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.
===================================================================
[EMAIL PROTECTED], 2004-12-24 13:04:21+01:00, [EMAIL PROTECTED]
- yet another work around
cdc-acm.c | 15 +++++++++++++++
cdc-acm.h | 3 ++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff -Nru a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
--- a/drivers/usb/class/cdc-acm.c Fri Dec 24 13:09:42 2004
+++ b/drivers/usb/class/cdc-acm.c Fri Dec 24 13:09:42 2004
@@ -532,7 +532,17 @@
u8 call_management_function = 0;
int call_interface_num = -1;
int data_interface_num;
+ unsigned long quirks;
+ /* handle quirks deadly to normal probing*/
+ quirks = (unsigned long)id->driver_info;
+ if (quirks == NO_UNION_NORMAL) {
+ data_interface = usb_ifnum_to_if(usb_dev, 1);
+ control_interface = usb_ifnum_to_if(usb_dev, 0);
+ goto skip_normal_probe;
+ }
+
+ /* normal probing*/
if (!buffer) {
err("Wierd descriptor references");
return -EINVAL;
@@ -607,6 +617,7 @@
if (data_interface_num != call_interface_num)
dev_dbg(&intf->dev,"Seperate call control interface.
That is not fully supported.");
+skip_normal_probe:
if (usb_interface_claimed(data_interface)) { /* valid in this context */
dev_dbg(&intf->dev,"The data interface isn't available\n");
return -EBUSY;
@@ -805,6 +816,10 @@
*/
static struct usb_device_id acm_ids[] = {
+ /* quirky and broken devices */
+ { USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */
+ .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
+ },
/* control interfaces with various AT-command sets */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, 2, 1) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, 2, 2) },
diff -Nru a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
--- a/drivers/usb/class/cdc-acm.h Fri Dec 24 13:09:42 2004
+++ b/drivers/usb/class/cdc-acm.h Fri Dec 24 13:09:42 2004
@@ -125,4 +125,5 @@
#define CDC_DATA_INTERFACE_TYPE 0x0a
-
+/* constants describing various quirks and errors */
+#define NO_UNION_NORMAL 1
===================================================================
This BitKeeper patch contains the following changesets:
1.1818
## Wrapped with gzip_uu ##
M'XL( 8'S$$ [56VV[;[EMAIL PROTECTED];6QQJ(LOA8NT2= [EMAIL PROTECTED]>S+8F'0
M%&T)ML24E-(&5?]]1W(N38PF;K"Q;,@V9P[.S)PST!9<.&V'GEEF5]JR+?C#
MN'+HY5)-=9EV"UTMJKQK[)R.SHRA(S\UN?97\?Y?5FOG+[.B<B)F%',J2Y4"
M';[EMAIL PROTECTED](/O;/#3Q>?/YPQ-AK!?BJ+N3[7)8Q&K#3V2BX3MR?+=&F*
M;FEEX7)=RJXR>[EMAIL PROTECTED]@(>Q37&/.S5"A-$&:).N C[<<A6Y/;6BWB(
M%*(0 49AA&$=X2 0[ "PBWWL P]]%+X( 8,A#X<"WW(<<@Z_1(:W CJ<?83_
MMY)]IJ [EMAIL PROTECTED]:^&KL :4U5).Q/B$0L>NSTOIFL\YLOQKCD[/TSO!/;
MU.W\RDU]J?*N^HE_R+%71W%O$-=3%40SQ)D(@UF@>]-?]^L!HEI*YWR5J,X=
M=C,;^M"=UT(@[EMAIL PROTECTED]/@&5ME \YD+P $54(V]HADD4:ADIC)(!
M24"\B&;ZF";'$(-6VD\D-6)_M3J87.PY7;CL-T"18U\0<Q[7,4>,[EMAIL PROTECTED]
M?",#X"L9X$N5D>HI-:%5,[EMAIL PROTECTED])QJ=/=?T%KCA T0=DX^8FF/\&
ME"E<*8O20:*=LMF4F,"5M)FIW(J@(Y,FH*TUUL$;GVTE>I85&HY/)A?'XY/C
MR?')V=&'SY[GX3,R4<_OQ!<Z\HG=N($C!?:#*.0UC:;/5TI9VY6;2 6CUUN6
MMRHA\%(NE]>KV5S3U*XRI1V)9[5/-E:/>H%ZQE% _6!>16:<%SH!JFY^HY)W
MS6D$ ^:1JEJV^E8_B98),2X-%,;F<@F7UC0Z(S%Y-R$CV'X NI,EG?<K\I.L
MF)EWS,MFL'T;/7JLOAWXSCPOD:6D\%+;F52:0*GL238KJGQ2&OJRW?RFCNT"
M[A"B1^(OK5ENEL+;E+FA,MPBNYRL:[EMAIL PROTECTED]<&\MO2U$L<Q'U#3UG*&;-SG
M/0C;K)MI-DZ;6K/0Q>U@&\=YW^'B_./DX/#O\?[A-O_&^SU.?+YQSG%G%RC]
M2)<V(W'!IW,X,HG.V[3N3PV$M9:UB:ETQ!BJ(C/%S0:X)/FVZ3]V[Q]]5*K5
3PE7Y"*7"::(Y^P\S?$=78PD
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel