[PATCH v4 7/7] platform: starfive: call starfive_jh7110_inst_init() in pm_reset_init()
Minda Chen
minda.chen at starfivetech.com
Mon Feb 12 06:25:48 PST 2024
>
> The function starfive_jh7110_inst_init() initialize some power management
> unit address and clock addresses, needed for the reset driver. It doesn't do
> anything else, and also the reset driver doesn't work without calling this
> function. Thus, it does not make much sense that this function is independent
> from pm_reset_init().
>
> Delete the separate call to starfive_jh7110_inst_init(), and instead just call
> this function inside pm_reset_init().
>
> Doing this also fixes another problem: if starfive_jh7110_inst_init() returns an
> error code, it gets propagated to final_init() and OpenSBI hangs. This hang is
> not necessary, because failures within
> starfive_jh7110_inst_init() only mean OpenSBI cannot perform reboot or
> shutdown, but the system can still function normally.
>
> Signed-off-by: Nam Cao <namcao at linutronix.de>
> ---
> platform/generic/starfive/jh7110.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/platform/generic/starfive/jh7110.c
> b/platform/generic/starfive/jh7110.c
> index 6990425..c25e645 100644
> --- a/platform/generic/starfive/jh7110.c
> +++ b/platform/generic/starfive/jh7110.c
> @@ -190,6 +190,8 @@ static struct sbi_system_reset_device pm_reset = {
> .system_reset = pm_system_reset
> };
>
> +static int starfive_jh7110_inst_init(void *fdt);
> +
> static int pm_reset_init(void *fdt, int nodeoff,
> const struct fdt_match *match)
> {
> @@ -215,6 +217,10 @@ static int pm_reset_init(void *fdt, int nodeoff,
>
> pmic_inst.adapter = adapter;
>
> + rc = starfive_jh7110_inst_init(fdt);
> + if (rc)
> + return rc;
> +
> sbi_system_reset_add_device(&pm_reset);
>
> return 0;
> @@ -278,7 +284,6 @@ static int starfive_jh7110_final_init(bool cold_boot,
>
> if (cold_boot) {
> fdt_reset_driver_init(fdt, &fdt_reset_pmic);
> - return starfive_jh7110_inst_init(fdt);
> }
>
> return 0;
> --
> 2.39.2
Tested-by: Minda Chen <minda.chen at starfivetech.com>
More information about the opensbi
mailing list