[RFC PATCH 11/14] acpi: disable battery and adapter for x86 apple machines
From: Atharva Tiwari
Date: Thu Oct 29 2026 - 05:02:30 EST
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 <atharvatiwarilinuxdev@xxxxxxxxx>
---
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