On 7/15/20 8:14 AM, Marius Zachmann wrote:
> This changes corsair-cpro to a hid driver using hid reports.
> 
> Signed-off-by: Marius Zachmann <m...@mariuszachmann.de>
> 
> ---

[ ... ]

> -static const struct usb_device_id ccp_devices[] = {
> -     { USB_DEVICE(USB_VENDOR_ID_CORSAIR, 
> USB_PRODUCT_ID_CORSAIR_COMMANDERPRO) },
> -     { USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_PRODUCT_ID_CORSAIR_1000D) },
> +static const struct hid_device_id ccp_devices[] = {
> +     { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, 
> USB_PRODUCT_ID_CORSAIR_COMMANDERPRO) },
> +     { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_PRODUCT_ID_CORSAIR_1000D) },
>       { }
>  };
> 
> -static struct usb_driver ccp_driver = {
> +static struct hid_driver ccp_driver = {
>       .name = "corsair-cpro",
> +     .id_table = ccp_devices,
>       .probe = ccp_probe,
> -     .disconnect = ccp_disconnect,
> -     .id_table = ccp_devices
> +     .remove = ccp_remove,
> +     .raw_event = ccp_raw_event,
>  };
> 
> -MODULE_DEVICE_TABLE(usb, ccp_devices);
> +MODULE_DEVICE_TABLE(hid, ccp_devices);
>  MODULE_LICENSE("GPL");
> 
> -module_usb_driver(ccp_driver);
> +static int __init ccp_init(void)
> +{
> +     return hid_register_driver(&ccp_driver);
> +}
> +
> +static void __exit ccp_exit(void)
> +{
> +     hid_unregister_driver(&ccp_driver);
> +}
> +
> +/* make sure it is loaded after hid */
> +late_initcall(ccp_init);
> +module_exit(ccp_exit);

Sorry for not noticing before, but can you use module_hid_driver() ?
That seems to work for other hid drivers.

Thanks,
Guenter

Reply via email to