This problem has elements of USB, video, Handspring Visor, IBM Thinkpad,
maybe SuSE, and maybe kernel version.
I have an IBM T21 Thinkpad with the IBM USB Ultracam. I am running SuSE
7.3 (kernel 2.4.10). I am using the SuSE supplied kernel source, and I
copied ultracam.c from SuSE 2.4.16 kernel source, and applied Karl's
Ultracam patch. The only configuration change I made from SuSE supplied
was to add module support for the Ultracam. Make, modules, etc. all
goes fine, and I am running on the resulting kernel.
With this, the Ultracam works fine. I added it to modules.conf (in
place of the bttv), and it works great.
Now I turn my attention to my Handspring Visor Prism with the USB sync
cradle. It starts to sync, then fails partway through consistently. A
bit of hair pulling, reading, more hair, and I try an experiment -
instead of uhci.o, I load the usb-uhci.o module. Now the Visor syncs
without complaint, consistently.
But loading the Ultracam driver locks the system hard. Only a power off
gets out of it (thanks for journaling files systems).
Go back to uhci, Ultracam works, Visor fails partway through sync.
It seems to me that there's some improper usage of the USB calls
somewhere, in visor or ultracam, or more likely somewhere in the USB
driver chain - uhci and usb-uhci are supposed to provide the same
services aren't they? The difference is supposed to be due to the
interface to the underlying hardware, yes?
In any case, I don't have anywhere near enough knowledge of the
internals of the USB device support to know what to do where. I can
think of kludges to get around it - but I thinking there might be
something significant implemtation-wise someone want's to look at.
Maybe I just need to use the 2.4.16 kernel.
I'd be happy to supply more info, try experiments, learn more about the
systems. Please let me know.
Thanks,
Bret