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 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel