From: Janne Grunau j@jannau.net
[ Upstream commit 442816f97a4f84cb321d3359177a3b9b0ce48a60 ]
After discussion with the devicetree maintainers we agreed to not extend lists with the generic compatible "apple,pmgr-pwrstate" anymore [1]. Use "apple,t8103-pmgr-pwrstate" as base compatible as it is the SoC the driver and bindings were written for.
[1]: https://lore.kernel.org/asahi/12ab93b7-1fc2-4ce0-926e-c8141cfe81bf@kernel.or...
Signed-off-by: Janne Grunau j@jannau.net Acked-by: Ulf Hansson ulf.hansson@linaro.org Reviewed-by: Neal Gompa neal@gompa.dev Acked-by: Rob Herring (Arm) robh@kernel.org Signed-off-by: Sven Peter sven@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
YES
- What changed: The patch adds a single OF compatible to the driver match table to explicitly support the Apple M1 (t8103) PMGR power- state nodes. Concretely, it inserts `{ .compatible = "apple,t8103-pmgr-pwrstate" }` in `drivers/pmdomain/apple/pmgr- pwrstate.c:309`, keeping the existing generic fallback `{ .compatible = "apple,pmgr-pwrstate" }` just below it (drivers/pmdomain/apple/pmgr- pwrstate.c:310). - Rationale from commit message: DT maintainers agreed to stop extending nodes with the generic `"apple,pmgr-pwrstate"` and instead use the SoC-specific string as the base compatible. Without this addition, a DT using only `"apple,t8103-pmgr-pwrstate"` would fail to bind the driver. - Scope and risk: The change is a single-line device-ID addition to the OF match table. It does not touch runtime logic, data structures, Kconfig, or probe/remove paths. There are no architectural changes. This kind of “add a new compatible ID” patch is routinely accepted for stable because it’s low-risk and purely affects device binding. - User impact fixed: On systems providing a DTB that omits the generic fallback (aligned with the new binding guidance), the driver would not probe, leaving PM domains and reset control unmanaged. Adding the t8103 compatible restores functionality. This is a real, user-visible failure mode when booting older kernels with newer DTBs or bootloader- provided DTBs following updated conventions. - Alignment with bindings: The bindings already enumerate SoC-specific compatibles, including `"apple,t8103-pmgr-pwrstate"` (Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml:41). The driver now matches that SoC-specific string directly, which aligns the implementation with binding expectations going forward. - No regressions expected: Existing DTs that list both `"apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"` continue to bind identically, only preferring the SoC-specific match. DTs that still only have the generic string continue to work via the unchanged `{ .compatible = "apple,pmgr-pwrstate" }` entry (drivers/pmdomain/apple/pmgr-pwrstate.c:310). - Stable policy fit: This is a minimal, contained, non-feature change that enables correct binding for an existing driver on an existing SoC and prevents regressions with evolving DTs. There’s no security implication and no interaction with critical core subsystems beyond OF matching. - Backport note: On older stable series, the file may reside under a different path (pre-“pmdomain” rename). The change remains a trivial OF-ID addition to the same match table in that file.
Given the above, this is a textbook low-risk backport that prevents real breakage with newer DTBs and should be backported to stable trees that already contain the Apple PMGR power-state driver.
drivers/pmdomain/apple/pmgr-pwrstate.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/pmdomain/apple/pmgr-pwrstate.c b/drivers/pmdomain/apple/pmgr-pwrstate.c index 9467235110f46..82c33cf727a82 100644 --- a/drivers/pmdomain/apple/pmgr-pwrstate.c +++ b/drivers/pmdomain/apple/pmgr-pwrstate.c @@ -306,6 +306,7 @@ static int apple_pmgr_ps_probe(struct platform_device *pdev) }
static const struct of_device_id apple_pmgr_ps_of_match[] = { + { .compatible = "apple,t8103-pmgr-pwrstate" }, { .compatible = "apple,pmgr-pwrstate" }, {} };