platform: mellanox: mlx-platform: Introduce ACPI init flow
authorVadim Pasternak <vadimp@nvidia.com>
Tue, 22 Aug 2023 11:34:46 +0000 (11:34 +0000)
committerHans de Goede <hdegoede@redhat.com>
Wed, 23 Aug 2023 15:31:29 +0000 (17:31 +0200)
Introduce support for ACPI initialization flow - add ACPI match hook.

Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20230822113451.13785-12-vadimp@nvidia.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/Kconfig
drivers/platform/x86/mlx-platform.c

index 228fadb..b94e23e 100644 (file)
@@ -965,6 +965,7 @@ config SERIAL_MULTI_INSTANTIATE
 
 config MLX_PLATFORM
        tristate "Mellanox Technologies platform support"
+       depends on ACPI
        depends on I2C
        select REGMAP
        help
index 73f8876..7a15b91 100644 (file)
@@ -6396,9 +6396,14 @@ static int mlxplat_probe(struct platform_device *pdev)
 {
        unsigned int hotplug_resources_size = 0;
        struct resource *hotplug_resources = NULL;
+       struct acpi_device *acpi_dev;
        struct mlxplat_priv *priv;
        int i, err;
 
+       acpi_dev = ACPI_COMPANION(&pdev->dev);
+       if (acpi_dev)
+               mlxplat_dev = pdev;
+
        err = mlxplat_pre_init(&hotplug_resources, &hotplug_resources_size);
        if (err)
                return err;
@@ -6476,9 +6481,16 @@ static int mlxplat_remove(struct platform_device *pdev)
        return 0;
 }
 
+static const struct acpi_device_id mlxplat_acpi_table[] = {
+       { "MLNXBF49", 0 },
+       {}
+};
+MODULE_DEVICE_TABLE(acpi, mlxplat_acpi_table);
+
 static struct platform_driver mlxplat_driver = {
        .driver         = {
                .name   = "mlxplat",
+               .acpi_match_table = mlxplat_acpi_table,
                .probe_type = PROBE_FORCE_SYNCHRONOUS,
        },
        .probe          = mlxplat_probe,