Lines Matching refs:sport

61 static inline int serial_in(struct pnx8xxx_port *sport, int offset)
63 return (__raw_readl(sport->port.membase + offset));
66 static inline void serial_out(struct pnx8xxx_port *sport, int offset, int value)
68 __raw_writel(value, sport->port.membase + offset);
74 static void pnx8xxx_mctrl_check(struct pnx8xxx_port *sport)
78 status = sport->port.ops->get_mctrl(&sport->port);
79 changed = status ^ sport->old_status;
84 sport->old_status = status;
87 sport->port.icount.rng++;
89 sport->port.icount.dsr++;
91 uart_handle_dcd_change(&sport->port, status & TIOCM_CAR);
93 uart_handle_cts_change(&sport->port, status & TIOCM_CTS);
95 wake_up_interruptible(&sport->port.state->port.delta_msr_wait);
104 struct pnx8xxx_port *sport = from_timer(sport, t, timer);
107 if (sport->port.state) {
108 spin_lock_irqsave(&sport->port.lock, flags);
109 pnx8xxx_mctrl_check(sport);
110 spin_unlock_irqrestore(&sport->port.lock, flags);
112 mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT);
121 struct pnx8xxx_port *sport =
126 ien = serial_in(sport, PNX8XXX_IEN);
127 serial_out(sport, PNX8XXX_IEN, ien & ~PNX8XXX_UART_INT_ALLTX);
130 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLTX);
138 struct pnx8xxx_port *sport =
143 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLTX);
146 ien = serial_in(sport, PNX8XXX_IEN);
147 serial_out(sport, PNX8XXX_IEN, ien | PNX8XXX_UART_INT_ALLTX);
155 struct pnx8xxx_port *sport =
160 ien = serial_in(sport, PNX8XXX_IEN);
161 serial_out(sport, PNX8XXX_IEN, ien & ~PNX8XXX_UART_INT_ALLRX);
164 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX);
172 struct pnx8xxx_port *sport =
175 mod_timer(&sport->timer, jiffies);
178 static void pnx8xxx_rx_chars(struct pnx8xxx_port *sport)
182 status = FIFO_TO_SM(serial_in(sport, PNX8XXX_FIFO)) |
183 ISTAT_TO_SM(serial_in(sport, PNX8XXX_ISTAT));
185 ch = serial_in(sport, PNX8XXX_FIFO) & 0xff;
187 sport->port.icount.rx++;
202 sport->port.icount.brk++;
203 if (uart_handle_break(&sport->port))
206 sport->port.icount.parity++;
208 sport->port.icount.frame++;
210 sport->port.icount.overrun++;
212 status &= sport->port.read_status_mask;
219 sport->port.sysrq = 0;
222 if (uart_handle_sysrq_char(&sport->port, ch))
225 uart_insert_char(&sport->port, status,
229 serial_out(sport, PNX8XXX_LCR, serial_in(sport, PNX8XXX_LCR) |
231 status = FIFO_TO_SM(serial_in(sport, PNX8XXX_FIFO)) |
232 ISTAT_TO_SM(serial_in(sport, PNX8XXX_ISTAT));
235 spin_unlock(&sport->port.lock);
236 tty_flip_buffer_push(&sport->port.state->port);
237 spin_lock(&sport->port.lock);
240 static void pnx8xxx_tx_chars(struct pnx8xxx_port *sport)
242 struct circ_buf *xmit = &sport->port.state->xmit;
244 if (sport->port.x_char) {
245 serial_out(sport, PNX8XXX_FIFO, sport->port.x_char);
246 sport->port.icount.tx++;
247 sport->port.x_char = 0;
255 pnx8xxx_mctrl_check(sport);
257 if (uart_circ_empty(xmit) || uart_tx_stopped(&sport->port)) {
258 pnx8xxx_stop_tx(&sport->port);
265 while (((serial_in(sport, PNX8XXX_FIFO) &
267 serial_out(sport, PNX8XXX_FIFO, xmit->buf[xmit->tail]);
269 sport->port.icount.tx++;
275 uart_write_wakeup(&sport->port);
278 pnx8xxx_stop_tx(&sport->port);
283 struct pnx8xxx_port *sport = dev_id;
286 spin_lock(&sport->port.lock);
288 status = serial_in(sport, PNX8XXX_ISTAT) & serial_in(sport, PNX8XXX_IEN);
292 pnx8xxx_rx_chars(sport);
296 pnx8xxx_tx_chars(sport);
299 serial_out(sport, PNX8XXX_ICLR, status);
301 spin_unlock(&sport->port.lock);
310 struct pnx8xxx_port *sport =
313 return serial_in(sport, PNX8XXX_FIFO) & PNX8XXX_UART_FIFO_TXFIFO_STA ? 0 : TIOCSER_TEMT;
318 struct pnx8xxx_port *sport =
325 msr = serial_in(sport, PNX8XXX_MCR);
336 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
346 struct pnx8xxx_port *sport =
351 spin_lock_irqsave(&sport->port.lock, flags);
352 lcr = serial_in(sport, PNX8XXX_LCR);
357 serial_out(sport, PNX8XXX_LCR, lcr);
358 spin_unlock_irqrestore(&sport->port.lock, flags);
363 struct pnx8xxx_port *sport =
370 retval = request_irq(sport->port.irq, pnx8xxx_int, 0,
371 "pnx8xxx-uart", sport);
379 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX |
382 serial_out(sport, PNX8XXX_IEN, serial_in(sport, PNX8XXX_IEN) |
389 spin_lock_irq(&sport->port.lock);
390 pnx8xxx_enable_ms(&sport->port);
391 spin_unlock_irq(&sport->port.lock);
398 struct pnx8xxx_port *sport =
405 del_timer_sync(&sport->timer);
410 serial_out(sport, PNX8XXX_IEN, 0);
415 lcr = serial_in(sport, PNX8XXX_LCR);
418 serial_out(sport, PNX8XXX_LCR, lcr);
423 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX |
429 free_irq(sport->port.irq, sport);
436 struct pnx8xxx_port *sport =
471 spin_lock_irqsave(&sport->port.lock, flags);
473 sport->port.read_status_mask = ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN) |
477 sport->port.read_status_mask |=
481 sport->port.read_status_mask |=
487 sport->port.ignore_status_mask = 0;
489 sport->port.ignore_status_mask |=
493 sport->port.ignore_status_mask |=
500 sport->port.ignore_status_mask |=
508 sport->port.ignore_status_mask |=
511 del_timer_sync(&sport->timer);
521 old_ien = serial_in(sport, PNX8XXX_IEN);
522 serial_out(sport, PNX8XXX_IEN, old_ien & ~(PNX8XXX_UART_INT_ALLTX |
525 while (serial_in(sport, PNX8XXX_FIFO) & PNX8XXX_UART_FIFO_TXFIFO_STA)
529 serial_out(sport, PNX8XXX_IEN, 0);
536 serial_out(sport, PNX8XXX_LCR, lcr_fcr);
540 serial_out(sport, PNX8XXX_BAUD, quot);
542 serial_out(sport, PNX8XXX_ICLR, -1);
544 serial_out(sport, PNX8XXX_IEN, old_ien);
546 if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
547 pnx8xxx_enable_ms(&sport->port);
549 spin_unlock_irqrestore(&sport->port.lock, flags);
554 struct pnx8xxx_port *sport =
557 return sport->port.type == PORT_PNX8XXX ? "PNX8XXX" : NULL;
565 struct pnx8xxx_port *sport =
568 release_mem_region(sport->port.mapbase, UART_PORT_SIZE);
576 struct pnx8xxx_port *sport =
578 return request_mem_region(sport->port.mapbase, UART_PORT_SIZE,
587 struct pnx8xxx_port *sport =
591 pnx8xxx_request_port(&sport->port) == 0)
592 sport->port.type = PORT_PNX8XXX;
603 struct pnx8xxx_port *sport =
609 if (sport->port.irq != ser->irq)
613 if (sport->port.uartclk / 16 != ser->baud_base)
615 if ((void *)sport->port.mapbase != ser->iomem_base)
617 if (sport->port.iobase != ser->port)
668 struct pnx8xxx_port *sport =
674 status = serial_in(sport, PNX8XXX_FIFO);
676 serial_out(sport, PNX8XXX_FIFO, ch);
684 struct pnx8xxx_port *sport = &pnx8xxx_ports[co->index];
690 old_ien = serial_in(sport, PNX8XXX_IEN);
691 serial_out(sport, PNX8XXX_IEN, old_ien & ~(PNX8XXX_UART_INT_ALLTX |
694 uart_console_write(&sport->port, s, count, pnx8xxx_console_putchar);
702 status = serial_in(sport, PNX8XXX_FIFO);
706 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_TX |
709 serial_out(sport, PNX8XXX_IEN, old_ien);
715 struct pnx8xxx_port *sport;
728 sport = &pnx8xxx_ports[co->index];
733 return uart_set_options(&sport->port, co, baud, parity, bits, flow);
772 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
774 return uart_suspend_port(&pnx8xxx_reg, &sport->port);
779 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
781 return uart_resume_port(&pnx8xxx_reg, &sport->port);
810 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
812 if (sport)
813 uart_remove_one_port(&pnx8xxx_reg, &sport->port);