On 2017-04-24 19:29, Andy Shevchenko wrote: > There are Exar quirks in 8250_port which belong to 8250_exar module. > Move them to the correct module and do not contaminate generic code with it. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > Just compile tested. I have no hardware to test this approach. It would > be nice if you guys (Jan, Sudip) can take it and continue on real > hardware. Why am I interested in this? It would make my life slightly > easier for runtime PM support developing for 8250. > > TODO: > - move get_divisor() / set_divisor() quirks as well > - perhaps move startup() / shutdown() either > - patch can be split a bit since there is at least one useless check > in exar_handle_irq() for port type (this might be separate clean up) > > I would be pleased if this just works after being applied. > > drivers/tty/serial/8250/8250_exar.c | 57 ++++++++++++++++++++++++++++- > drivers/tty/serial/8250/8250_port.c | 73 ------------------------------------- > 2 files changed, 56 insertions(+), 74 deletions(-) > ... > @@ -684,18 +681,6 @@ EXPORT_SYMBOL_GPL(serial8250_rpm_put_tx); > static void serial8250_set_sleep(struct uart_8250_port *p, int sleep) > { > unsigned char lcr = 0, efr = 0; > - /* > - * Exar UARTs have a SLEEP register that enables or disables > - * each UART to enter sleep mode separately. On the XR17V35x the > - * register is accessible to each UART at the UART_EXAR_SLEEP > - * offset but the UART channel may only write to the corresponding > - * bit. > - */ > - if ((p->port.type == PORT_XR17V35X) || > - (p->port.type == PORT_XR17D15X)) { > - serial_out(p, UART_EXAR_SLEEP, sleep ? 0xff : 0); > - return; > - } > > if (p->capabilities & UART_CAP_SLEEP) { > if (p->capabilities & UART_CAP_EFR) { Which patch(es) does this depend on? The hunk above is different in Linus' tree and also tty.git. Jan
Attachment:
signature.asc
Description: OpenPGP digital signature