On Mon, Feb 15, 2021 at 09:17:07PM +0900, Hector Martin wrote: > * Split out s3c24xx_serial_tx_chars from s3c24xx_serial_tx_irq, > where only the latter acquires the port lock. I miss here information why you do all this. > > * For S3C64xx, return IRQ_NONE if no flag bits were set, so the > interrupt core can detect IRQ storms. Note that both IRQ handlers > always return IRQ_HANDLED anyway, so 'or' logic isn't necessary here, > if either handler ran we are always going to return IRQ_HANDLED. It looks like separate patch. Your patches should do only one thing at once. The fact that you have here three bullet points is a warning sign. This is even more important if you do some refactorings and cleanups which should not affect functionality. Hiding there changes which could affect functionality is a no-go. > > * Rename s3c24xx_serial_rx_chars to s3c24xx_serial_rx_irq for > consistency with the above. All it does now is call two other > functions anyway. Separate patch for trivial renaming. > > Signed-off-by: Hector Martin <marcan@xxxxxxxxx> > --- > drivers/tty/serial/samsung_tty.c | 41 +++++++++++++++++++------------- > 1 file changed, 24 insertions(+), 17 deletions(-) > > diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c > index 21955be680a4..821cd0e4f870 100644 > --- a/drivers/tty/serial/samsung_tty.c > +++ b/drivers/tty/serial/samsung_tty.c > @@ -151,6 +151,9 @@ struct s3c24xx_uart_port { > #endif > }; > > +static void s3c24xx_serial_start_next_tx(struct s3c24xx_uart_port *ourport); > +static void s3c24xx_serial_tx_chars(struct s3c24xx_uart_port *ourport); > + > /* conversion functions */ > > #define s3c24xx_dev_to_port(__dev) dev_get_drvdata(__dev) > @@ -316,8 +319,6 @@ static void s3c24xx_serial_stop_tx(struct uart_port *port) > ourport->tx_mode = 0; > } > > -static void s3c24xx_serial_start_next_tx(struct s3c24xx_uart_port *ourport); > - Why moving this? Why adding s3c24xx_serial_tx_chars() forward declaration? Best regards, Krzysztof