Я новичок в Linux, и мне нужно написать драйвер USB для устройства с 2 интерфейсами. Один интерфейс - это класс HID (3/0/0) с одним прерыванием в конечной точке и дескриптором отчета. Другой интерфейс определяется поставщиком с тремя основными конечными точками. В моей таблице usb_device_id у меня есть запись USB_DEVICE с VID и PID.
Когда я подключаю устройство, моя функция xxx_probe вызывается для определенного поставщиком интерфейса, но не для интерфейса HID. Вместо этого кажется, что встроенный драйвер с именем 'generic-usb' берет на себя управление интерфейсом HID.
Есть ли способ убедиться, что моя функция зонда драйвера вызывается первой?
Почему Linux не делает несколько проходов в поисках более конкретного драйвера в первую очередь (как это делает Windows)?
В качестве альтернативы, можно ли использовать драйвер «generic-usb» для получения данных о конечной точке прерывания и для настройки отчетов и функций в канале управления?