[Balloon] sa1100_udc gadget driver of 2.6.12-tcl1 awakes

Nick Bane nick at cecomputing.co.uk
Fri Jun 2 18:45:59 BST 2006


I have at long last spotted the main problem preventing the the 2.6 
kernel sa1100_udc driver from being used and therfore being a 
showstopper for Toby Churchill Ltd being able to use the 2.6 kernel in 
its products.
It was of course obvious in retrospect.

The endpoint naming conventions in the shell sa1100_udc.c was very 
similar to the pxa driver and I was beguiled by its symmetry. These by 
default have the first and second bulk endpoints declared as tx and rx. 
The sa1100 bulk endpoints are fixed and the other way round as rx and 
tx. Accordingly, ep[1] was mapped ep2 and ep[2] was mapped to ep1 (in 
the old usbf naming scheme) and were expected to work ok but they didn't.

After laborious inspection and dma frustration it dawned on me that 
ep[1] was actually enumerated to endpoint address #1 not #2 by the 2.6 
gadget registration process (the 2.4 version had embedded addressing 
that changed in 2.6) which therefore swapped the endpoint addresses. For 
example, the ep[2] which was being used as ep1 had an address of 2 and 
therefore was the tx endpoint but had the attribute of OUT which is a 
slave input - confusing isn't it?

Fixing that opened the floodgates for data and I am able to tx and rx 
packets though there are still some problems. I hope to have this 
running properly by the end of the weekend whereupon I will post news to 
the list.

Nick Bane




More information about the Balloon mailing list