dz.c (9a64e8e0ace51b309fdcff4b4754b3649250382a) | dz.c (2e124b4a390ca85325fae75764bef92f0547fa25) |
---|---|
1/* 2 * dz.c: Serial port driver for DECstations equipped 3 * with the DZ chipset. 4 * 5 * Copyright (C) 1998 Olivier A. D. Lebaillif 6 * 7 * Email: olivier.lebaillif@ifrsys.com 8 * --- 173 unchanged lines hidden (view full) --- 182 * 183 * This routine deals with inputs from any lines. 184 * ------------------------------------------------------------ 185 */ 186static inline void dz_receive_chars(struct dz_mux *mux) 187{ 188 struct uart_port *uport; 189 struct dz_port *dport = &mux->dport[0]; | 1/* 2 * dz.c: Serial port driver for DECstations equipped 3 * with the DZ chipset. 4 * 5 * Copyright (C) 1998 Olivier A. D. Lebaillif 6 * 7 * Email: olivier.lebaillif@ifrsys.com 8 * --- 173 unchanged lines hidden (view full) --- 182 * 183 * This routine deals with inputs from any lines. 184 * ------------------------------------------------------------ 185 */ 186static inline void dz_receive_chars(struct dz_mux *mux) 187{ 188 struct uart_port *uport; 189 struct dz_port *dport = &mux->dport[0]; |
190 struct tty_struct *tty = NULL; | |
191 struct uart_icount *icount; 192 int lines_rx[DZ_NB_PORT] = { [0 ... DZ_NB_PORT - 1] = 0 }; 193 unsigned char ch, flag; 194 u16 status; 195 int i; 196 197 while ((status = dz_in(dport, DZ_RBUF)) & DZ_DVAL) { 198 dport = &mux->dport[LINE(status)]; 199 uport = &dport->port; | 190 struct uart_icount *icount; 191 int lines_rx[DZ_NB_PORT] = { [0 ... DZ_NB_PORT - 1] = 0 }; 192 unsigned char ch, flag; 193 u16 status; 194 int i; 195 196 while ((status = dz_in(dport, DZ_RBUF)) & DZ_DVAL) { 197 dport = &mux->dport[LINE(status)]; 198 uport = &dport->port; |
200 tty = uport->state->port.tty; /* point to the proper dev */ | |
201 202 ch = UCHAR(status); /* grab the char */ 203 flag = TTY_NORMAL; 204 205 icount = &uport->icount; 206 icount->rx++; 207 208 if (unlikely(status & (DZ_OERR | DZ_FERR | DZ_PERR))) { --- 35 unchanged lines hidden (view full) --- 244 if (uart_handle_sysrq_char(uport, ch)) 245 continue; 246 247 uart_insert_char(uport, status, DZ_OERR, ch, flag); 248 lines_rx[LINE(status)] = 1; 249 } 250 for (i = 0; i < DZ_NB_PORT; i++) 251 if (lines_rx[i]) | 199 200 ch = UCHAR(status); /* grab the char */ 201 flag = TTY_NORMAL; 202 203 icount = &uport->icount; 204 icount->rx++; 205 206 if (unlikely(status & (DZ_OERR | DZ_FERR | DZ_PERR))) { --- 35 unchanged lines hidden (view full) --- 242 if (uart_handle_sysrq_char(uport, ch)) 243 continue; 244 245 uart_insert_char(uport, status, DZ_OERR, ch, flag); 246 lines_rx[LINE(status)] = 1; 247 } 248 for (i = 0; i < DZ_NB_PORT; i++) 249 if (lines_rx[i]) |
252 tty_flip_buffer_push(mux->dport[i].port.state->port.tty); | 250 tty_flip_buffer_push(&mux->dport[i].port.state->port); |
253} 254 255/* 256 * ------------------------------------------------------------ 257 * transmit_char () 258 * 259 * This routine deals with outputs to any lines. 260 * ------------------------------------------------------------ --- 695 unchanged lines hidden --- | 251} 252 253/* 254 * ------------------------------------------------------------ 255 * transmit_char () 256 * 257 * This routine deals with outputs to any lines. 258 * ------------------------------------------------------------ --- 695 unchanged lines hidden --- |