Hi,
Our
application runs on Linux platform. Mobiles are connected to system USB
ports using hubs. The application communicates with these mobiles. We
modified the usb-serial.c driver under ....linux/drivers/usb/serial/
to suit our application. One functionality of the mobile which needs to be
supported by the application is Hardware reset( swith off the mobile and switch
it on again).
The
kernel version being used is 2.6.16.13. Automated Hardware reset tests on 2
mobiles for 200 iterations were successful. But when tried the same tests
with 4 mobiles, sometimes it was successful and sometimes the mobiles are
getting disconnected after 30-40 iterations of tests. In case of mobile
disconnection, physically mobiles are in proper state, but the core is not able
to detect the mobiles (the mobiles are not listed in " /proc/bus/usb/devices"),
but the hubs are still detected.
An
observation is, when the disconnection problem is observed, unplugging and
plugging back the cable from system USB port is helping to get back the
devices.
Error
messages observed in /var/log/messages are:
usb 1-1.1.1: khubd timed out on ep0in
len=0/64 |
usb
1-1.1.1: khubd timed out on ep0out
len=0/0
usb 1-1.1.1: device descriptor read/64, error
-110 usb 1-1.1.2: device not accepting address 127, error
-110 hub 1-1.1:1.0:
port 1 not enabled, trying reset
again... hub 1-1.1:1.0: Cannot enable port 1. Maybe the USB cable is bad?
Please share your ideas to solve this issue.
Thanks & Regards, Sreevidya |