mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-16 07:35:14 +00:00
serial: max310x: Fix tx_empty() callback
[ Upstream commit a8da3c7873
]
Function max310x_tx_empty() accesses the IRQSTS register, which is
cleared by IC when reading, so if there is an interrupt status, we
will lose it. This patch implement the transmitter check only by
the current FIFO level.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4104d973c6
commit
98b4968036
1 changed files with 2 additions and 5 deletions
|
@ -844,12 +844,9 @@ static void max310x_wq_proc(struct work_struct *ws)
|
|||
|
||||
static unsigned int max310x_tx_empty(struct uart_port *port)
|
||||
{
|
||||
unsigned int lvl, sts;
|
||||
u8 lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG);
|
||||
|
||||
lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG);
|
||||
sts = max310x_port_read(port, MAX310X_IRQSTS_REG);
|
||||
|
||||
return ((sts & MAX310X_IRQ_TXEMPTY_BIT) && !lvl) ? TIOCSER_TEMT : 0;
|
||||
return lvl ? 0 : TIOCSER_TEMT;
|
||||
}
|
||||
|
||||
static unsigned int max310x_get_mctrl(struct uart_port *port)
|
||||
|
|
Loading…
Reference in a new issue