Re: [PATCH v2] hwmon: corsair-cpro: Change to HID driver

From: Guenter Roeck
Date: Wed Jul 15 2020 - 11:35:13 EST


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 <mail@xxxxxxxxxxxxxxxxx>
>
> ---

[ ... ]

> -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