Wrong driver loaded for USB device
I'm having problems with my system assigning the wrong driver to a USB device.
I'm trying to get a Mad Catz dance mat to work with my SuSE 9.2 (64-bit) system. I'm using the 2.6.8-24.10 kernel.
I have the mat and a standard Microsoft Controller S connected to my machine via an adapter, and I have installed the xpad driver. When I examine the devices via "hwinfo --usb", I see that the Controller S is detected correctly and assigned the "xpad" driver. However, the dance mat - although its name, vendor ID, and product ID are correct and are listed in the "xpad" driver - is assigned the "usbhid" driver.
I have already ensured that the vendor ID and product ID for the mat are listed in the driver; I tried adding them manually (and then recompiling and replacing the existing xpad.ko module with the new one) and I tried using the xbox-linux version of the xpad driver. They all have exactly the same problem: they don't take control of the device, even though they all list its IDs correctly.
I then tried modifying my usbhid module so that it would ignore the dance mat (by associating the vendor and product IDs of the dance mat with the QUIRK_IGNORE flag). When I did this, the device was simply not assigned a driver.
I have already tried rebooting, unloading and then reloading the modules, etc.
How do I convince the USB system to let xpad control the device, and not usbhid?
Thanks for your help!