Merge tag 'tty-4.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

I wrote:
"Serial driver fixes for 4.19-rc7

Here are 3 small serial driver fixes for 4.19-rc7
- 2 sh-sci bugfixes for reported issues
- a revert of the PM handling for the 8250_dw code

All of these have been in linux-next with no reported issues."

* tag 'tty-4.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
Revert "serial: sh-sci: Allow for compressed SCIF address"
Revert "serial: sh-sci: Remove SCIx_RZ_SCIFA_REGTYPE"
Revert "serial: 8250_dw: Fix runtime PM handling"

Changed files
+42 -19
drivers
tty
serial
include
linux
-4
drivers/tty/serial/8250/8250_dw.c
··· 630 630 if (!data->skip_autocfg) 631 631 dw8250_setup_port(p); 632 632 633 - #ifdef CONFIG_PM 634 - uart.capabilities |= UART_CAP_RPM; 635 - #endif 636 - 637 633 /* If we have a valid fifosize, try hooking up DMA */ 638 634 if (p->fifosize) { 639 635 data->dma.rxconf.src_maxburst = p->fifosize / 4;
+41 -15
drivers/tty/serial/sh-sci.c
··· 292 292 }, 293 293 294 294 /* 295 + * The "SCIFA" that is in RZ/T and RZ/A2. 296 + * It looks like a normal SCIF with FIFO data, but with a 297 + * compressed address space. Also, the break out of interrupts 298 + * are different: ERI/BRI, RXI, TXI, TEI, DRI. 299 + */ 300 + [SCIx_RZ_SCIFA_REGTYPE] = { 301 + .regs = { 302 + [SCSMR] = { 0x00, 16 }, 303 + [SCBRR] = { 0x02, 8 }, 304 + [SCSCR] = { 0x04, 16 }, 305 + [SCxTDR] = { 0x06, 8 }, 306 + [SCxSR] = { 0x08, 16 }, 307 + [SCxRDR] = { 0x0A, 8 }, 308 + [SCFCR] = { 0x0C, 16 }, 309 + [SCFDR] = { 0x0E, 16 }, 310 + [SCSPTR] = { 0x10, 16 }, 311 + [SCLSR] = { 0x12, 16 }, 312 + }, 313 + .fifosize = 16, 314 + .overrun_reg = SCLSR, 315 + .overrun_mask = SCLSR_ORER, 316 + .sampling_rate_mask = SCI_SR(32), 317 + .error_mask = SCIF_DEFAULT_ERROR_MASK, 318 + .error_clear = SCIF_ERROR_CLEAR, 319 + }, 320 + 321 + /* 295 322 * Common SH-3 SCIF definitions. 296 323 */ 297 324 [SCIx_SH3_SCIF_REGTYPE] = { ··· 346 319 [SCIx_SH4_SCIF_REGTYPE] = { 347 320 .regs = { 348 321 [SCSMR] = { 0x00, 16 }, 349 - [SCBRR] = { 0x02, 8 }, 350 - [SCSCR] = { 0x04, 16 }, 351 - [SCxTDR] = { 0x06, 8 }, 352 - [SCxSR] = { 0x08, 16 }, 353 - [SCxRDR] = { 0x0a, 8 }, 354 - [SCFCR] = { 0x0c, 16 }, 355 - [SCFDR] = { 0x0e, 16 }, 356 - [SCSPTR] = { 0x10, 16 }, 357 - [SCLSR] = { 0x12, 16 }, 322 + [SCBRR] = { 0x04, 8 }, 323 + [SCSCR] = { 0x08, 16 }, 324 + [SCxTDR] = { 0x0c, 8 }, 325 + [SCxSR] = { 0x10, 16 }, 326 + [SCxRDR] = { 0x14, 8 }, 327 + [SCFCR] = { 0x18, 16 }, 328 + [SCFDR] = { 0x1c, 16 }, 329 + [SCSPTR] = { 0x20, 16 }, 330 + [SCLSR] = { 0x24, 16 }, 358 331 }, 359 332 .fifosize = 16, 360 333 .overrun_reg = SCLSR, ··· 2837 2810 { 2838 2811 struct uart_port *port = &sci_port->port; 2839 2812 const struct resource *res; 2840 - unsigned int i, regtype; 2813 + unsigned int i; 2841 2814 int ret; 2842 2815 2843 2816 sci_port->cfg = p; ··· 2874 2847 if (unlikely(sci_port->params == NULL)) 2875 2848 return -EINVAL; 2876 2849 2877 - regtype = sci_port->params - sci_port_params; 2878 2850 switch (p->type) { 2879 2851 case PORT_SCIFB: 2880 2852 sci_port->rx_trigger = 48; ··· 2927 2901 else 2928 2902 port->regshift = 1; 2929 2903 } 2930 - 2931 - if (regtype == SCIx_SH4_SCIF_REGTYPE) 2932 - if (sci_port->reg_size >= 0x20) 2933 - port->regshift = 1; 2934 2904 2935 2905 /* 2936 2906 * The UART port needs an IRQ value, so we peg this to the RX IRQ ··· 3131 3109 { 3132 3110 .compatible = "renesas,scif-r7s72100", 3133 3111 .data = SCI_OF_DATA(PORT_SCIF, SCIx_SH2_SCIF_FIFODATA_REGTYPE), 3112 + }, 3113 + { 3114 + .compatible = "renesas,scif-r7s9210", 3115 + .data = SCI_OF_DATA(PORT_SCIF, SCIx_RZ_SCIFA_REGTYPE), 3134 3116 }, 3135 3117 /* Family-specific types */ 3136 3118 {
+1
include/linux/serial_sci.h
··· 36 36 SCIx_SH4_SCIF_FIFODATA_REGTYPE, 37 37 SCIx_SH7705_SCIF_REGTYPE, 38 38 SCIx_HSCIF_REGTYPE, 39 + SCIx_RZ_SCIFA_REGTYPE, 39 40 40 41 SCIx_NR_REGTYPES, 41 42 };