aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty/serial/pmac_zilog.c
diff options
context:
space:
mode:
authorGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2024-04-23 13:24:45 +0200
committerGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2024-04-23 13:24:45 +0200
commit660a708098569a66a47d0abdad998e29e1259de6 (patch)
tree513d7f3cda11cb65f91a6f55b72308accf079c8d /drivers/tty/serial/pmac_zilog.c
parentserial: msm: check dma_map_sg() return value properly (diff)
parentLinux 6.9-rc5 (diff)
downloadlinux-660a708098569a66a47d0abdad998e29e1259de6.tar.gz
linux-660a708098569a66a47d0abdad998e29e1259de6.tar.bz2
linux-660a708098569a66a47d0abdad998e29e1259de6.zip
Merge 6.9-rc5 into tty-next
We want the tty fixes in here as well, and it resolves a merge conflict in: drivers/tty/serial/serial_core.c as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/pmac_zilog.c')
-rw-r--r--drivers/tty/serial/pmac_zilog.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
index b6909dcb137d..8969b11cc0a9 100644
--- a/drivers/tty/serial/pmac_zilog.c
+++ b/drivers/tty/serial/pmac_zilog.c
@@ -210,7 +210,6 @@ static bool pmz_receive_chars(struct uart_pmac_port *uap)
{
struct tty_port *port;
unsigned char ch, r1, drop, flag;
- int loops = 0;
/* Sanity check, make sure the old bug is no longer happening */
if (uap->port.state == NULL) {
@@ -291,25 +290,12 @@ static bool pmz_receive_chars(struct uart_pmac_port *uap)
if (r1 & Rx_OVR)
tty_insert_flip_char(port, 0, TTY_OVERRUN);
next_char:
- /* We can get stuck in an infinite loop getting char 0 when the
- * line is in a wrong HW state, we break that here.
- * When that happens, I disable the receive side of the driver.
- * Note that what I've been experiencing is a real irq loop where
- * I'm getting flooded regardless of the actual port speed.
- * Something strange is going on with the HW
- */
- if ((++loops) > 1000)
- goto flood;
ch = read_zsreg(uap, R0);
if (!(ch & Rx_CH_AV))
break;
}
return true;
- flood:
- pmz_interrupt_control(uap, 0);
- pmz_error("pmz: rx irq flood !\n");
- return true;
}
static void pmz_status_handle(struct uart_pmac_port *uap)