Message ID | 20240225-b4-pl011-v1-1-2686496c1a17@outlook.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | [RESEND] serial: pl01x: set baudrate when probing | expand |
On Sun, Feb 25, 2024 at 08:38:33AM +0800, Yang Xiwen via B4 Relay wrote: > #if CONFIG_IS_ENABLED(OF_PLATDATA) > struct dtd_serial_pl01x *dtplat = &plat->dtplat; > @@ -301,10 +302,14 @@ int pl01x_serial_probe(struct udevice *dev) > #endif > priv->type = plat->type; > > - if (!plat->skip_init) > - return pl01x_generic_serial_init(priv->regs, priv->type); > - else > + if (!plat->skip_init) { > + ret = pl01x_generic_serial_init(priv->regs, priv->type); > + if (!ret) ^^^^ This if statement seems to be reversed. regards, dan carpenter > + return ret; > + return pl01x_serial_setbrg(dev, gd->baudrate); > + } else { > return 0; > + } > }
On 2/26/2024 4:23 PM, Dan Carpenter wrote: > On Sun, Feb 25, 2024 at 08:38:33AM +0800, Yang Xiwen via B4 Relay wrote: >> #if CONFIG_IS_ENABLED(OF_PLATDATA) >> struct dtd_serial_pl01x *dtplat = &plat->dtplat; >> @@ -301,10 +302,14 @@ int pl01x_serial_probe(struct udevice *dev) >> #endif >> priv->type = plat->type; >> >> - if (!plat->skip_init) >> - return pl01x_generic_serial_init(priv->regs, priv->type); >> - else >> + if (!plat->skip_init) { >> + ret = pl01x_generic_serial_init(priv->regs, priv->type); >> + if (!ret) > ^^^^ > This if statement seems to be reversed. Seems correct. Maybe i sent the wrong version. > > regards, > dan carpenter > >> + return ret; >> + return pl01x_serial_setbrg(dev, gd->baudrate); >> + } else { >> return 0; >> + } >> } >
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 428a4d210de5..57bbcaf3b619 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -290,6 +290,7 @@ int pl01x_serial_probe(struct udevice *dev) { struct pl01x_serial_plat *plat = dev_get_plat(dev); struct pl01x_priv *priv = dev_get_priv(dev); + int ret; #if CONFIG_IS_ENABLED(OF_PLATDATA) struct dtd_serial_pl01x *dtplat = &plat->dtplat; @@ -301,10 +302,14 @@ int pl01x_serial_probe(struct udevice *dev) #endif priv->type = plat->type; - if (!plat->skip_init) - return pl01x_generic_serial_init(priv->regs, priv->type); - else + if (!plat->skip_init) { + ret = pl01x_generic_serial_init(priv->regs, priv->type); + if (!ret) + return ret; + return pl01x_serial_setbrg(dev, gd->baudrate); + } else { return 0; + } } int pl01x_serial_getc(struct udevice *dev)