From 16b854d79a95059cc5530638c0ac1e06b9928866 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 14 Jul 2018 15:46:49 +0100 Subject: [PATCH] trs80m1: video genie serial ports .. continued --- Kernel/platform-trs80m1/devtty.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Kernel/platform-trs80m1/devtty.c b/Kernel/platform-trs80m1/devtty.c index 8e7e1fc6..6f966ae3 100644 --- a/Kernel/platform-trs80m1/devtty.c +++ b/Kernel/platform-trs80m1/devtty.c @@ -65,11 +65,23 @@ ttyready_t tty_writeready(uint8_t minor) if (minor < 3) return TTY_READY_NOW; /* FIXME RTS/CTS is supported by the hardware */ - if (minor == 3) + if (minor == 3) { + if (ttydata[3].termios.c_cflag & CRTSCTS) { + reg = tr1865_ctrl; + if (!(reg & 0x80)) + return TTY_READY_LATER; + } reg = tr1865_status; - else - reg = vg_tr1865_wrst; - return (reg & 0x40) ? TTY_READY_NOW : TTY_READY_SOON; + return (reg & 0x40) ? TTY_READY_NOW : TTY_READY_SOON; + } + /* minor == 4 */ + reg = vg_tr1865_wrst; + if (ttydata[4].termios.c_cflag & CRTSCTS) { + /* CTS ? */ + if (!(reg & 0x40)) + return TTY_READY_LATER; + } + return (reg & 0x80) ? TTY_READY_NOW : TTY_READY_SOON; } static uint8_t vtbuf[64]; @@ -150,7 +162,7 @@ void tty_poll(void) if (ports & 0x10) { reg = vg_tr1865_wrst; - if (reg & 0x80) { + if (reg & 0x01) { reg = vg_tr1865_ctrd; tty_inproc(4, reg); } -- 2.34.1