On Mon, Jun 11, 2012 at 4:51 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Mon, 11 Jun 2012, Noam Yorav-Raphael wrote: > >> Hello, >> >> I have a device (a microscope automation controller) which has a USB >> port which uses a standard RS232 to USB converter, by Cypress. They >> just changed their vendor id and product id from the standard cypress >> ID. I added their IDs to the cypress_m8 source, compiled, and put the >> updated cypress_m8.ko file in /lib/modules/. >> >> When I plug the device the cypress_m8 driver isn't being used. >> Instead, the generic usbhid driver is used, which isn't what I wanted. > > That doesn't make much sense. The usbhid driver binds only to devices > that advertise an HID interface, whereas you're talking about a serial > interface. > If I understand correctly, the serial communication is done by the HID interface of the device. >> If I run: >> >> modprobe -r usbhid cypress_m8 >> modprobe cypress_m8 >> modprobe usbhid >> >> then when I plug the device, the cypress_m8 driver is being used, and >> I can use /dev/ttyUSB0, just as I wanted. >> >> It seems that the order in which drivers are loaded affects the >> priority: the driver which was loaded first gets to catch the device. > > There is no priority; it's simply a matter of order. > >> So my question is, is there a way to permanently change the driver >> priority, so that the right driver will be loaded by default? > > There is not, since there are no priorities. However, there _is_ a way > to permanently change the usbhid driver and prevent it from ever > binding to your device. You merely have to add an entry to the > hid_ignore_list array in drivers/hid/hid-core.c. > Great! Indeed, that list includes the IDs of the cypress usb-rs232 converter on which the device is based. I added the modified ID and it works! Thank you very much, Noam -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html