On Thu, Apr 06, 2006 at 03:27:39PM -0400, Jamie Guinan wrote:
> 
> Hi,
> 
> While the new lh7_udc driver performs great when plugged into a 
> Linux host, I found that plugging into WinXP with g_ether doesn't
> quite work.  On the gadget side I see,
> 
>   usb0: full speed config #2: 100 mA, Ethernet Gadget, using RNDIS
>   rndis_msg_parser: unknown RNDIS message 0x00430209 len -1073151486
>   usb0: rndis_command_complete: rndis parse error -524
> 
> On the WinXP side, I ran usbsnoop with,
> 
>   a) linux-2.6.14, patched lh7a40x_udc driver
>   b) linux-2.6.16-rc4-ms28, new lh7_udc driver
> 
> (I know that's changing 2 things at once, but I didn't see any major
>  changes in the g_ether/rndis code, and I wasn't up to porting
>  my lh7a40x_udc hacks to 2.6.16).
> 
> In both configs I have,
> 
>   CONFIG_USB_ETH=m
>   CONFIG_USB_ETH_RNDIS=y
> 
> In both cases, rhe first 4 URB transactions were identical (except for 
> bcdDevice == [15 02] for new driver, and [09 02] for the old one), but 
> on the 5th URB (URB_FUNCTION_CLASS_INTERFACE) the response from 
> lh7_udc has TransferBufferLength == 0, after which USB traffic comes 
> to a dead stop.  With lh7a40x_udc, I see TransferBufferLength == 0x18, 
> and things roll merrily along.

Suspicious.  I won't be able to look at this for at least a week.
And, it's disappointing that the USB tests weren't enough to vet the
driver.  Moreover, I don't know if I'll be able to run the test you're
doing since I don't have any MSWindows hosts.

It would help me to see the raw data of the urbs since I'm a little
more familiar with the format that way.  The TALK stuff might help as
well.

> Log excerpts:
> 
> <lh7a40x_udc>
> [125 ms]  >>>  URB 5 going down  >>> 
> -- URB_FUNCTION_CLASS_INTERFACE:
>   TransferFlags          = 00000000 (USBD_TRANSFER_DIRECTION_OUT, 
> ~USBD_SHORT_TRANSFER_OK)
>   TransferBufferLength = 00000018
>   TransferBuffer       = 84e3c000
>   TransferBufferMDL    = 00000000
>     00000000: 02 00 00 00 18 00 00 00 01 00 00 00 01 00 00 00
>     00000010: 00 00 00 00 00 40 00 00
>   UrbLink                 = 00000000
>   RequestTypeReservedBits = 00000000
>   Request                 = 00000000
>   Value                   = 00000000
>   Index                   = 00000000
> [131 ms] UsbSnoop - MyInternalIOCTLCompletion(f799fdb0) : fido=00000000, 
> Irp=850fd008, Context=850493d0, IRQL=2
> [131 ms]  <<<  URB 5 coming back  <<< 
> -- URB_FUNCTION_CONTROL_TRANSFER:
>   PipeHandle           = 8507d700
>   TransferFlags        = 0000000a (USBD_TRANSFER_DIRECTION_OUT, 
> USBD_SHORT_TRANSFER_OK)
>   TransferBufferLength = 00000018
>   TransferBuffer       = 84e3c000
>   TransferBufferMDL    = 86253f88
>   UrbLink              = 00000000
>   SetupPacket          =
>     00000000: 21 00 00 00 00 00 18 00
> [131 ms] UsbSnoop - DispatchAny(f799e610) : IRP_MJ_INTERNAL_DEVICE_CONTROL
> [131 ms] UsbSnoop - MyDispatchInternalIOCTL(f799fe80) : fdo=850b3030, 
> Irp=85bf52e8, IRQL=0
> </lh7a40x_udc>
> 
> 
> <lh7_udc>
> [118 ms]  >>>  URB 5 going down  >>> 
> -- URB_FUNCTION_CLASS_INTERFACE:
>   TransferFlags          = 00000000 (USBD_TRANSFER_DIRECTION_OUT, 
> ~USBD_SHORT_TRANSFER_OK)
>   TransferBufferLength = 00000018
>   TransferBuffer       = 85873000
>   TransferBufferMDL    = 00000000
>     00000000: 02 00 00 00 18 00 00 00 01 00 00 00 01 00 00 00
>     00000010: 00 00 00 00 00 40 00 00
>   UrbLink                 = 00000000
>   RequestTypeReservedBits = 00000000
>   Request                 = 00000000
>   Value                   = 00000000
>   Index                   = 00000000
> [5165 ms] UsbSnoop - MyInternalIOCTLCompletion(f7927db0) : fido=00000000, 
> Irp=84ff9008, Context=863c88b0, IRQL=2
> [5165 ms]  <<<  URB 5 coming back  <<< 
> -- URB_FUNCTION_CONTROL_TRANSFER:
>   PipeHandle           = 850048f8
>   TransferFlags        = 0000000a (USBD_TRANSFER_DIRECTION_OUT, 
> USBD_SHORT_TRANSFER_OK)
>   TransferBufferLength = 00000000
>   TransferBuffer       = 85873000
>   TransferBufferMDL    = 861a12d8
>   UrbLink              = 00000000
>   SetupPacket          =
>     00000000: 21 00 00 00 00 00 18 00
> [10166 ms] UsbSnoop - DispatchAny(f7926610) : IRP_MJ_PNP 
> (IRP_MN_REMOVE_DEVICE)
> [10166 ms] UsbSnoop - MyDispatchPNP(f7928ee0) : IRP_MJ_PNP 
> (IRP_MN_REMOVE_DEVICE)
> [10166 ms] UsbSnoop - RemoveDevice(f7928e90) : fido=8503a108 pdx=8503a1c0
> [10167 ms] UsbSnoop - DriverUnload(f7928de0) : DriverObject 8619a318, IRQL=0
> [10167 ms] Driver unloaded!
> </lh7_udc>
> 
> Next I can try turning on TALK in lh7_udc.c, if that might be helpful.
> 
> Full usbsnoop logs at,
> 
>    http://www.bluebutton.com/misc/lh7usb/
> 
> -Jamie
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> linux-usb-devel@lists.sourceforge.net
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
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