Linux MIPS Architecture development
 help / color / mirror / Atom feed
* [PATCH] memory: jz4780-nemc: publish drvdata before creating children
@ 2026-06-16  0:57 Pengpeng Hou
  2026-06-30 17:22 ` Krzysztof Kozlowski
  0 siblings, 1 reply; 2+ messages in thread
From: Pengpeng Hou @ 2026-06-16  0:57 UTC (permalink / raw)
  To: Paul Cercueil, Krzysztof Kozlowski, linux-mips, linux-kernel; +Cc: Pengpeng Hou

The NEMC child drivers can call exported helpers that fetch the parent
controller state with dev_get_drvdata(dev->parent).  jz4780_nemc_probe()
currently creates child platform devices before storing the controller
pointer in the parent drvdata, so a child that probes immediately can
observe a NULL parent drvdata pointer.

Store the controller pointer before creating child devices.  Also
depopulate child devices during remove before disabling the controller
clock so child teardown still runs while the parent resources are
available.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
---
 drivers/memory/jz4780-nemc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/memory/jz4780-nemc.c b/drivers/memory/jz4780-nemc.c
index 1a8161514d03..1c1d1d019f77 100644
--- a/drivers/memory/jz4780-nemc.c
+++ b/drivers/memory/jz4780-nemc.c
@@ -331,6 +331,8 @@ static int jz4780_nemc_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 
+	platform_set_drvdata(pdev, nemc);
+
 	/*
 	 * Iterate over child devices, check that they do not conflict with
 	 * each other, and register child devices for them. If a child device
@@ -379,7 +381,6 @@ static int jz4780_nemc_probe(struct platform_device *pdev)
 		}
 	}
 
-	platform_set_drvdata(pdev, nemc);
 	dev_info(dev, "JZ4780 NEMC initialised\n");
 	return 0;
 }
@@ -388,6 +389,7 @@ static void jz4780_nemc_remove(struct platform_device *pdev)
 {
 	struct jz4780_nemc *nemc = platform_get_drvdata(pdev);
 
+	of_platform_depopulate(&pdev->dev);
 	clk_disable_unprepare(nemc->clk);
 }
 
-- 
2.50.1 (Apple Git-155)


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-30 17:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-16  0:57 [PATCH] memory: jz4780-nemc: publish drvdata before creating children Pengpeng Hou
2026-06-30 17:22 ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox