[PATCH next RFC 5/5] ram: rk3399: fail DRAM init when pctl channel init fails instead of hanging

Quentin Schulz foss+uboot at 0leil.net
Tue Nov 5 18:21:59 CET 2024


From: Quentin Schulz <quentin.schulz at cherry.de>

Instead of hanging via an infinite while loop, propagate the fail to the
caller and let it handle the fail. For RK3399, this means that panic()
will be called, (by default) resetting the CPU and giving another chance
at doing a DRAM init.

Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
---
 drivers/ram/rockchip/sdram_rk3399.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
index d953dda13cd3daa689fa362dc511c372db454064..591e1469afb25ba606d8f7e44f63e50905b4ab31 100644
--- a/drivers/ram/rockchip/sdram_rk3399.c
+++ b/drivers/ram/rockchip/sdram_rk3399.c
@@ -817,8 +817,7 @@ static int pctl_start(struct dram_info *dram,
 			if (count > 1000) {
 				printf("%s: Failed to init pctl channel 0\n",
 				       __func__);
-				while (1)
-					;
+				return -1;
 			}
 			udelay(1);
 			count++;
@@ -853,8 +852,7 @@ static int pctl_start(struct dram_info *dram,
 			if (count > 1000) {
 				printf("%s: Failed to init pctl channel 1\n",
 				       __func__);
-				while (1)
-					;
+				return -2;
 			}
 			udelay(1);
 			count++;

-- 
2.47.0



More information about the U-Boot mailing list