When macsmc-power is enabled on an Intel Mac, skip acpi-sbs and the ACPI battery and adapter drivers, since macsmc-power now provides them. This avoids duplicate devices.
Signed-off-by: Atharva Tiwari <[email protected]> --- drivers/acpi/sbs.c | 17 +++++++++-------- drivers/acpi/x86/utils.c | 4 ++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index f10bbf13c..b12f2acc0 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c @@ -634,6 +634,9 @@ static int acpi_sbs_probe(struct platform_device *pdev) int result = 0; int id; + if (IS_ENABLED(CONFIG_MACSMC_POWER) && x86_apple_machine) + return -ENODEV; + device = ACPI_COMPANION(&pdev->dev); if (!device) return -ENODEV; @@ -655,14 +658,12 @@ static int acpi_sbs_probe(struct platform_device *pdev) result = 0; - if (!x86_apple_machine) { - result = acpi_manager_get_info(sbs); - if (!result) { - sbs->manager_present = 1; - for (id = 0; id < MAX_SBS_BAT; ++id) - if ((sbs->batteries_supported & (1 << id))) - acpi_battery_add(sbs, id); - } + result = acpi_manager_get_info(sbs); + if (!result) { + sbs->manager_present = 1; + for (id = 0; id < MAX_SBS_BAT; ++id) + if ((sbs->batteries_supported & (1 << id))) + acpi_battery_add(sbs, id); } if (!sbs->manager_present) diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c index 418951639..9f3b9b7d9 100644 --- a/drivers/acpi/x86/utils.c +++ b/drivers/acpi/x86/utils.c @@ -14,6 +14,7 @@ #include <linux/dmi.h> #include <linux/pci.h> #include <linux/platform_device.h> +#include <linux/platform_data/x86/apple.h> #include <asm/cpu_device_id.h> #include <asm/intel-family.h> #include "../internal.h" @@ -608,6 +609,9 @@ bool acpi_quirk_skip_acpi_ac_and_battery(void) long quirks = 0; int i; + if (IS_ENABLED(CONFIG_MACSMC_POWER) && x86_apple_machine) + return true; + dmi_id = dmi_first_match(acpi_quirk_skip_dmi_ids); if (dmi_id) quirks = (unsigned long)dmi_id->driver_data; -- 2.55.0
