The CMOS RTC and the ACPI TAD clock don't work correctly on T2 Macs. When macsmc-rtc is enabled, turn them off on these machines so macsmc-rtc is the only clock.
Signed-off-by: Atharva Tiwari <[email protected]> --- drivers/acpi/acpi_tad.c | 4 ++++ drivers/rtc/rtc-cmos.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c index 45459a4ca..a137a39e5 100644 --- a/drivers/acpi/acpi_tad.c +++ b/drivers/acpi/acpi_tad.c @@ -28,6 +28,7 @@ #include <linux/ktime.h> #include <linux/module.h> #include <linux/mutex.h> +#include <linux/platform_data/x86/apple.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/rtc.h> @@ -845,6 +846,9 @@ static int acpi_tad_probe(struct platform_device *pdev) return -ENODEV; } + if (IS_ENABLED(CONFIG_RTC_DRV_MACSMC) && has_apple_t2_chip) + caps &= ~ACPI_TAD_RT; + if (!acpi_has_method(handle, "_PRW")) { dev_info(dev, "Missing _PRW\n"); caps &= ~(ACPI_TAD_AC_WAKE | ACPI_TAD_DC_WAKE); diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index fa04ece15..bdb436e24 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -33,6 +33,7 @@ #include <linux/init.h> #include <linux/interrupt.h> #include <linux/spinlock.h> +#include <linux/platform_data/x86/apple.h> #include <linux/platform_device.h> #include <linux/log2.h> #include <linux/pm.h> @@ -944,6 +945,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) .priv = &cmos_rtc, }; + if (IS_ENABLED(CONFIG_RTC_DRV_MACSMC) && has_apple_t2_chip) + return -ENODEV; + /* there can be only one ... */ if (cmos_rtc.dev) return -EBUSY; -- 2.55.0
