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 ---