unsigned int xlp_uart_in(struct uart_port *p, int offset) { nlm_reg_t *mmio; unsigned int value; /* XLP uart does not need any mapping of regs */ offset = offset << p->regshift; mmio = (nlm_reg_t *)(p->membase + offset); value = netlogic_read_reg(mmio, 0); return value; }
unsigned int nlm_xlr_uart_in(struct uart_port *p, int offset) { nlm_reg_t *mmio; unsigned int value; /* XLR uart does not need any mapping of regs */ mmio = (nlm_reg_t *)(p->membase + (offset << p->regshift)); value = netlogic_read_reg(mmio, 0); /* See XLR/XLS errata */ if (offset == UART_MSR) value ^= 0xF0; else if (offset == UART_MCR) value ^= 0x3; return value; }