[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<PAXPR04MB8459312B18CBAEDF9192A188889CA@PAXPR04MB8459.eurprd04.prod.outlook.com>
Date: Mon, 19 May 2025 12:58:48 +0000
From: Peng Fan <peng.fan@....com>
To: Dario Binacchi <dario.binacchi@...rulasolutions.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Krzysztof
Kozlowski <krzysztof.kozlowski@...aro.org>
CC: "linux-amarula@...rulasolutions.com" <linux-amarula@...rulasolutions.com>,
Mark Brown <broonie@...nel.org>, Abel Vesa <abelvesa@...nel.org>, Fabio
Estevam <festevam@...il.com>, Michael Turquette <mturquette@...libre.com>,
Pengutronix Kernel Team <kernel@...gutronix.de>, Sascha Hauer
<s.hauer@...gutronix.de>, Shawn Guo <shawnguo@...nel.org>, Stephen Boyd
<sboyd@...nel.org>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, "linux-clk@...r.kernel.org"
<linux-clk@...r.kernel.org>
Subject: RE: [linux-next, 1/1] clk: imx: imx8mm-anatop: probe only on i.MX8MM
platforms
> Subject: [linux-next, 1/1] clk: imx: imx8mm-anatop: probe only on
> i.MX8MM platforms
DT Maintainer Krzysztof NACKed [1] because of ABI break.
Are we continuing breaking the ABI?
[1] https://lore.kernel.org/imx/6a28f9bb-05fa-45ff-8c0b-790c0caf3252@kernel.org/T/#u
Regards,
Peng.
>
> Commit 9c1e388af87c ("clk: imx: add support for i.MX8MM anatop
> clock
> driver") breaks boot on i.MX8M{P,N} platforms.
>
> Here's the log for a board based on the i.MX8MP platform:
>
> [ 1.439320] i.MX clk 1: register failed with -2
> [ 1.441014] i.MX clk 2: register failed with -2
> [ 1.445610] imx8mm-anatop 30360000.clock-controller: NXP
> i.MX8MM anatop clock driver probed
> [ 1.455068] Unable to handle kernel paging request at virtual address
> fffffffffffffffe
>
> ...
>
> [ 1.634650] Call trace:
> [ 1.637102] __clk_get_hw+0x4/0x18 (P)
> [ 1.640862] imx8mp_clocks_probe+0xdc/0x2f50
> [ 1.645152] platform_probe+0x68/0xc4
> [ 1.648827] really_probe+0xbc/0x298
> [ 1.652413] __driver_probe_device+0x78/0x12c
>
> In the imx8mp.dtsi device tree, the anatop compatible string is:
>
> compatible = "fsl,imx8mp-anatop", "fsl,imx8mm-anatop";
>
> So, in configurations like arm64 defconfig, where
> CONFIG_CLK_IMX8MP and CONFIG_CLK_IMX8MM as well as
> CONFIG_CLK_IMX8MN are enabled, the driver for the i.MX8MM
> anatop is incorrectly loaded.
>
> The patch fixes the regression by ensuring that the i.MX8MM anatop
> driver only probes on i.MX8MM platforms.
>
> Fixes: 9c1e388af87c ("clk: imx: add support for i.MX8MM anatop clock
> driver")
> Signed-off-by: Dario Binacchi <dario.binacchi@...rulasolutions.com>
>
> ---
>
> drivers/clk/imx/clk-imx8mm-anatop.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/clk/imx/clk-imx8mm-anatop.c b/drivers/clk/imx/clk-
> imx8mm-anatop.c
> index 4ac870df6370..90ff11a93fe5 100644
> --- a/drivers/clk/imx/clk-imx8mm-anatop.c
> +++ b/drivers/clk/imx/clk-imx8mm-anatop.c
> @@ -37,6 +37,19 @@ static const char * const clkout_sels[] =
> {"audio_pll1_out", "audio_pll2_out", "
> static struct clk_hw_onecell_data *clk_hw_data; static struct clk_hw
> **hws;
>
> +static int is_really_imx8mm(struct device_node *np) {
> + const char *compat;
> + struct property *p;
> +
> + of_property_for_each_string(np, "compatible", p, compat) {
> + if (strcmp(compat, "fsl,imx8mm-anatop"))
> + return -EFAULT;
> + }
> +
> + return 0;
> +}
> +
> static int imx8mm_anatop_clocks_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> @@ -44,6 +57,10 @@ static int imx8mm_anatop_clocks_probe(struct
> platform_device *pdev)
> void __iomem *base;
> int ret;
>
> + ret = is_really_imx8mm(np);
> + if (ret)
> + return ret;
> +
> base = devm_platform_ioremap_resource(pdev, 0);
> if (IS_ERR(base)) {
> dev_err(dev, "failed to get base address\n");
> --
> 2.43.0
>
> base-commit: 8566fc3b96539e3235909d6bdda198e1282beaed
> branch: fix-imx8mm-probing
Powered by blists - more mailing lists