For what it's worth I'm including my UDC driver as a patch against your 2.4 gadget tree. I've only tried it with g_zero and g_file_storage so those are the only changed gadgets. This patch doesn't include any changes for stall free mass storage operation. I'm sure there are lots of bugs in this driver, let me know what you think.
Thanks! It's especially cool to see another UDC ... :)
Thanks.
What kind of bulk throughput are you getting? With double buffered
PIO I've seen over 800 KB/sec; but then I tend to measure using TTCP,
which adds some level of hiccups.
I've just tested with usbtest and I'm getting about 500KB/sec (in either direction, bulk-in is slightly faster).
Perhaps I'm limited by the speed of my CPU, I'm only running at about 66MHz, which is half of the maximum speed of the device.
The main thing that makes me wonder "bug??" is the "ep3" handling, which is incomplete. That's the 8-byte Interrupt-IN endpoint that seems to be a "low priority" IRQ. If it does data toggle, then it should be called "ep3in-bulk", and you could test it by just using it as a substitute in for "ep2in-bulk" (except that it's got a very small maxpacket). If it can't toggle, call it "ep3in-int" and expect to write custom test code.
I've just implemented ep3 and have tried to test it using g_zero (substituting "ep3in-bulk" for "ep2in-bulk" as you suggest) but it has caused the host usbtest driver to crash when I plugged it in:
hub 1-0:0: new USB device on port 1, assigned address 20
Unable to handle kernel NULL pointer dereference at virtual address 00000003
printing eip:
d0af7050
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<d0af7050>] Not tainted
EFLAGS: 00010287
EIP is at get_endpoints+0x40/0x130 [usbtest]
eax: 000000a0 ebx: cd36c470 ecx: 00000000 edx: 00000000
esi: cd36c470 edi: 00000000 ebp: 00000002 esp: cf857e18
ds: 007b es: 007b ss: 0068
Process khubd (pid: 2407, threadinfo=cf856000 task=cf886cc0)
Stack: cd36c2c0 cf2df800 d0afb14c 00000004 00000000 cd36c2c0 cf2df800 d0afb14c
d0afb1e4 d0af8ed0 cd36c2c0 c3d6e480 d0af90fc cfe568ac cf2df804 00000000
00000380 cd36c2c8 d0af9105 d0af9105 c034b1a0 cf857ec4 c6aef820 00000000
Call Trace:
[<d0af8ed0>] usbtest_probe+0x240/0x2f0 [usbtest]
[<d0a59093>] usb_probe_interface+0x73/0xa0 [usbcore]
[<c021ea9f>] bus_match+0x3f/0x70
[<c021eb1f>] device_attach+0x4f/0xb0
[<c021ed2b>] bus_add_device+0x5b/0xa0
[<c021da57>] device_add+0xc7/0x100
[<d0a5a282>] usb_new_device+0x362/0x4a0 [usbcore]
[<d0a5c471>] hub_port_connect_change+0x1d1/0x340 [usbcore]
[<d0a5c916>] hub_events+0x336/0x3a0 [usbcore]
[<d0a5c9b5>] hub_thread+0x35/0xf0 [usbcore]
[<c0109312>] ret_from_fork+0x6/0x14
[<c01189b0>] default_wake_function+0x0/0x30
[<d0a5c980>] hub_thread+0x0/0xf0 [usbcore]
[<c0107255>] kernel_thread_helper+0x5/0x10
Code: 80 7a 03 02 74 1f 41 83 c2 14 39 c1 72 f2 45 83 c3 18 3b 6c
Julian
------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel