diff mbox series

[v4,6/7] platform: starfive: return error if needed devices are not present

Message ID 6cf247a45ca69412337ee7ff163c530263d5d8ed.1707122766.git.namcao@linutronix.de
State Superseded
Headers show
Series starfive reboot cleanup & fix | expand

Commit Message

Nam Cao Feb. 5, 2024, 8:49 a.m. UTC
Jh7110's reset driver needs power management device and clock controller
device to work. Currently, the driver proceed anyway without these
devices, and invalid addresses (jh7110_inst.pmu_reg_base and
jh7110_inst.clk_reg_base) are used during reboot, which causes
unpredictable broken behaviors.

If these devices are not present, return -SBI_ENODEV.

Signed-off-by: Nam Cao <namcao@linutronix.de>
---
 platform/generic/starfive/jh7110.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

diff --git a/platform/generic/starfive/jh7110.c b/platform/generic/starfive/jh7110.c
index b0b1e35..6990425 100644
--- a/platform/generic/starfive/jh7110.c
+++ b/platform/generic/starfive/jh7110.c
@@ -243,6 +243,8 @@  static int starfive_jh7110_inst_init(void *fdt)
 		if (rc)
 			goto err;
 		jh7110_inst.pmu_reg_base = addr;
+	} else {
+		return -SBI_ENODEV;
 	}
 
 	noff = fdt_node_offset_by_compatible(fdt, -1, "starfive,jh7110-syscrg");
@@ -251,6 +253,8 @@  static int starfive_jh7110_inst_init(void *fdt)
 		if (rc)
 			goto err;
 		jh7110_inst.clk_reg_base = addr;
+	} else {
+		return -SBI_ENODEV;
 	}
 
 	if (pmic_inst.adapter) {