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


Reply via email to