Hi all,
Sorry for cross-posting to so many different lists, but I figure between
all of them, I might find someone who could possible help out.
First off, the Linux USB Visor driver has for quite some time had a
problem with hanging up during a full backup with a OHCI host
controller. Recently the same problem is happening with the UHCI driver
too.
I have been trying to figure out why for quite some time now, and
finally think I have narrowed down the problem, but I really don't like
it.
In a nutshell, it doesn't look like the pilot-xfer program likes sending
data at high speeds (greater than normal serial port transfers). What I
am seeing is pilot-xfer just hang, all of the data that it sent out to
the Visor was sent properly, and all of the data received from the Visor
was received successfully (thanks to Randy Dunlap for letting me use his
USB CATC analyzer to help verify this.)
UHCI is now showing this problem as it has been sped up a bunch from the
original implementation (which would normally be a good thing.)
I have a hacked source tree of the pilot-link package that shows all
data sent and received (it just enables a few debug statements that are
buried in the code) if anyone else wants to verify this.
To verify this is a speed issue, try redirecting your kernel debug log
to a disk file, turn on all usb-serial debugging and watch your backups
cleanly work (and listen to your disk spin :)
And also PPP from the Visor over the USB link seems to work just fine.
This is the same code path through the driver as a pilot-xfer transfer
takes.
So where to go from here:
Are there any other pilot-xfer like programs that don't use the same
codebase as pilot-xfer? Any Java implementations or other non C
languages maybe?
I briefly looked at the pilot-link package from Hollis Blanchard
(available at
http://www.andrew.cmu.edu/~hollis/palm/clean-pilot-link.tgz ) but it
doesn't seem to compile the end pilot-xfer program, but just is a
cleanup of the pilot libraries. Is there a way to build pilot-xfer using
these libraries?
Are there any pilot-xfer hackers out there that I could work with in
trying to fix this problem? I don't really want to have to debug this
codebase by myself.
And I guess as last resort, is there a pilot protocol reference
available anywhere?
Any help, second opinions, comments, and other assorted mutterings are
greatly appreciated, and encouraged.
thanks,
greg k-h
--
greg@(kroah|wirex).com don't trust programmers?
complete StackGuard distro at
immunix.org