[PATCH 3/3] bsps/microblaze: Fix UART transmit interrupt
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Mar 30 05:55:27 UTC 2023
On 29.03.23 21:22, Alex White wrote:
> diff --git a/bsps/microblaze/shared/dev/serial/uartlite.c b/bsps/microblaze/shared/dev/serial/uartlite.c
> index e2007ee24a..f1b3c013a0 100644
> --- a/bsps/microblaze/shared/dev/serial/uartlite.c
> +++ b/bsps/microblaze/shared/dev/serial/uartlite.c
> @@ -47,10 +47,6 @@ static void microblaze_uart_interrupt( void *arg )
> char c = (char) XUartLite_ReadReg( ctx->address, XUL_RX_FIFO_OFFSET );
> rtems_termios_enqueue_raw_characters( tty, &c, 1 );
> }
> -
> - while ( ctx->transmitting && !XUartLite_IsTransmitEmpty( ctx->address ) ) {
> - rtems_termios_dequeue_characters( tty, 1 );
> - }
> }
> #endif
>
> @@ -81,6
I don't know the hardware, but this patch is very strange. Does it
really work?
Maybe it should just change the loop to:
while ( ctx->transmitting && XUartLite_IsTransmitEmpty( ctx->address
) ) {
rtems_termios_dequeue_characters( tty, 1 );
}
When the transmit register is empty, you can dequeue the transmitted
char from the Termios transmit queue.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list