our company uses the FTDI_SIO based USB 2.0 printer.
This printer has "ill habits" so that sometimes it gets stuck and no longer
replies to usb_control_msg()-es.
We had a "fix" for this behaviour to change 2 USB related modules within the
1.) FTDI_SIO, we changed this to "overrule" the regular
usb_control_msg() with our own wrapper. Within this wrapper we counted within 60 second
the number of unacked usb_control_msg()s and if that reached 10, we restarted the complete
USB HUB owning our printer (we had to kickstart the HUB instead of the printer as
restarting the printer didn't help).
2.) HUB.C, To be able to restart the HUB we had to change this as well to make
usb_kick_khubd (as that was used within FTDI to restart the HUB).
Both of these changes seemd to flawlessly work without full kernel recompilation as both
of the affected codes were built by default as "modules" into the OpenSuse
But it has changed in 11.2 because of USB/boot speed-up purposes.
Can any of you propose any alternative solution to our problem so that we :
* don't need to do a full kernel recompliation, thus we can use the plain, vanilla
kernel delivered on the standard 11.2 distro
* the changes still work as our patch works now, i.e. without any kind of user
interaction, automatically we can kickstart a given USB HUB which owns a given device (no
clue, but maybe we could sniff /proc/bus/usb/devices and do a USBDEVFS_RESET on the owner
of our device?)
Thanks in advance,
To unsubscribe, e-mail: opensuse-kernel+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-kernel+help(a)opensuse.org