You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'tty-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial updates from Greg KH: "Here is the big serial/tty driver update for 4.5-rc1. Lots of driver updates and some tty core changes. All of these have been in linux-next and the details are in the shortlog" * tag 'tty-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (127 commits) drivers/tty/serial: delete unused MODULE_DEVICE_TABLE from atmel_serial.c serial: sh-sci: Remove cpufreq notifier to fix crash/deadlock serial: 8250: of: Fix the driver and actually compile the 8250_of tty: amba-pl011: use iotype instead of access_32b to track 32-bit I/O tty: amba-pl011: fix earlycon register offsets serial: sh-sci: Drop the sci_fck clock fallback sh: sh7734: Correct SCIF type for BRG sh: Remove sci_ick clock alias sh: Rename sci_ick and sci_fck clock to fck serial: sh-sci: Add support for optional BRG on (H)SCIF serial: sh-sci: Add support for optional external (H)SCK input serial: sh-sci: Prepare for multiple sampling clock sources serial: sh-sci: Correct SCIF type on R-Car for BRG serial: sh-sci: Correct SCIF type on RZ/A1H serial: sh-sci: Replace struct sci_port_info by type/regtype encoding serial: sh-sci: Add BRG register definitions serial: sh-sci: Take into account sampling rate for max baud rate serial: sh-sci: Merge sci_scbrr_calc() and sci_baud_calc_hscif() serial: sh-sci: Avoid calculating the receive margin for HSCIF serial: sh-sci: Improve bit rate error calculation for HSCIF ...
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must contain one of the following:
|
||||
- compatible: Must contain one or more of the following:
|
||||
|
||||
- "renesas,scif-r7s72100" for R7S72100 (RZ/A1H) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFA compatible UART.
|
||||
@@ -15,10 +15,14 @@ Required properties:
|
||||
- "renesas,scifa-r8a7790" for R8A7790 (R-Car H2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7790" for R8A7790 (R-Car H2) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7790" for R8A7790 (R-Car H2) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7791" for R8A7791 (R-Car M2) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7791" for R8A7791 (R-Car M2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7791" for R8A7791 (R-Car M2) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7791" for R8A7791 (R-Car M2) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7791" for R8A7791 (R-Car M2-W) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7791" for R8A7791 (R-Car M2-W) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7791" for R8A7791 (R-Car M2-W) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7791" for R8A7791 (R-Car M2-W) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7793" for R8A7793 (R-Car M2-N) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7793" for R8A7793 (R-Car M2-N) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7793" for R8A7793 (R-Car M2-N) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7793" for R8A7793 (R-Car M2-N) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7794" for R8A7794 (R-Car E2) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7794" for R8A7794 (R-Car E2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7794" for R8A7794 (R-Car E2) SCIFB compatible UART.
|
||||
@@ -27,6 +31,14 @@ Required properties:
|
||||
- "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
|
||||
- "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
|
||||
- "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.
|
||||
- "renesas,rcar-gen1-scif" for R-Car Gen1 SCIF compatible UART,
|
||||
- "renesas,rcar-gen2-scif" for R-Car Gen2 SCIF compatible UART,
|
||||
- "renesas,rcar-gen3-scif" for R-Car Gen3 SCIF compatible UART,
|
||||
- "renesas,rcar-gen2-scifa" for R-Car Gen2 SCIFA compatible UART,
|
||||
- "renesas,rcar-gen2-scifb" for R-Car Gen2 SCIFB compatible UART,
|
||||
- "renesas,rcar-gen1-hscif" for R-Car Gen1 HSCIF compatible UART,
|
||||
- "renesas,rcar-gen2-hscif" for R-Car Gen2 HSCIF compatible UART,
|
||||
- "renesas,rcar-gen3-hscif" for R-Car Gen3 HSCIF compatible UART,
|
||||
- "renesas,scif" for generic SCIF compatible UART.
|
||||
- "renesas,scifa" for generic SCIFA compatible UART.
|
||||
- "renesas,scifb" for generic SCIFB compatible UART.
|
||||
@@ -34,15 +46,26 @@ Required properties:
|
||||
- "renesas,sci" for generic SCI compatible UART.
|
||||
|
||||
When compatible with the generic version, nodes must list the
|
||||
SoC-specific version corresponding to the platform first followed by the
|
||||
generic version.
|
||||
SoC-specific version corresponding to the platform first, followed by the
|
||||
family-specific and/or generic versions.
|
||||
|
||||
- reg: Base address and length of the I/O registers used by the UART.
|
||||
- interrupts: Must contain an interrupt-specifier for the SCIx interrupt.
|
||||
|
||||
- clocks: Must contain a phandle and clock-specifier pair for each entry
|
||||
in clock-names.
|
||||
- clock-names: Must contain "sci_ick" for the SCIx UART interface clock.
|
||||
- clock-names: Must contain "fck" for the SCIx UART functional clock.
|
||||
Apart from the divided functional clock, there may be other possible
|
||||
sources for the sampling clock, depending on SCIx variant.
|
||||
On (H)SCI(F) and some SCIFA, an additional clock may be specified:
|
||||
- "hsck" for the optional external clock input (on HSCIF),
|
||||
- "sck" for the optional external clock input (on other variants).
|
||||
On UARTs equipped with a Baud Rate Generator for External Clock (BRG)
|
||||
(some SCIF and HSCIF), additional clocks may be specified:
|
||||
- "brg_int" for the optional internal clock source for the frequency
|
||||
divider (typically the (AXI or SHwy) bus clock),
|
||||
- "scif_clk" for the optional external clock source for the frequency
|
||||
divider (SCIF_CLK).
|
||||
|
||||
Note: Each enabled SCIx UART should have an alias correctly numbered in the
|
||||
"aliases" node.
|
||||
@@ -58,12 +81,13 @@ Example:
|
||||
};
|
||||
|
||||
scifa0: serial@e6c40000 {
|
||||
compatible = "renesas,scifa-r8a7790", "renesas,scifa";
|
||||
compatible = "renesas,scifa-r8a7790",
|
||||
"renesas,rcar-gen2-scifa", "renesas,scifa";
|
||||
reg = <0 0xe6c40000 0 64>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>;
|
||||
clock-names = "sci_ick";
|
||||
clock-names = "fck";
|
||||
dmas = <&dmac0 0x21>, <&dmac0 0x22>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
@@ -730,16 +730,17 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
|
||||
uart[8250],io,<addr>[,options]
|
||||
uart[8250],mmio,<addr>[,options]
|
||||
uart[8250],mmio16,<addr>[,options]
|
||||
uart[8250],mmio32,<addr>[,options]
|
||||
uart[8250],0x<addr>[,options]
|
||||
Start an early, polled-mode console on the 8250/16550
|
||||
UART at the specified I/O port or MMIO address,
|
||||
switching to the matching ttyS device later.
|
||||
MMIO inter-register address stride is either 8-bit
|
||||
(mmio) or 32-bit (mmio32).
|
||||
If none of [io|mmio|mmio32], <addr> is assumed to be
|
||||
equivalent to 'mmio'. 'options' are specified in the
|
||||
same format described for ttyS above; if unspecified,
|
||||
(mmio), 16-bit (mmio16), or 32-bit (mmio32).
|
||||
If none of [io|mmio|mmio16|mmio32], <addr> is assumed
|
||||
to be equivalent to 'mmio'. 'options' are specified in
|
||||
the same format described for ttyS above; if unspecified,
|
||||
the h/w is not re-initialized.
|
||||
|
||||
hvc<n> Use the hypervisor console device <n>. This is for
|
||||
@@ -1011,10 +1012,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
unspecified, the h/w is not initialized.
|
||||
|
||||
pl011,<addr>
|
||||
pl011,mmio32,<addr>
|
||||
Start an early, polled-mode console on a pl011 serial
|
||||
port at the specified address. The pl011 serial port
|
||||
must already be setup and configured. Options are not
|
||||
yet supported.
|
||||
yet supported. If 'mmio32' is specified, then only
|
||||
the driver will use only 32-bit accessors to read/write
|
||||
the device registers.
|
||||
|
||||
msm_serial,<addr>
|
||||
Start an early, polled-mode console on an msm serial
|
||||
|
||||
@@ -63,7 +63,6 @@ int __init __deprecated cpg_clk_init(void)
|
||||
clk_add_alias("fck", "sh-mtu2", "peripheral_clk", NULL);
|
||||
clk_add_alias("fck", "sh-cmt-16.0", "peripheral_clk", NULL);
|
||||
clk_add_alias("fck", "sh-cmt-32.0", "peripheral_clk", NULL);
|
||||
clk_add_alias("sci_ick", NULL, "peripheral_clk", NULL);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -115,7 +115,14 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("peripheral_clk", &div4_clks[DIV4_P]),
|
||||
|
||||
/* MSTP clocks */
|
||||
CLKDEV_CON_ID("sci_ick", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.6", &mstp_clks[MSTP77]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.7", &mstp_clks[MSTP77]),
|
||||
CLKDEV_CON_ID("vdc3", &mstp_clks[MSTP74]),
|
||||
CLKDEV_ICK_ID("fck", "sh-cmt-16.0", &mstp_clks[MSTP72]),
|
||||
CLKDEV_CON_ID("usb0", &mstp_clks[MSTP60]),
|
||||
|
||||
@@ -150,14 +150,14 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("bus_clk", &div4_clks[DIV4_B]),
|
||||
|
||||
/* MSTP clocks */
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP47]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP46]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP45]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP44]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[MSTP43]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP47]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP46]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP45]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP44]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[MSTP43]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[MSTP42]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.6", &mstp_clks[MSTP41]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.7", &mstp_clks[MSTP40]),
|
||||
CLKDEV_ICK_ID("fck", "sh-cmt-16.0", &mstp_clks[MSTP72]),
|
||||
CLKDEV_CON_ID("usb0", &mstp_clks[MSTP60]),
|
||||
CLKDEV_ICK_ID("fck", "sh-mtu2", &mstp_clks[MSTP35]),
|
||||
|
||||
@@ -232,10 +232,10 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("mfi0", &mstp_clks[MSTP011]),
|
||||
CLKDEV_CON_ID("flctl0", &mstp_clks[MSTP010]),
|
||||
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP007]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP006]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP005]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP004]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP007]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP006]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP005]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP004]),
|
||||
|
||||
CLKDEV_CON_ID("sio0", &mstp_clks[MSTP003]),
|
||||
CLKDEV_CON_ID("siof0", &mstp_clks[MSTP002]),
|
||||
|
||||
@@ -230,9 +230,9 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("mfi0", &mstp_clks[MSTP011]),
|
||||
CLKDEV_CON_ID("flctl0", &mstp_clks[MSTP010]),
|
||||
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP007]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP006]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP005]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP007]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP006]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP005]),
|
||||
|
||||
CLKDEV_CON_ID("msiof0", &mstp_clks[MSTP002]),
|
||||
CLKDEV_CON_ID("sbr0", &mstp_clks[MSTP001]),
|
||||
|
||||
@@ -267,12 +267,12 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[HWBLK_TMU0]),
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.1", &mstp_clks[HWBLK_TMU1]),
|
||||
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[HWBLK_SCIF0]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[HWBLK_SCIF1]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[HWBLK_SCIF2]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[HWBLK_SCIF3]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[HWBLK_SCIF4]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[HWBLK_SCIF5]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[HWBLK_SCIF0]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[HWBLK_SCIF1]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[HWBLK_SCIF2]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[HWBLK_SCIF3]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[HWBLK_SCIF4]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[HWBLK_SCIF5]),
|
||||
|
||||
CLKDEV_DEV_ID("sh_mobile_lcdc_fb.0", &mstp_clks[HWBLK_LCDC]),
|
||||
};
|
||||
|
||||
@@ -194,12 +194,12 @@ static struct clk_lookup lookups[] = {
|
||||
/* MSTP32 clocks */
|
||||
CLKDEV_DEV_ID("i2c-sh7734.0", &mstp_clks[MSTP030]),
|
||||
CLKDEV_DEV_ID("i2c-sh7734.1", &mstp_clks[MSTP029]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP024]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP023]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[MSTP022]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP021]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP024]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP023]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[MSTP022]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[MSTP021]),
|
||||
CLKDEV_CON_ID("hscif", &mstp_clks[MSTP019]),
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP016]),
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.1", &mstp_clks[MSTP015]),
|
||||
|
||||
@@ -125,9 +125,9 @@ static struct clk_lookup lookups[] = {
|
||||
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP113]),
|
||||
CLKDEV_ICK_ID("fck", "sh-tmu.1", &mstp_clks[MSTP114]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP112]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP111]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP110]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP112]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP111]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP110]),
|
||||
|
||||
CLKDEV_CON_ID("usb_fck", &mstp_clks[MSTP103]),
|
||||
CLKDEV_DEV_ID("renesas_usbhs.0", &mstp_clks[MSTP102]),
|
||||
|
||||
@@ -132,12 +132,12 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]),
|
||||
|
||||
/* MSTP32 clocks */
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP029]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[MSTP028]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[MSTP029]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[MSTP028]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
|
||||
CLKDEV_CON_ID("ssi1_fck", &mstp_clks[MSTP021]),
|
||||
CLKDEV_CON_ID("ssi0_fck", &mstp_clks[MSTP020]),
|
||||
|
||||
@@ -139,12 +139,12 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]),
|
||||
|
||||
/* MSTP32 clocks */
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP029]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[MSTP028]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.5", &mstp_clks[MSTP029]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.4", &mstp_clks[MSTP028]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
|
||||
CLKDEV_CON_ID("ssi3_fck", &mstp_clks[MSTP023]),
|
||||
CLKDEV_CON_ID("ssi2_fck", &mstp_clks[MSTP022]),
|
||||
|
||||
@@ -114,10 +114,10 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]),
|
||||
|
||||
/* MSTP32 clocks */
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.3", &mstp_clks[MSTP027]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.2", &mstp_clks[MSTP026]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.1", &mstp_clks[MSTP025]),
|
||||
CLKDEV_ICK_ID("fck", "sh-sci.0", &mstp_clks[MSTP024]),
|
||||
|
||||
CLKDEV_CON_ID("h8ex_fck", &mstp_clks[MSTP003]),
|
||||
CLKDEV_CON_ID("csm_fck", &mstp_clks[MSTP002]),
|
||||
|
||||
@@ -28,7 +28,7 @@ static struct plat_sci_port scif0_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif0_resources[] = {
|
||||
@@ -50,7 +50,7 @@ static struct plat_sci_port scif1_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif1_resources[] = {
|
||||
@@ -72,7 +72,7 @@ static struct plat_sci_port scif2_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif2_resources[] = {
|
||||
@@ -94,7 +94,7 @@ static struct plat_sci_port scif3_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif3_resources[] = {
|
||||
@@ -116,7 +116,7 @@ static struct plat_sci_port scif4_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif4_resources[] = {
|
||||
@@ -138,7 +138,7 @@ static struct plat_sci_port scif5_platform_data = {
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.type = PORT_SCIF,
|
||||
.regtype = SCIx_SH4_SCIF_REGTYPE,
|
||||
.regtype = SCIx_SH4_SCIF_BRG_REGTYPE,
|
||||
};
|
||||
|
||||
static struct resource scif5_resources[] = {
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <linux/delay.h>
|
||||
|
||||
#undef SERIAL_PARANOIA_CHECK
|
||||
#define SERIAL_DO_RESTART
|
||||
|
||||
/* Set of debugging defines */
|
||||
|
||||
|
||||
@@ -292,14 +292,14 @@ static void cyz_rx_restart(unsigned long);
|
||||
static struct timer_list cyz_rx_full_timer[NR_PORTS];
|
||||
#endif /* CONFIG_CYZ_INTR */
|
||||
|
||||
static inline void cyy_writeb(struct cyclades_port *port, u32 reg, u8 val)
|
||||
static void cyy_writeb(struct cyclades_port *port, u32 reg, u8 val)
|
||||
{
|
||||
struct cyclades_card *card = port->card;
|
||||
|
||||
cy_writeb(port->u.cyy.base_addr + (reg << card->bus_index), val);
|
||||
}
|
||||
|
||||
static inline u8 cyy_readb(struct cyclades_port *port, u32 reg)
|
||||
static u8 cyy_readb(struct cyclades_port *port, u32 reg)
|
||||
{
|
||||
struct cyclades_card *card = port->card;
|
||||
|
||||
@@ -321,7 +321,7 @@ static inline bool cyz_fpga_loaded(struct cyclades_card *card)
|
||||
return __cyz_fpga_loaded(card->ctl_addr.p9060);
|
||||
}
|
||||
|
||||
static inline bool cyz_is_loaded(struct cyclades_card *card)
|
||||
static bool cyz_is_loaded(struct cyclades_card *card)
|
||||
{
|
||||
struct FIRM_ID __iomem *fw_id = card->base_addr + ID_ADDRESS;
|
||||
|
||||
@@ -329,7 +329,7 @@ static inline bool cyz_is_loaded(struct cyclades_card *card)
|
||||
readl(&fw_id->signature) == ZFIRM_ID;
|
||||
}
|
||||
|
||||
static inline int serial_paranoia_check(struct cyclades_port *info,
|
||||
static int serial_paranoia_check(struct cyclades_port *info,
|
||||
const char *name, const char *routine)
|
||||
{
|
||||
#ifdef SERIAL_PARANOIA_CHECK
|
||||
|
||||
@@ -220,7 +220,7 @@ static struct isi_port isi_ports[PORT_COUNT];
|
||||
* it wants to talk.
|
||||
*/
|
||||
|
||||
static inline int WaitTillCardIsFree(unsigned long base)
|
||||
static int WaitTillCardIsFree(unsigned long base)
|
||||
{
|
||||
unsigned int count = 0;
|
||||
unsigned int a = in_atomic(); /* do we run under spinlock? */
|
||||
@@ -280,7 +280,7 @@ static void raise_dtr(struct isi_port *port)
|
||||
}
|
||||
|
||||
/* card->lock HAS to be held */
|
||||
static inline void drop_dtr(struct isi_port *port)
|
||||
static void drop_dtr(struct isi_port *port)
|
||||
{
|
||||
struct isi_board *card = port->card;
|
||||
unsigned long base = card->base;
|
||||
|
||||
@@ -155,7 +155,6 @@ struct mon_str {
|
||||
#define LOWWAIT 2
|
||||
#define EMPTYWAIT 3
|
||||
|
||||
#define SERIAL_DO_RESTART
|
||||
|
||||
#define WAKEUP_CHARS 256
|
||||
|
||||
|
||||
+27
-28
@@ -162,12 +162,23 @@ static inline int tty_put_user(struct tty_struct *tty, unsigned char x,
|
||||
return put_user(x, ptr);
|
||||
}
|
||||
|
||||
static inline int tty_copy_to_user(struct tty_struct *tty,
|
||||
void __user *to,
|
||||
const void *from,
|
||||
unsigned long n)
|
||||
static int tty_copy_to_user(struct tty_struct *tty, void __user *to,
|
||||
size_t tail, size_t n)
|
||||
{
|
||||
struct n_tty_data *ldata = tty->disc_data;
|
||||
size_t size = N_TTY_BUF_SIZE - tail;
|
||||
const void *from = read_buf_addr(ldata, tail);
|
||||
int uncopied;
|
||||
|
||||
if (n > size) {
|
||||
tty_audit_add_data(tty, from, size, ldata->icanon);
|
||||
uncopied = copy_to_user(to, from, size);
|
||||
if (uncopied)
|
||||
return uncopied;
|
||||
to += size;
|
||||
n -= size;
|
||||
from = ldata->read_buf;
|
||||
}
|
||||
|
||||
tty_audit_add_data(tty, from, n, ldata->icanon);
|
||||
return copy_to_user(to, from, n);
|
||||
@@ -1201,9 +1212,7 @@ static void n_tty_receive_overrun(struct tty_struct *tty)
|
||||
ldata->num_overrun++;
|
||||
if (time_after(jiffies, ldata->overrun_time + HZ) ||
|
||||
time_after(ldata->overrun_time, jiffies)) {
|
||||
printk(KERN_WARNING "%s: %d input overrun(s)\n",
|
||||
tty_name(tty),
|
||||
ldata->num_overrun);
|
||||
tty_warn(tty, "%d input overrun(s)\n", ldata->num_overrun);
|
||||
ldata->overrun_time = jiffies;
|
||||
ldata->num_overrun = 0;
|
||||
}
|
||||
@@ -1486,8 +1495,7 @@ n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag)
|
||||
n_tty_receive_overrun(tty);
|
||||
break;
|
||||
default:
|
||||
printk(KERN_ERR "%s: unknown flag %d\n",
|
||||
tty_name(tty), flag);
|
||||
tty_err(tty, "unknown flag %d\n", flag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2006,11 +2014,11 @@ static int copy_from_read_buf(struct tty_struct *tty,
|
||||
n = min(head - ldata->read_tail, N_TTY_BUF_SIZE - tail);
|
||||
n = min(*nr, n);
|
||||
if (n) {
|
||||
retval = copy_to_user(*b, read_buf_addr(ldata, tail), n);
|
||||
const unsigned char *from = read_buf_addr(ldata, tail);
|
||||
retval = copy_to_user(*b, from, n);
|
||||
n -= retval;
|
||||
is_eof = n == 1 && read_buf(ldata, tail) == EOF_CHAR(tty);
|
||||
tty_audit_add_data(tty, read_buf_addr(ldata, tail), n,
|
||||
ldata->icanon);
|
||||
is_eof = n == 1 && *from == EOF_CHAR(tty);
|
||||
tty_audit_add_data(tty, from, n, ldata->icanon);
|
||||
smp_store_release(&ldata->read_tail, ldata->read_tail + n);
|
||||
/* Turn single EOF into zero-length read */
|
||||
if (L_EXTPROC(tty) && ldata->icanon && is_eof &&
|
||||
@@ -2072,12 +2080,10 @@ static int canon_copy_from_read_buf(struct tty_struct *tty,
|
||||
if (eol == N_TTY_BUF_SIZE && more) {
|
||||
/* scan wrapped without finding set bit */
|
||||
eol = find_next_bit(ldata->read_flags, more, 0);
|
||||
if (eol != more)
|
||||
found = 1;
|
||||
} else if (eol != size)
|
||||
found = 1;
|
||||
found = eol != more;
|
||||
} else
|
||||
found = eol != size;
|
||||
|
||||
size = N_TTY_BUF_SIZE - tail;
|
||||
n = eol - tail;
|
||||
if (n > N_TTY_BUF_SIZE)
|
||||
n += N_TTY_BUF_SIZE;
|
||||
@@ -2088,17 +2094,10 @@ static int canon_copy_from_read_buf(struct tty_struct *tty,
|
||||
n = c;
|
||||
}
|
||||
|
||||
n_tty_trace("%s: eol:%zu found:%d n:%zu c:%zu size:%zu more:%zu\n",
|
||||
__func__, eol, found, n, c, size, more);
|
||||
|
||||
if (n > size) {
|
||||
ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), size);
|
||||
if (ret)
|
||||
return -EFAULT;
|
||||
ret = tty_copy_to_user(tty, *b + size, ldata->read_buf, n - size);
|
||||
} else
|
||||
ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), n);
|
||||
n_tty_trace("%s: eol:%zu found:%d n:%zu c:%zu tail:%zu more:%zu\n",
|
||||
__func__, eol, found, n, c, tail, more);
|
||||
|
||||
ret = tty_copy_to_user(tty, *b, tail, n);
|
||||
if (ret)
|
||||
return -EFAULT;
|
||||
*b += n;
|
||||
|
||||
+1
-1
@@ -788,7 +788,7 @@ static int ptmx_open(struct inode *inode, struct file *filp)
|
||||
if (retval)
|
||||
goto err_release;
|
||||
|
||||
tty_debug_hangup(tty, "(tty count=%d)\n", tty->count);
|
||||
tty_debug_hangup(tty, "opening (count=%d)\n", tty->count);
|
||||
|
||||
tty_unlock(tty);
|
||||
return 0;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user