static void uart00_shutdown(struct uart_port *port) { /* * disable all interrupts, disable the port */ UART_PUT_IEC(port, 0xff); /* disable break condition and fifos */ UART_PUT_MCR(port, UART_GET_MCR(port) &~UART_MCR_BR_MSK); /* * Free the interrupt */ free_irq(port->irq, port); }
static void uart00_console_write(struct console *co, const char *s, unsigned count) { #ifdef CONFIG_ARCH_CAMELOT struct uart_port *port = &epxa10db_port; unsigned int status, old_ies; int i; /* * First save the CR then disable the interrupts */ old_ies = UART_GET_IES(port); UART_PUT_IEC(port,0xff); /* * Now, do each character */ for (i = 0; i < count; i++) { do { status = UART_GET_TSR(port); } while (!UART_TX_READY(status)); UART_PUT_CHAR(port, s[i]); if (s[i] == '\n') { do { status = UART_GET_TSR(port); } while (!UART_TX_READY(status)); UART_PUT_CHAR(port, '\r'); } } /* * Finally, wait for transmitter to become empty * and restore the IES */ do { status = UART_GET_TSR(port); } while (status & UART_TSR_TX_LEVEL_MSK); UART_PUT_IES(port, old_ies); #endif }
static void uart00_stop_rx(struct uart_port *port) { UART_PUT_IEC(port, UART_IEC_RE_MSK); }
static void uart00_stop_tx(struct uart_port *port, unsigned int tty_stop) { UART_PUT_IEC(port, UART_IEC_TIE_MSK); }
static void uart00_stop_tx(struct uart_port *port, u_int from_tty) { UART_PUT_IEC(port, UART_IEC_TIE_MSK); }