The commit dda454e933c6 ("serial: mxc: Support bulk enabling clocks") breaks the booting of the BSH SMM S2 board. Restore proper booting of the board even in case of failure of either clk_get_bulk() or clk_enable_bulk().
Fixes: dda454e933c6 ("serial: mxc: Support bulk enabling clocks") Signed-off-by: Dario Binacchi <dario.binac...@amarulasolutions.com> --- drivers/serial/serial_mxc.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c index 28f4435d01dd..b09a5fe0f7a4 100644 --- a/drivers/serial/serial_mxc.c +++ b/drivers/serial/serial_mxc.c @@ -310,22 +310,31 @@ int mxc_serial_setbrg(struct udevice *dev, int baudrate) return 0; } -static int mxc_serial_probe(struct udevice *dev) +#if CONFIG_IS_ENABLED(CLK_CCF) +static void mxc_serial_enable_clk_bulk(struct udevice *dev) { struct mxc_serial_plat *plat = dev_get_plat(dev); -#if CONFIG_IS_ENABLED(CLK_CCF) int ret; ret = clk_get_bulk(dev, &plat->clks); if (ret) - return ret; + return; - ret = clk_enable_bulk(&plat->clks); - if (ret) - return ret; + clk_enable_bulk(&plat->clks); +} +#else +static mxc_serial_enable_clk_bulk(struct udevice *dev) +{ +} #endif - _mxc_serial_init(plat->reg, plat->use_dte); +static int mxc_serial_probe(struct udevice *dev) +{ + struct mxc_serial_plat *plat = dev_get_plat(dev); + + mxc_serial_enable_clk_bulk(dev); + + _mxc_serial_init(plat->reg, plat->use_dte); return 0; } -- 2.43.0