> The next step is making this device actually do something.
    
    Well, if you need to talk to that endpoint, then you'll need to kludge
    it by hacking the core to ignore the wMaxPacketSize value and hardcoding
    it to another value.

It is not wMaxPacketSize that is zero, it is dev->epmaxpacketin/out
that is zero. So, the bug is perhaps more in kernel code than in
the device. Must read some more code to see who is responsible
for setting dev->epmaxpacketin/out.

T:  Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=07cc ProdID=0003 Rev= 0.00
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
I:  If#= 0 Alt= 1 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=10ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=88(I) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=08(O) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=89(I) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=09(O) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=8a(I) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=0a(O) Atr=01(Isoc) MxPS=  16 Ivl=1ms
I:  If#= 0 Alt= 2 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=10ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=88(I) Atr=01(Isoc) MxPS= 256 Ivl=1ms
E:  Ad=08(O) Atr=01(Isoc) MxPS= 256 Ivl=1ms
E:  Ad=89(I) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=09(O) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=8a(I) Atr=01(Isoc) MxPS=  16 Ivl=1ms
E:  Ad=0a(O) Atr=01(Isoc) MxPS=  16 Ivl=1ms

    
    > Also, your patch on 2.5 would cause urbs to leak if that if () call was
    > ever true.

    How so?

You made the return follow

        /* increment the reference count of the urb */
        urb = usb_get_urb(urb);

without decrementing.

Andries


_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to