[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z6t7IjcOFuAbztfn@black.fi.intel.com>
Date: Tue, 11 Feb 2025 18:30:26 +0200
From: Andy Shevchenko <andriy.shevchenko@...el.com>
To: Kurt Borja <kuurtb@...il.com>
Cc: platform-driver-x86@...r.kernel.org,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Armin Wolf <W_Armin@....de>,
Mario Limonciello <mario.limonciello@....com>,
Hans de Goede <hdegoede@...hat.com>, Dell.Client.Kernel@...l.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v10 02/14] platform/x86: alienware-wmi: Add WMI Drivers
On Fri, Feb 07, 2025 at 10:45:58AM -0500, Kurt Borja wrote:
> Add WMI drivers for LEGACY and WMAX devices.
>
> This involves moving the platform device registration to a helper
> function that is now called from the driver's preferred WMI device
> driver probe. In the case of the WMAX this is done only if
> `!quirks->thermal` because the newer WMAX interface doesn't support any
> of the LED features of this driver. This also eliminates the need to
> check for `quirks->num_zones > 0` inside alienfx_probe().
>
> Only one WMI driver is registered on module initialization to prevent
> registering a duplicate platform device.
>
> Additionally, create_thermal_profile() now takes wmi_device * instead of
> platform_device *.
...
> +static int alienware_alienfx_setup(struct alienfx_platdata *pdata)
> +{
> + struct device *dev = &pdata->wdev->dev;
> + struct platform_device *pdev;
> int ret;
>
> + pdev = platform_device_register_data(NULL, "alienware-wmi",
> + PLATFORM_DEVID_NONE, pdata,
> + sizeof(*pdata));
> + if (IS_ERR(pdev))
> + return PTR_ERR(pdev);
> +
> + dev_set_drvdata(dev, pdev);
> + ret = devm_add_action_or_reset(dev, alienware_alienfx_remove, pdev);
> + if (ret)
> + return ret;
> +
> + return 0;
return devm_add_action_or_reset(...);
> +}
...
> +static const struct wmi_device_id alienware_legacy_device_id_table[] = {
> + { LEGACY_CONTROL_GUID, NULL },
Drop that ' , NULL' part, it makes an additional burden if the type of the
driver_data is ever changed.
> + { },
No comma in the terminator entries.
> +};
...
> +static const struct wmi_device_id alienware_wmax_device_id_table[] = {
> + { WMAX_CONTROL_GUID, NULL },
> + { },
> +};
Ditto.
...
> +static int __init alienware_wmax_wmi_init(void)
> +{
> + return wmi_driver_register(&alienware_wmax_wmi_driver);
> +}
> +
> +static void __exit alienware_wmax_wmi_exit(void)
> +{
> + wmi_driver_unregister(&alienware_wmax_wmi_driver);
> +}
I believe we have module_wmi_driver() which can be used after the split
(haven't checked those patches yet).
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists