void uart_putc(const char c) { if (c != '\n') { while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0); *(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = (unsigned long)c; fast_iob(); udelay(10); } else { while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0); *(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = 0x0d; fast_iob(); udelay(10); while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0); *(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = 0x0a; fast_iob(); udelay(10); } while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0); }
void __init init_ioasic_irqs(int base) { int i; /* Mask interrupts. */ ioasic_write(IO_REG_SIMR, 0); fast_iob(); for (i = base; i < base + IO_INR_DMA; i++) set_irq_chip_and_handler(i, &ioasic_irq_type, handle_level_irq); for (; i < base + IO_IRQ_LINES; i++) set_irq_chip(i, &ioasic_dma_irq_type); ioasic_irq_base = base; }
static inline void end_ioasic_dma_irq(unsigned int irq) { clear_ioasic_irq(irq); fast_iob(); end_ioasic_irq(irq); }
static inline void ack_ioasic_irq(unsigned int irq) { mask_ioasic_irq(irq); fast_iob(); }
static void ack_ioasic_irq(struct irq_data *d) { mask_ioasic_irq(d); fast_iob(); }