[PATCH v4 0/6] Add module support for Arm64 Exynos MCT driver
Daniel Lezcano
daniel.lezcano at linaro.org
Tue Jul 15 04:03:08 PDT 2025
On Fri, Jun 20, 2025 at 11:17:03AM -0700, Will McVicker wrote:
> 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 series with the upstream kernel on my Pixel 6 Pro.
>
> In addition, I verified that the Exynos MCT module cannot be unloaded on my
> Pixel 6. This is due to /sys/module/exynos_mct/refcnt > 0. So if you try,
> you'll get this:
>
> root at google-gs:~# rmmod exynos_mct
> rmmod: ERROR: Module exynos_mct is in use
> root at google-gs:~# cat /sys/module/exynos_mct/refcnt
> 9
>
> 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 krzk/for-next commit a15edf91668b ("Merge
> branch 'next/dt64' into for-next") with [3] on top.
>
> [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
> [3] https://lore.kernel.org/linux-arm-kernel/20250602151853.1942521-1-daniel.lezcano@linaro.org/
>
> 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: John Stultz <jstultz 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 v4:
> - Missed the "v3" string in the previous series for the actual patches
> - Re-generated patches with --base a15edf91668beefdb5171c53fa698c9b43dd1e0d
> for kernel test robot.
>
> Changes in v3:
> - Rebased on top of Daniel's timer modularization prep series [3] and
> krzk/for-next commit a15edf91668b ("Merge branch 'next/dt64' into
> for-next")
> - Added owner references to Exynos MCT clocksource and clockevent objects.
> - Dropped #ifdef MODULE conditional section in favor of just using
> module_platform_driver() which will properly handle setting up the
> of_device_id table based on if the driver is built-in or a module.
> - Update commit message for patch 2 based on John's feedback.
> - Dropped DT change from v2 as it was picked up by Krzysztof for CPU Idle.
>
> 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.
> ---
Applied, thanks
-- Daniel
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
More information about the linux-arm-kernel
mailing list