[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9f1f4434-56cb-e8e7-b947-6630752a74c3@mleia.com>
Date: Wed, 2 Mar 2022 20:21:15 +0200
From: Vladimir Zapolskiy <vz@...ia.com>
To: Jiri Slaby <jslaby@...e.cz>, gregkh@...uxfoundation.org
Cc: linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org,
Richard Genoud <richard.genoud@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Tobias Klauser <tklauser@...tanz.ch>,
Paul Cercueil <paul@...pouillou.net>,
Russell King <linux@...linux.org.uk>,
Vineet Gupta <vgupta@...nel.org>,
Nicolas Ferre <nicolas.ferre@...rochip.com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Ludovic Desroches <ludovic.desroches@...rochip.com>,
bcm-kernel-feedback-list@...adcom.com,
Alexander Shiyan <shc_work@...l.ru>,
Baruch Siach <baruch@...s.co.il>,
"Maciej W. Rozycki" <macro@...am.me.uk>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
NXP Linux Team <linux-imx@....com>,
Karol Gugala <kgugala@...micro.com>,
Mateusz Holenko <mholenko@...micro.com>,
Neil Armstrong <narmstrong@...libre.com>,
Kevin Hilman <khilman@...libre.com>,
Jerome Brunet <jbrunet@...libre.com>,
Martin Blumenstingl <martin.blumenstingl@...glemail.com>,
Taichi Sugaya <sugaya.taichi@...ionext.com>,
Takao Orito <orito.takao@...ionext.com>,
Liviu Dudau <liviu.dudau@....com>,
Sudeep Holla <sudeep.holla@....com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Andreas Färber <afaerber@...e.de>,
Manivannan Sadhasivam <mani@...nel.org>,
Michael Ellerman <mpe@...erman.id.au>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@...onical.com>,
Orson Zhai <orsonzhai@...il.com>,
Baolin Wang <baolin.wang7@...il.com>,
Chunyan Zhang <zhang.lyra@...il.com>,
Patrice Chotard <patrice.chotard@...s.st.com>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>,
"David S. Miller" <davem@...emloft.net>,
Peter Korsgaard <peter@...sgaard.com>,
Michal Simek <michal.simek@...inx.com>
Subject: Re: [PATCH v3] serial: make uart_console_write->putchar()'s character
an unsigned char
On 3/2/22 9:27 AM, Jiri Slaby wrote:
> Currently, uart_console_write->putchar's second parameter (the
> character) is of type int. It makes little sense, provided uart_console_write()
> accepts the input string as "const char *s" and passes its content -- the
> characters -- to putchar(). So switch the character's type to unsigned
> char.
>
> We don't use char as that is signed on some platforms. That would cause
> troubles for drivers which (implicitly) cast the char to u16 when
> writing to the device. Sign extension would happen in that case and the
> value written would be completely different to the provided char. DZ is
> an example of such a driver -- on MIPS, it uses u16 for dz_out in
> dz_console_putchar().
>
> Note we do the char -> uchar conversion implicitly in
> uart_console_write(). Provided we do not change size of the data type,
> sign extension does not happen there, so the problem is void.
>
> This makes the types consistent and unified with the rest of the uart
> layer, which uses unsigned char in most places already. One exception is
> xmit_buf, but that is going to be converted later.
>
> Signed-off-by: Jiri Slaby <jslaby@...e.cz>
> Acked-by: Richard Genoud <richard.genoud@...il.com> [atmel_serial]
> Acked-by: Florian Fainelli <f.fainelli@...il.com> [bcm63xx_uart]
> Acked-by: Tobias Klauser <tklauser@...tanz.ch> [altera_*]
> Cc: Paul Cercueil <paul@...pouillou.net>
> Cc: Russell King <linux@...linux.org.uk>
> Cc: Vineet Gupta <vgupta@...nel.org>
> Cc: Nicolas Ferre <nicolas.ferre@...rochip.com>
> Cc: Alexandre Belloni <alexandre.belloni@...tlin.com>
> Cc: Ludovic Desroches <ludovic.desroches@...rochip.com>
> Cc: bcm-kernel-feedback-list@...adcom.com
> Cc: Alexander Shiyan <shc_work@...l.ru>
> Cc: Baruch Siach <baruch@...s.co.il>
> Cc: "Maciej W. Rozycki" <macro@...am.me.uk>
> Cc: Paul Walmsley <paul.walmsley@...ive.com>
> Cc: Palmer Dabbelt <palmer@...belt.com>
> Cc: Albert Ou <aou@...s.berkeley.edu>
> Cc: Shawn Guo <shawnguo@...nel.org>
> Cc: Sascha Hauer <s.hauer@...gutronix.de>
> Cc: Pengutronix Kernel Team <kernel@...gutronix.de>
> Cc: Fabio Estevam <festevam@...il.com>
> Cc: NXP Linux Team <linux-imx@....com>
> Cc: Karol Gugala <kgugala@...micro.com>
> Cc: Mateusz Holenko <mholenko@...micro.com>
> Cc: Vladimir Zapolskiy <vz@...ia.com>
> Cc: Neil Armstrong <narmstrong@...libre.com>
> Cc: Kevin Hilman <khilman@...libre.com>
> Cc: Jerome Brunet <jbrunet@...libre.com>
> Cc: Martin Blumenstingl <martin.blumenstingl@...glemail.com>
> Cc: Taichi Sugaya <sugaya.taichi@...ionext.com>
> Cc: Takao Orito <orito.takao@...ionext.com>
> Cc: Liviu Dudau <liviu.dudau@....com>
> Cc: Sudeep Holla <sudeep.holla@....com>
> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
> Cc: "Andreas Färber" <afaerber@...e.de>
> Cc: Manivannan Sadhasivam <mani@...nel.org>
> Cc: Michael Ellerman <mpe@...erman.id.au>
> Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>
> Cc: Paul Mackerras <paulus@...ba.org>
> Cc: Andy Gross <agross@...nel.org>
> Cc: Bjorn Andersson <bjorn.andersson@...aro.org>
> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@...onical.com>
> Cc: Orson Zhai <orsonzhai@...il.com>
> Cc: Baolin Wang <baolin.wang7@...il.com>
> Cc: Chunyan Zhang <zhang.lyra@...il.com>
> Cc: Patrice Chotard <patrice.chotard@...s.st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@...il.com>
> Cc: Alexandre Torgue <alexandre.torgue@...s.st.com>
> Cc: "David S. Miller" <davem@...emloft.net>
> Cc: Peter Korsgaard <peter@...sgaard.com>
> Cc: Michal Simek <michal.simek@...inx.com>
> ---
[snip]
> diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
> index 54437a087aa0..93140cac1ca1 100644
> --- a/drivers/tty/serial/lpc32xx_hs.c
> +++ b/drivers/tty/serial/lpc32xx_hs.c
> @@ -122,7 +122,7 @@ static void wait_for_xmit_ready(struct uart_port *port)
> }
> }
>
> -static void lpc32xx_hsuart_console_putchar(struct uart_port *port, int ch)
> +static void lpc32xx_hsuart_console_putchar(struct uart_port *port, unsigned char ch)
> {
> wait_for_xmit_ready(port);
> writel((u32)ch, LPC32XX_HSUART_FIFO(port->membase));
for NXP LPC32xx HS UART:
Acked-by: Vladimir Zapolskiy <vz@...ia.com>
--
Best wishes,
Vladimir
Powered by blists - more mailing lists