[PATCH RESEND v4 3/8] console: support set baudrate for fixed baudrate drivers
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Aug 23 05:01:52 PDT 2021
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 <antonynpavlov at gmail.com>
Reviewed-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
Tested-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> 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 |
More information about the barebox
mailing list