Thread (2 messages) 2 messages, 2 authors, 5d ago

Re: [PATCH v4] pmdomain: imx: Make IMX8M/IMX9 BLK_CTRL tristate

From: Ulf Hansson <hidden>
Date: 2026-07-14 13:25:33
Also in: imx, linux-arm-kernel, lkml

On Mon, Apr 20, 2026 at 4:22 AM Zhipeng Wang [off-list ref] wrote:
Convert IMX8M_BLK_CTRL and IMX9_BLK_CTRL from bool to tristate
to allow building as loadable modules.

This change is required to support Android devices using Generic Kernel
Image (GKI) kernels, where SoC-specific drivers must be built as loadable
modules rather than built into the core kernel image.

For i.MX8M and i.MX9 devices running Android with GKI kernels, the
BLK_CTRL drivers therefore need to be loadable. Without tristate
support, power domains cannot be initialized correctly, making these
systems non-functional under GKI.

Add prompt strings to make these options visible and configurable
in menuconfig, keeping them enabled by default on appropriate platforms.

Also remove the IMX_GPCV2_PM_DOMAINS dependency from IMX9_BLK_CTRL.
This dependency was incorrect from the beginning because i.MX93 uses a
different power domain architecture compared to i.MX8M series:

- i.MX8M uses GPCv2 (General Power Controller v2) for power domain
  management, hence IMX8M_BLK_CTRL correctly depends on it.

- i.MX93 uses BLK_CTRL directly without GPCv2. The hardware doesn't
  have GPCv2 at all.

Signed-off-by: Zhipeng Wang <redacted>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Apologize for the delay, I have simply missed this one.

Applied for next, thanks!

Kind regards
Uffe

quoted hunk ↗ jump to hunk
---
Changes in v4:
- No functional changes
- Added detailed explanation about GKI (Generic Kernel Image) requirement
  in the commit message to clarify why tristate support is needed for
  Android devices

Changes in v3:
- No functional changes
- Fixed typo reported by Frank
- Added Reviewed-by tag from Frank Li

Changes in v2:
- No functional changes
- Expanded commit message to explain the architectural differences between
  i.MX8M and i.MX93 power domain management
- Clarified why IMX_GPCV2_PM_DOMAINS dependency removal is correct for
  i.MX93
---
 drivers/pmdomain/imx/Kconfig | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/pmdomain/imx/Kconfig b/drivers/pmdomain/imx/Kconfig
index 00203615c65e..9168d183b0c5 100644
--- a/drivers/pmdomain/imx/Kconfig
+++ b/drivers/pmdomain/imx/Kconfig
@@ -10,15 +10,18 @@ config IMX_GPCV2_PM_DOMAINS
        default y if SOC_IMX7D

 config IMX8M_BLK_CTRL
-       bool
-       default SOC_IMX8M && IMX_GPCV2_PM_DOMAINS
+       tristate "i.MX8M BLK CTRL driver"
+       depends on SOC_IMX8M
+       depends on IMX_GPCV2_PM_DOMAINS
        depends on PM_GENERIC_DOMAINS
        depends on COMMON_CLK
+       default y

 config IMX9_BLK_CTRL
-       bool
-       default SOC_IMX9 && IMX_GPCV2_PM_DOMAINS
+       tristate "i.MX93 BLK CTRL driver"
+       depends on SOC_IMX9
        depends on PM_GENERIC_DOMAINS
+       default y

 config IMX_SCU_PD
        bool "IMX SCU Power Domain driver"
--
2.34.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help