[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e8cf9ed3-e2d3-4764-b1c3-87e38e99b4a5@gmx.de>
Date: Thu, 14 Dec 2023 10:00:00 +0100
From: Lino Sanfilippo <LinoSanfilippo@....de>
To: Manikanta Guntupalli <manikanta.guntupalli@....com>, git@....com,
michal.simek@....com, gregkh@...uxfoundation.org,
robh+dt@...nel.org, krzysztof.kozlowski+dt@...aro.org,
conor+dt@...nel.org, linux-serial@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
jirislaby@...nel.org, linux-arm-kernel@...ts.infradead.org
Cc: radhey.shyam.pandey@....com, srinivas.goud@....com,
shubhrajyoti.datta@....com, manion05gk@...il.com
Subject: Re: [PATCH V5 3/3] tty: serial: uartps: Add rs485 support to uartps
driver
Hi,
On 13.12.23 14:00, Manikanta Guntupalli wrote:
>
> +/**
> + * cdns_rs485_rx_callback - Timer rx callback handler for rs485.
> + * @t: Handle to the timer list structure
> + */
> +static void cdns_rs485_rx_callback(struct timer_list *t)
> +{
> + struct cdns_uart *cdns_uart = from_timer(cdns_uart, t, timer);
> +
> + /*
> + * Default Rx should be setup, because Rx signaling path
> + * need to enable to receive data.
> + */
> + cdns_rs485_rx_setup(cdns_uart);
> +}
> +
> +/**
> + * cdns_rs485_tx_callback - Timer tx callback handler for rs485.
> + * @t: Handle to the timer list structure
> + */
> +static void cdns_rs485_tx_callback(struct timer_list *t)
> +{
> + struct cdns_uart *cdns_uart = from_timer(cdns_uart, t, timer);
> +
> + cdns_uart_handle_tx(cdns_uart->port);
This is called without holding the port lock now. Are you sure the lock is not
needed? AFAIK the port lock is needed at least for accessing the circular
buffer.
> +
> + /* Enable the TX Empty interrupt */
> + writel(CDNS_UART_IXR_TXEMPTY, cdns_uart->port->membase + CDNS_UART_IER);
> +
> + if (uart_circ_empty(&cdns_uart->port->state->xmit) ||
> + uart_tx_stopped(cdns_uart->port)) {
> + timer_setup(&cdns_uart->timer, cdns_rs485_rx_callback, 0);
> + mod_timer(&cdns_uart->timer, jiffies +
> + msecs_to_jiffies(cdns_uart->port->rs485.delay_rts_after_send));
> + }
> +}
Regards,
Lino
Powered by blists - more mailing lists