Lines Matching defs:dport

77 	struct dz_port		dport[DZ_NB_PORT];
99 static u16 dz_in(struct dz_port *dport, unsigned offset)
101 void __iomem *addr = dport->port.membase + offset;
106 static void dz_out(struct dz_port *dport, unsigned offset, u16 value)
108 void __iomem *addr = dport->port.membase + offset;
125 struct dz_port *dport = to_dport(uport);
126 u16 tmp, mask = 1 << dport->port.line;
128 tmp = dz_in(dport, DZ_TCR); /* read the TX flag */
130 dz_out(dport, DZ_TCR, tmp);
135 struct dz_port *dport = to_dport(uport);
136 u16 tmp, mask = 1 << dport->port.line;
138 tmp = dz_in(dport, DZ_TCR); /* read the TX flag */
140 dz_out(dport, DZ_TCR, tmp);
145 struct dz_port *dport = to_dport(uport);
147 dport->cflag &= ~DZ_RXENAB;
148 dz_out(dport, DZ_LPR, dport->cflag);
181 struct dz_port *dport = &mux->dport[0];
188 while ((status = dz_in(dport, DZ_RBUF)) & DZ_DVAL) {
189 dport = &mux->dport[LINE(status)];
190 uport = &dport->port;
242 tty_flip_buffer_push(&mux->dport[i].port.state->port);
254 struct dz_port *dport = &mux->dport[0];
259 status = dz_in(dport, DZ_CSR);
260 dport = &mux->dport[LINE(status)];
261 xmit = &dport->port.state->xmit;
263 if (dport->port.x_char) { /* XON/XOFF chars */
264 dz_out(dport, DZ_TDR, dport->port.x_char);
265 dport->port.icount.tx++;
266 dport->port.x_char = 0;
270 if (uart_circ_empty(xmit) || uart_tx_stopped(&dport->port)) {
271 spin_lock(&dport->port.lock);
272 dz_stop_tx(&dport->port);
273 spin_unlock(&dport->port.lock);
282 dz_out(dport, DZ_TDR, tmp);
283 uart_xmit_advance(&dport->port, 1);
286 uart_write_wakeup(&dport->port);
290 spin_lock(&dport->port.lock);
291 dz_stop_tx(&dport->port);
292 spin_unlock(&dport->port.lock);
304 static inline void check_modem_status(struct dz_port *dport)
314 if (dport->port.line != DZ_MODEM)
317 status = dz_in(dport, DZ_MSR);
321 dport->port.icount.dsr++;
335 struct dz_port *dport = &mux->dport[0];
339 status = dz_in(dport, DZ_CSR);
361 struct dz_port *dport = to_dport(uport);
364 if (dport->port.line == DZ_MODEM) {
365 if (dz_in(dport, DZ_MSR) & DZ_MODEM_DSR)
377 struct dz_port *dport = to_dport(uport);
380 if (dport->port.line == DZ_MODEM) {
381 tmp = dz_in(dport, DZ_TCR);
386 dz_out(dport, DZ_TCR, tmp);
399 struct dz_port *dport = to_dport(uport);
400 struct dz_mux *mux = dport->mux;
410 ret = request_irq(dport->port.irq, dz_interrupt,
414 printk(KERN_ERR "dz: Cannot get IRQ %d!\n", dport->port.irq);
418 spin_lock_irqsave(&dport->port.lock, flags);
421 tmp = dz_in(dport, DZ_CSR);
423 dz_out(dport, DZ_CSR, tmp);
425 spin_unlock_irqrestore(&dport->port.lock, flags);
440 struct dz_port *dport = to_dport(uport);
441 struct dz_mux *mux = dport->mux;
446 spin_lock_irqsave(&dport->port.lock, flags);
447 dz_stop_tx(&dport->port);
448 spin_unlock_irqrestore(&dport->port.lock, flags);
453 tmp = dz_in(dport, DZ_CSR);
455 dz_out(dport, DZ_CSR, tmp);
457 free_irq(dport->port.irq, mux);
475 struct dz_port *dport = to_dport(uport);
476 unsigned short tmp, mask = 1 << dport->port.line;
478 tmp = dz_in(dport, DZ_TCR);
490 struct dz_port *dport = to_dport(uport);
492 unsigned short tmp, mask = 1 << dport->port.line;
495 tmp = dz_in(dport, DZ_TCR);
500 dz_out(dport, DZ_TCR, tmp);
543 static void dz_reset(struct dz_port *dport)
545 struct dz_mux *mux = dport->mux;
550 dz_out(dport, DZ_CSR, DZ_CLR);
551 while (dz_in(dport, DZ_CSR) & DZ_CLR);
555 dz_out(dport, DZ_CSR, DZ_MSE);
563 struct dz_port *dport = to_dport(uport);
568 cflag = dport->port.line;
611 spin_lock_irqsave(&dport->port.lock, flags);
615 dz_out(dport, DZ_LPR, cflag);
616 dport->cflag = cflag;
619 dport->port.read_status_mask = DZ_OERR;
621 dport->port.read_status_mask |= DZ_FERR | DZ_PERR;
623 dport->port.read_status_mask |= DZ_BREAK;
628 dport->port.ignore_status_mask |= DZ_OERR;
630 dport->port.ignore_status_mask |= DZ_FERR | DZ_PERR;
632 dport->port.ignore_status_mask |= DZ_BREAK;
634 spin_unlock_irqrestore(&dport->port.lock, flags);
645 struct dz_port *dport = to_dport(uport);
648 spin_lock_irqsave(&dport->port.lock, flags);
650 dz_start_tx(&dport->port);
652 dz_stop_tx(&dport->port);
653 spin_unlock_irqrestore(&dport->port.lock, flags);
715 struct dz_port *dport = to_dport(uport);
723 dz_reset(dport);
776 struct dz_port *dport = &dz_mux.dport[line];
777 struct uart_port *uport = &dport->port;
779 dport->mux = &dz_mux;
809 struct dz_port *dport = to_dport(uport);
814 spin_lock_irqsave(&dport->port.lock, flags);
815 csr = dz_in(dport, DZ_CSR);
816 dz_out(dport, DZ_CSR, csr & ~DZ_TIE);
817 tcr = dz_in(dport, DZ_TCR);
818 tcr |= 1 << dport->port.line;
820 dz_out(dport, DZ_TCR, mask);
822 spin_unlock_irqrestore(&dport->port.lock, flags);
825 trdy = dz_in(dport, DZ_CSR);
829 if (trdy == dport->port.line)
832 dz_out(dport, DZ_TCR, mask);
838 dz_out(dport, DZ_TDR, ch);
840 dz_out(dport, DZ_TCR, tcr);
841 dz_out(dport, DZ_CSR, csr);
856 struct dz_port *dport = &dz_mux.dport[co->index];
860 uart_console_write(&dport->port, str, count, dz_console_putchar);
865 struct dz_port *dport = &dz_mux.dport[co->index];
866 struct uart_port *uport = &dport->port;
877 spin_lock_init(&dport->port.lock); /* For dz_pm(). */
879 dz_reset(dport);
885 return uart_set_options(&dport->port, co, baud, parity, bits, flow);
942 uart_add_one_port(&dz_reg, &dz_mux.dport[i].port);