This is to explain what is (was) my problem with configuring USB
on Sony Vaio FX240.
I don't know if problems with USB on other Sony Vaio laptops are
caused by the same bug, but if your logs (see /var/log/messages)
are similar, maybe you can fix it in the same way.
This is log from broken USB (without patch):
jajo kernel: usb.c: registered new driver usbdevfs jajo kernel: usb.c: registered new driver hub jajo kernel: uhci.c: USB Universal Host Controller Interface driver v1.1 jajo kernel: PCI: Found IRQ 10 for device 00:1f.2 jajo kernel: IRQ routing conflict for 00:1f.2, have irq 9, want irq 10 jajo kernel: PCI: Setting latency timer of device 00:1f.2 to 64 jajo kernel: uhci.c: USB UHCI at I/O 0x1820, IRQ 9 jajo kernel: usb.c: new USB bus registered, assigned bus number 1 jajo kernel: hub.c: USB hub found jajo kernel: hub.c: 2 ports detected jajo kernel: PCI: Found IRQ 9 for device 00:1f.4 jajo kernel: PCI: Setting latency timer of device 00:1f.4 to 64 jajo kernel: uhci.c: USB UHCI at I/O 0x2400, IRQ 9 jajo kernel: usb.c: new USB bus registered, assigned bus number 2 jajo kernel: hub.c: USB hub found jajo kernel: hub.c: 2 ports detected jajo kernel: usb.c: registered new driver hid jajo kernel: hid-core.c: v1.8 Andreas Gal, Vojtech Pavlik <vojtech at suse.cz> jajo kernel: hid-core.c: USB HID support drivers jajo kernel: mice: PS/2 mouse device common for all mice jajo kernel: hub.c: USB new device connect on bus1/2, assigned device number 2 jajo kernel: usb_control/bulk_msg: timeout jajo kernel: usb.c: USB device not accepting new address=2 (error=-110) jajo kernel: hub.c: USB new device connect on bus1/2, assigned device number 3 jajo kernel: usb_control/bulk_msg: timeout jajo kernel: usb.c: USB device not accepting new address=3 (error=-110)
As you can see at the end, USB device does not respond to the driver.
This is because default values (stored in bios?) for
IRQ for USB is wrong. PCI driver founds IRQ 10 for USB
(PCI: Found IRQ 10 for device 00:1f.2), but all devices
should have IRQ 9.
I think Windows driver silently overrides the default value to IRQ 9.
My patch also disable this value for this particular device (PCI:
8086:2442). And then proper IRQ is set.
If your USB is not working, you can make a short test if your problem is a wrong IRQ.
My patch works works with device 8086:2442, but yours can be other. It can be easily changed. Check it with lspci, and lspci -n.
Good luck!