On 17.08.21 12:10, Antony Pavlov wrote:
> There are console drivers (linux, virtio, litex)
> that don't support baud rate setting and has
> no setbrg (set baudrate) callback, so
> console_set_baudrate() returns -ENOSYS.
> 
> At the other hand console_set_baudrate() SUCCESS
> return value is needed for the loadx/loady commands
> correct work.
> 
> See discussion here:
> 
>   http://lists.infradead.org/pipermail/barebox/2021-May/036237.html
> 
> Signed-off-by: Antony Pavlov <[email protected]>

Reviewed-by: Ahmad Fatoum <[email protected]>
Tested-by: Ahmad Fatoum <[email protected]>

> ---
>  common/console.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/common/console.c b/common/console.c
> index ad1a6aaab2..c902239e31 100644
> --- a/common/console.c
> +++ b/common/console.c
> @@ -165,12 +165,12 @@ int console_set_baudrate(struct console_device *cdev, 
> unsigned baudrate)
>       int ret;
>       unsigned char c;
>  
> -     if (!cdev->setbrg)
> -             return -ENOSYS;
> -
>       if (cdev->baudrate == baudrate)
>               return 0;
>  
> +     if (!cdev->setbrg)
> +             return -ENOSYS;
> +
>       /*
>        * If the device is already active, change its baudrate.
>        * The baudrate of an inactive device will be set at activation time.
> @@ -336,11 +336,13 @@ int console_register(struct console_device *newcdev)
>               ret = newcdev->setbrg(newcdev, baudrate);
>               if (ret)
>                       return ret;
> -             newcdev->baudrate_param = newcdev->baudrate = baudrate;
> +             newcdev->baudrate_param = baudrate;
>               dev_add_param_uint32(dev, "baudrate", console_baudrate_set,
>                       NULL, &newcdev->baudrate_param, "%u", newcdev);
>       }
>  
> +     newcdev->baudrate = baudrate;
> +
>       if (newcdev->putc && !newcdev->puts)
>               newcdev->puts = __console_puts;
>  
> 


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to