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

Reply via email to