Drivers need to return -ENODEV when they can't bind to a device.
Anything else stops the "bind a device to a driver" search.
From: Stelian Pop <stelian@popies.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
                        intf->altsetting->desc.bInterfaceNumber);
 
        if (!(hid = usb_hid_configure(intf)))
-               return -EIO;
+               return -ENODEV;
 
        hid_init_reports(hid);
        hid_dump_device(hid);
        if (!hid->claimed) {
                printk ("HID device not claimed by input or hiddev\n");
                hid_disconnect(intf);
-               return -EIO;
+               return -ENODEV;
        }
 
        printk(KERN_INFO);