Hi, Thanks for the patch but can you please re-send the patch in plain text format? Please refer to this article for more details. https://subspace.kernel.org/etiquette.html On 01/03/2024 01:52, Brock.Zheng wrote: > On TI-AM335x,my FPGA under GPMC local-bus can not work on 6.x kernel. > > GPMC <--> FPGA <--> sub-devices.... > > I found that the platform sub-devices is in wrongly organized > hierarchy. The grandchildren are now under the GPMC device > directly, not under it's father(FPGA).> > Signed-off-by: Brock.Zheng <yzheng@xxxxxxxxxxxxx> > --- > drivers/memory/omap-gpmc.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c > index 80d038884207..1f2568e43086 100644 > --- a/drivers/memory/omap-gpmc.c > +++ b/drivers/memory/omap-gpmc.c > @@ -2175,6 +2175,7 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, > int ret, cs; > u32 val; > struct gpmc_device *gpmc = platform_get_drvdata(pdev); > + struct platform_device *child_pdev = NULL; > > if (of_property_read_u32(child, "reg", &cs) < 0) { > dev_err(&pdev->dev, "%pOF has no 'reg' property\n", > @@ -2330,11 +2331,12 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, > no_timings: > > /* create platform device, NULL on error or when disabled */ > - if (!of_platform_device_create(child, NULL, &pdev->dev)) > + child_pdev = of_platform_device_create(child, NULL, &pdev->dev); > + if (!child_pdev) > goto err_child_fail; > > /* create children and other common bus children */ > - if (of_platform_default_populate(child, NULL, &pdev->dev)) > + if (of_platform_default_populate(child, NULL, &child_pdev->dev)) > goto err_child_fail; > > return 0; -- cheers, -roger