[PATCH v2 0/7] Add module support for Arm64 Exynos MCT driver
Will McVicker
willmcvicker at google.com
Wed Apr 2 16:33:51 PDT 2025
This series adds support to build the Arm64 Exynos MCT driver as a module. This
is only possible on Arm64 SoCs since they can use the Arm architected timer as
the clocksource. Once the Exynos MCT module is loaded and the device probes,
the MCT is used as the wakeup source for the arch_timer to ensure the device
can wakeup from the "c2" idle state.
These patches are originally from the downstream Pixel 6 (gs101) kernel found
at [1] and have been adapted for upstream. Not only has the Exynos MCT driver
been shipping as a module in the field with Android, but I've also tested this
seris with the upstream kernel on my Pixel 6 Pro.
Thanks,
Will
Note1, instructions to build and flash a Pixel 6 device with the upstream kernel
can be found at [2].
Note2, this series is based off of linux-next/master commit 405e2241def8 ("Add
linux-next specific files for 20250331").
[1] https://android.googlesource.com/kernel/gs/+log/refs/heads/android-gs-raviole-5.10-android12-d1
[2] https://git.codelinaro.org/linaro/googlelt/pixelscripts/-/blob/clo/main/README.md?ref_type=heads
Cc: Alim Akhtar <alim.akhtar at samsung.com>
Cc: Daniel Lezcano <daniel.lezcano at linaro.org>
Cc: Donghoon Yu <hoony.yu at samsung.com>
Cc: Hosung Kim <hosung0.kim at samsung.com>
Cc: kernel-team at android.com
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
Cc: Rob Herring <robh at kernel.org>
Cc: Saravana Kannan <saravanak at google.com>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Youngmin Nam <youngmin.nam at samsung.com>
Cc: Peter Griffin <peter.griffin at linaro.org>
Cc: Tudor Ambarus <tudor.ambarus at linaro.org>
Cc: André Draszik <andre.draszik at linaro.org>
Cc: Will Deacon <will at kernel.org>
Cc: Conor Dooley <conor+dt at kernel.org>
Cc: Krzysztof Kozlowski <krzk at kernel.org>
Cc: linux-samsung-soc at vger.kernel.org
---
Changes in v2:
- Re-worked patch v1 5 based on Rob Herring's review to use the compatible data
for retrieving the mct_init function pointer.
- Updated the Kconfig logic to disallow building the Exynos MCT driver as
a module for ARM32 configurations based on Krzysztof Kozlowski's findings.
- Added comments and clarified commit messages in patches 1 and 2 based on
reviews from John Stultz and Youngmin Nam.
- Fixed an issue found during testing that resulted in the device getting
stuck on boot. This is included in v2 as patch 5.
- Collected *-by tags
- Rebased to the latest linux-next/master.
---
Donghoon Yu (1):
clocksource/drivers/exynos_mct: Add module support
Hosung Kim (1):
clocksource/drivers/exynos_mct: Set local timer interrupts as percpu
Will Deacon (1):
arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes
Will McVicker (4):
of/irq: Export of_irq_count for modules
clocksource/drivers/exynos_mct: Don't register as a sched_clock on
arm64
clocksource/drivers/exynos_mct: Fix uninitialized irq name warning
arm64: exynos: Drop select CLKSRC_EXYNOS_MCT
arch/arm64/Kconfig.platforms | 1 -
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 3 +
drivers/clocksource/Kconfig | 3 +-
drivers/clocksource/exynos_mct.c | 73 ++++++++++++++++----
drivers/of/irq.c | 1 +
5 files changed, 67 insertions(+), 14 deletions(-)
--
2.49.0.472.ge94155a9ec-goog
More information about the linux-arm-kernel
mailing list