[PATCH] soc: imx8m: Fix match data lookup for soc device

Peng Fan (OSS) posted 1 patch 1 month, 3 weeks ago
drivers/soc/imx/soc-imx8m.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Peng Fan (OSS) 1 month, 3 weeks ago
From: Peng Fan <peng.fan@nxp.com>

The i.MX8M soc device is registered via platform_device_register_simple(),
so it is not associated with a Device Tree node and the imx8m_soc_driver
has no of_match_table.

As a result, device_get_match_data() always returns NULL when probing
the soc device.

Retrieve the match data directly from the machine compatible using
of_machine_get_match_data(imx8_soc_match), which provides the correct SoC
data.

Fixes: 2524b293a59e5 ("soc: imx8m: don't access of_root directly")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/soc/imx/soc-imx8m.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c
index 77763a107edbd11302017e3f61ecb4369fda1ab0..fc080e56f50d423b88a673181a6bc986eb4c1691 100644
--- a/drivers/soc/imx/soc-imx8m.c
+++ b/drivers/soc/imx/soc-imx8m.c
@@ -247,7 +247,7 @@ static int imx8m_soc_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	data = device_get_match_data(dev);
+	data = of_machine_get_match_data(imx8_soc_match);
 	if (data) {
 		soc_dev_attr->soc_id = data->name;
 		ret = imx8m_soc_prepare(pdev, data->ocotp_compatible);

---
base-commit: 70c8a7ec6715b5fb14e501731b5b9210a16684f7
change-id: 20260424-soc-imx8m-fix-90d7ce2397f5

Best regards,
-- 
Peng Fan <peng.fan@nxp.com>
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Richard Leitner 3 weeks ago
On Mon, Apr 27, 2026 at 09:01:48AM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>
> 
> The i.MX8M soc device is registered via platform_device_register_simple(),
> so it is not associated with a Device Tree node and the imx8m_soc_driver
> has no of_match_table.
> 
> As a result, device_get_match_data() always returns NULL when probing
> the soc device.
> 
> Retrieve the match data directly from the machine compatible using
> of_machine_get_match_data(imx8_soc_match), which provides the correct SoC
> data.
> 
> Fixes: 2524b293a59e5 ("soc: imx8m: don't access of_root directly")
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Thanks for that fix!

Tested-by: Richard Leitner <richard.leitner@linux.dev> # i.MX8MP

regards;rl

> ---
>  drivers/soc/imx/soc-imx8m.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c
> index 77763a107edbd11302017e3f61ecb4369fda1ab0..fc080e56f50d423b88a673181a6bc986eb4c1691 100644
> --- a/drivers/soc/imx/soc-imx8m.c
> +++ b/drivers/soc/imx/soc-imx8m.c
> @@ -247,7 +247,7 @@ static int imx8m_soc_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	data = device_get_match_data(dev);
> +	data = of_machine_get_match_data(imx8_soc_match);
>  	if (data) {
>  		soc_dev_attr->soc_id = data->name;
>  		ret = imx8m_soc_prepare(pdev, data->ocotp_compatible);
> 
> ---
> base-commit: 70c8a7ec6715b5fb14e501731b5b9210a16684f7
> change-id: 20260424-soc-imx8m-fix-90d7ce2397f5
> 
> Best regards,
> -- 
> Peng Fan <peng.fan@nxp.com>
> 
>
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Frank Li 1 month, 1 week ago
On Mon, 27 Apr 2026 09:01:48 +0800, Peng Fan (OSS) wrote:
> The i.MX8M soc device is registered via platform_device_register_simple(),
> so it is not associated with a Device Tree node and the imx8m_soc_driver
> has no of_match_table.
> 
> As a result, device_get_match_data() always returns NULL when probing
> the soc device.
> 
> [...]

Applied, thanks!

[1/1] soc: imx8m: Fix match data lookup for soc device
      commit: 2c6821657ce3b3c85f92719ea81ec9f9ff27df11

Best regards,
-- 
Frank Li <Frank.Li@nxp.com>
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Thorsten Leemhuis 2 weeks, 5 days ago
On 5/7/26 17:46, Frank Li wrote:
> 
> On Mon, 27 Apr 2026 09:01:48 +0800, Peng Fan (OSS) wrote:
>> The i.MX8M soc device is registered via platform_device_register_simple(),
>> so it is not associated with a Device Tree node and the imx8m_soc_driver
>> has no of_match_table.
>>
>> As a result, device_get_match_data() always returns NULL when probing
>> the soc device.
>>
>> [...]
> 
> Applied, thanks!
> 
> [1/1] soc: imx8m: Fix match data lookup for soc device
>       commit: 2c6821657ce3b3c85f92719ea81ec9f9ff27df11

Just wondering: are you planning to sent this towards mainline this
cycle? The regression this fixes was introduced this cycle, so I guess
it's something that should be merged before -rc6, as that's when Linus
wants all known regression ideally fixed. But from the name of the
branch it sounds more like this is scheduled to be merged in the next
merge window (but I might easily mistaken there -- if I am: sorry!)

Ciao, Thorsten
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Frank Li 2 weeks, 5 days ago
On Thu, May 28, 2026 at 12:55:34PM +0200, Thorsten Leemhuis wrote:
> On 5/7/26 17:46, Frank Li wrote:
> >
> > On Mon, 27 Apr 2026 09:01:48 +0800, Peng Fan (OSS) wrote:
> >> The i.MX8M soc device is registered via platform_device_register_simple(),
> >> so it is not associated with a Device Tree node and the imx8m_soc_driver
> >> has no of_match_table.
> >>
> >> As a result, device_get_match_data() always returns NULL when probing
> >> the soc device.
> >>
> >> [...]
> >
> > Applied, thanks!
> >
> > [1/1] soc: imx8m: Fix match data lookup for soc device
> >       commit: 2c6821657ce3b3c85f92719ea81ec9f9ff27df11
>
> Just wondering: are you planning to sent this towards mainline this
> cycle? The regression this fixes was introduced this cycle, so I guess
> it's something that should be merged before -rc6, as that's when Linus
> wants all known regression ideally fixed. But from the name of the
> branch it sounds more like this is scheduled to be merged in the next
> merge window (but I might easily mistaken there -- if I am: sorry!)

Thanks reminders. I intent to send for 7.1. But second look, not sure any
big impact although it is regression.

commmit message have not show what impact. I checked code, look like only
missed some soc informaiton. Let me know if I am wrong.

Frank
>
> Ciao, Thorsten
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Thorsten Leemhuis 2 weeks, 5 days ago
[+Alexander +Francesco]

On 5/28/26 18:47, Frank Li wrote:
> On Thu, May 28, 2026 at 12:55:34PM +0200, Thorsten Leemhuis wrote:
>> On 5/7/26 17:46, Frank Li wrote:
>>>
>>> On Mon, 27 Apr 2026 09:01:48 +0800, Peng Fan (OSS) wrote:
>>>> The i.MX8M soc device is registered via platform_device_register_simple(),
>>>> so it is not associated with a Device Tree node and the imx8m_soc_driver
>>>> has no of_match_table.
>>>>
>>>> As a result, device_get_match_data() always returns NULL when probing
>>>> the soc device.
>>>>
>>>> [...]
>>>
>>> Applied, thanks!
>>>
>>> [1/1] soc: imx8m: Fix match data lookup for soc device
>>>       commit: 2c6821657ce3b3c85f92719ea81ec9f9ff27df11
>>
>> Just wondering: are you planning to sent this towards mainline this
>> cycle? The regression this fixes was introduced this cycle, so I guess
>> it's something that should be merged before -rc6, as that's when Linus
>> wants all known regression ideally fixed. But from the name of the
>> branch it sounds more like this is scheduled to be merged in the next
>> merge window (but I might easily mistaken there -- if I am: sorry!)
> 
> Thanks reminders. I intent to send for 7.1. But second look, not sure any
> big impact although it is regression.
> 
> commmit message have not show what impact.

Yup, there ideally should have been Link: tags to the problem reports,
as explained by our docs. At least if that patch fixes the problems
linked to below (looks like it, but I'm not totally sure):

> I checked code, look like only
> missed some soc informaiton. Let me know if I am wrong.

Alexander reported problems here:
https://lore.kernel.org/lkml/6593091.DvuYhMxLoT@steina-w/
That mentions a warning and problems with soc_id and serial_number

Francesco jumped in a little later:
https://lore.kernel.org/lkml/20260427064704.GA17710@francesco-nb/
This mentions "CAAM is not working"

Not sure what the impact is, but from the outside it looks a bit like
"better fix this now to ensure those problems never enter a proper release"

Ciao, Thorsten
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Frank Li 2 weeks, 5 days ago
On Thu, May 28, 2026 at 08:16:44PM +0200, Thorsten Leemhuis wrote:
> [+Alexander +Francesco]
>
> On 5/28/26 18:47, Frank Li wrote:
> > On Thu, May 28, 2026 at 12:55:34PM +0200, Thorsten Leemhuis wrote:
> >> On 5/7/26 17:46, Frank Li wrote:
> >>>
> >>> On Mon, 27 Apr 2026 09:01:48 +0800, Peng Fan (OSS) wrote:
> >>>> The i.MX8M soc device is registered via platform_device_register_simple(),
> >>>> so it is not associated with a Device Tree node and the imx8m_soc_driver
> >>>> has no of_match_table.
> >>>>
> >>>> As a result, device_get_match_data() always returns NULL when probing
> >>>> the soc device.
> >>>>
> >>>> [...]
> >>>
> >>> Applied, thanks!
> >>>
> >>> [1/1] soc: imx8m: Fix match data lookup for soc device
> >>>       commit: 2c6821657ce3b3c85f92719ea81ec9f9ff27df11
> >>
> >> Just wondering: are you planning to sent this towards mainline this
> >> cycle? The regression this fixes was introduced this cycle, so I guess
> >> it's something that should be merged before -rc6, as that's when Linus
> >> wants all known regression ideally fixed. But from the name of the
> >> branch it sounds more like this is scheduled to be merged in the next
> >> merge window (but I might easily mistaken there -- if I am: sorry!)
> >
> > Thanks reminders. I intent to send for 7.1. But second look, not sure any
> > big impact although it is regression.
> >
> > commmit message have not show what impact.
>
> Yup, there ideally should have been Link: tags to the problem reports,
> as explained by our docs. At least if that patch fixes the problems
> linked to below (looks like it, but I'm not totally sure):
>
> > I checked code, look like only
> > missed some soc informaiton. Let me know if I am wrong.
>
> Alexander reported problems here:
> https://lore.kernel.org/lkml/6593091.DvuYhMxLoT@steina-w/
> That mentions a warning and problems with soc_id and serial_number
>
> Francesco jumped in a little later:
> https://lore.kernel.org/lkml/20260427064704.GA17710@francesco-nb/
> This mentions "CAAM is not working"

Thank you point it. I just sent fixes pull-request to soc maintainer.

Frank

>
> Not sure what the impact is, but from the outside it looks a bit like
> "better fix this now to ensure those problems never enter a proper release"
>
> Ciao, Thorsten
Re: [PATCH] soc: imx8m: Fix match data lookup for soc device
Posted by Lucas Stach 1 month, 1 week ago
Am Montag, dem 27.04.2026 um 09:01 +0800 schrieb Peng Fan (OSS):
> From: Peng Fan <peng.fan@nxp.com>
> 
> The i.MX8M soc device is registered via platform_device_register_simple(),
> so it is not associated with a Device Tree node and the imx8m_soc_driver
> has no of_match_table.
> 
> As a result, device_get_match_data() always returns NULL when probing
> the soc device.
> 
> Retrieve the match data directly from the machine compatible using
> of_machine_get_match_data(imx8_soc_match), which provides the correct SoC
> data.
> 
> Fixes: 2524b293a59e5 ("soc: imx8m: don't access of_root directly")
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>

Frank, please apply this fix for the 7.1-rc release series to get rid
of the regression.

Regards,
Lucas
> ---
>  drivers/soc/imx/soc-imx8m.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c
> index 77763a107edbd11302017e3f61ecb4369fda1ab0..fc080e56f50d423b88a673181a6bc986eb4c1691 100644
> --- a/drivers/soc/imx/soc-imx8m.c
> +++ b/drivers/soc/imx/soc-imx8m.c
> @@ -247,7 +247,7 @@ static int imx8m_soc_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	data = device_get_match_data(dev);
> +	data = of_machine_get_match_data(imx8_soc_match);
>  	if (data) {
>  		soc_dev_attr->soc_id = data->name;
>  		ret = imx8m_soc_prepare(pdev, data->ocotp_compatible);
> 
> ---
> base-commit: 70c8a7ec6715b5fb14e501731b5b9210a16684f7
> change-id: 20260424-soc-imx8m-fix-90d7ce2397f5
> 
> Best regards,