Re: [PATCH v2] mfd: kempld-core: Check for DMI definition before ACPI

From: Guenter Roeck
Date: Tue Nov 10 2020 - 11:11:22 EST


On Tue, Nov 10, 2020 at 03:23:21PM +0000, Michael Brunner wrote:
> Change the detection order to priorize DMI table entries over available
> ACPI entries.
>
> This makes it more easy for product developers to patch product specific
> handling into the driver.
> Furthermore it allows to simplify the implementation a bit and
> especially to remove the need to force synchronous probing.
>
> Based on the following commit introduced with v5.10-rc1:
> commit e8299c7313af ("mfd: Add ACPI support to Kontron PLD driver")
>
> v2: Fixed coding style as suggested by Guenther Roeck
>

Nit: change logs should be after '---'.

Other than that,

Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Guenter

> Signed-off-by: Michael Brunner <michael.brunner@xxxxxxxxxxx>
> ---
> drivers/mfd/kempld-core.c | 24 +++---------------------
> 1 file changed, 3 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
> index 2c9295953c11..ecd26271b9a4 100644
> --- a/drivers/mfd/kempld-core.c
> +++ b/drivers/mfd/kempld-core.c
> @@ -125,7 +125,6 @@ static const struct kempld_platform_data kempld_platform_data_generic = {
> };
>
> static struct platform_device *kempld_pdev;
> -static bool kempld_acpi_mode;
>
> static int kempld_create_platform_device(const struct dmi_system_id *id)
> {
> @@ -501,8 +500,6 @@ static int kempld_probe(struct platform_device *pdev)
> ret = kempld_get_acpi_data(pdev);
> if (ret)
> return ret;
> -
> - kempld_acpi_mode = true;
> } else if (kempld_pdev != pdev) {
> /*
> * The platform device we are probing is not the one we
> @@ -565,7 +562,6 @@ static struct platform_driver kempld_driver = {
> .driver = {
> .name = "kempld",
> .acpi_match_table = ACPI_PTR(kempld_acpi_table),
> - .probe_type = PROBE_FORCE_SYNCHRONOUS,
> },
> .probe = kempld_probe,
> .remove = kempld_remove,
> @@ -884,7 +880,6 @@ MODULE_DEVICE_TABLE(dmi, kempld_dmi_table);
> static int __init kempld_init(void)
> {
> const struct dmi_system_id *id;
> - int ret;
>
> if (force_device_id[0]) {
> for (id = kempld_dmi_table;
> @@ -894,24 +889,11 @@ static int __init kempld_init(void)
> break;
> if (id->matches[0].slot == DMI_NONE)
> return -ENODEV;
> - }
> -
> - ret = platform_driver_register(&kempld_driver);
> - if (ret)
> - return ret;
> -
> - /*
> - * With synchronous probing the device should already be probed now.
> - * If no device id is forced and also no ACPI definition for the
> - * device was found, scan DMI table as fallback.
> - *
> - * If drivers_autoprobing is disabled and the device is found here,
> - * only that device can be bound manually later.
> - */
> - if (!kempld_pdev && !kempld_acpi_mode)
> + } else {
> dmi_check_system(kempld_dmi_table);
> + }
>
> - return 0;
> + return platform_driver_register(&kempld_driver);
> }
>
> static void __exit kempld_exit(void)
> --
> 2.25.1
>