projects/linux·commit efb8d21b

Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

efb8d21b · Linus Torvalds <[email protected]> · 2011-10-26 15:11:09 +02:00

* 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (79 commits)
  TTY: serial_core: Fix crash if DCD drop during suspend
  tty/serial: atmel_serial: bootconsole removed from auto-enumerates
  Revert "TTY: call tty_driver_lookup_tty unconditionally"
  tty/serial: atmel_serial: add device tree support
  tty/serial: atmel_serial: auto-enumerate ports
  tty/serial: atmel_serial: whitespace and braces modifications
  tty/serial: atmel_serial: change platform_data variable name
  tty/serial: RS485 bindings for device tree
  TTY: call tty_driver_lookup_tty unconditionally
  TTY: pty, release tty in all ptmx_open fail paths
  TTY: make tty_add_file non-failing
  TTY: drop driver reference in tty_open fail path
  8250_pci: Fix kernel panic when pch_uart is disabled
  h8300: drivers/serial/Kconfig was moved
  parport_pc: release IO region properly if unsupported ITE887x card is found
  tty: Support compat_ioctl get/set termios_locked
  hvc_console: display printk messages on console.
  TTY: snyclinkmp: forever loop in tx_load_dma_buffer()
  tty/n_gsm: avoid fifo overflow in gsm_dlci_data_output
  tty/n_gsm: fix a bug in gsm_dlci_data_output (adaption = 2 case)
  ...

Fix up Conflicts in:
 - drivers/tty/serial/8250_pci.c
	Trivial conflict with removed duplicate device ID
 - drivers/tty/serial/atmel_serial.c
	Annoying silly conflict between "specify the port num via
	platform_data" and other changes to atmel_console_init
Commit
efb8d21b2c6db3497655cc6a033ae8a9883e4063
Parents
3cb60328 · d208a3bf

Merge commit. Changes below are compared with the first parent: 3cb60328.

Changes

110 files changed · +2101 −946

FileStatusAddDelContent
Documentation/devicetree/bindings/serial/rs485.txtadded+31−0View file
Documentation/devicetree/bindings/tty/serial/atmel-usart.txtadded+27−0View file
Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txtadded+25−0View file
Documentation/serial/serial-rs485.txtmodified+8−0View file
arch/arm/Kconfigmodified+0−1View file
arch/arm/mach-s3c64xx/dev-uart.cmodified+8−52View file
arch/arm/mach-s3c64xx/include/mach/irqs.hmodified+0−30View file
arch/arm/mach-s3c64xx/irq.cmodified+0−25View file
arch/arm/plat-s5p/Kconfigmodified+0−1View file
arch/arm/plat-s5p/dev-uart.cmodified+12−72View file
arch/arm/plat-s5p/include/plat/irqs.hmodified+0−35View file
arch/arm/plat-s5p/irq.cmodified+0−34View file
arch/arm/plat-samsung/Kconfigmodified+0−5View file
arch/arm/plat-samsung/Makefilemodified+0−1View file
arch/arm/plat-samsung/include/plat/regs-serial.hmodified+5−0View file
arch/arm/plat-samsung/irq-uart.cdeleted+0−96View before deletion
arch/h8300/Kconfigmodified+1−1View file
arch/mips/pmc-sierra/msp71xx/msp_serial.cmodified+67−6View file
arch/powerpc/include/asm/udbg.hmodified+1−0View file
arch/powerpc/kernel/udbg.cmodified+2−0View file
arch/x86/platform/mrst/mrst.cmodified+3−0View file
drivers/isdn/i4l/isdn_tty.cmodified+1−1View file
drivers/parport/parport_pc.cmodified+3−0View file
drivers/staging/Kconfigmodified+2−0View file
drivers/staging/Makefilemodified+1−0View file
drivers/tty/serial/68360serial.c → drivers/staging/serial/68360serial.crenamed+0−0View file
drivers/staging/serial/Kconfigadded+16−0View file
drivers/staging/serial/Makefileadded+1−0View file
drivers/staging/serial/TODOadded+6−0View file
drivers/tty/Kconfigmodified+34−0View file
drivers/tty/Makefilemodified+1−0View file
drivers/tty/amiserial.cmodified+2−10View file
drivers/tty/cyclades.cmodified+2−12View file
drivers/tty/ehv_bytechan.cadded+881−0View file
drivers/tty/hvc/hvc_console.cmodified+7−2View file
drivers/tty/hvc/hvc_irq.cmodified+1−1View file
drivers/tty/hvc/hvcs.cmodified+2−2View file
drivers/tty/hvc/hvsi.cmodified+1−1View file
drivers/tty/isicom.cmodified+1−1View file
drivers/tty/mxser.cmodified+1−12View file
drivers/tty/n_gsm.cmodified+40−30View file
drivers/tty/pty.cmodified+16−10View file
drivers/tty/serial/68328serial.cmodified+1−36View file
drivers/tty/serial/68328serial.hmodified+0−1View file
drivers/tty/serial/8250.cmodified+57−75View file
drivers/tty/serial/8250_dw.cadded+194−0View file
drivers/tty/serial/8250_pci.cmodified+42−0View file
drivers/tty/serial/Kconfigmodified+10−20View file
drivers/tty/serial/Makefilemodified+2−2View file
drivers/tty/serial/altera_jtaguart.cmodified+1−1View file
drivers/tty/serial/altera_uart.cmodified+1−1View file
drivers/tty/serial/apbuart.cmodified+1−0View file
drivers/tty/serial/atmel_serial.cmodified+111−17View file
drivers/tty/serial/bfin_sport_uart.cmodified+1−1View file
drivers/tty/serial/bfin_5xx.c → drivers/tty/serial/bfin_uart.crenamed+40−25View file
drivers/tty/serial/cpm_uart/cpm_uart_core.cmodified+1−0View file
drivers/tty/serial/crisv10.cmodified+15−15View file
drivers/tty/serial/dz.cmodified+1−0View file
drivers/tty/serial/icom.cmodified+1−1View file
drivers/tty/serial/imx.cmodified+7−3View file
drivers/tty/serial/ioc3_serial.cmodified+1−0View file
drivers/tty/serial/ioc4_serial.cmodified+1−0View file
drivers/tty/serial/jsm/jsm.hmodified+0−10View file
drivers/tty/serial/jsm/jsm_driver.cmodified+0−19View file
drivers/tty/serial/jsm/jsm_neo.cmodified+15−14View file
drivers/tty/serial/jsm/jsm_tty.cmodified+13−81View file
drivers/tty/serial/lantiq.cmodified+3−3View file
drivers/tty/serial/m32r_sio.cmodified+1−0View file
drivers/tty/serial/max3100.cmodified+2−0View file
drivers/tty/serial/max3107.cmodified+2−0View file
drivers/tty/serial/mcf.cmodified+1−1View file
drivers/tty/serial/mfd.cmodified+48−1View file
drivers/tty/serial/mpc52xx_uart.cmodified+2−1View file
drivers/tty/serial/mrst_max3110.cmodified+54−61View file
drivers/tty/serial/mrst_max3110.hmodified+1−0View file
drivers/tty/serial/msm_serial.cmodified+0−2View file
drivers/tty/serial/msm_serial_hs.cmodified+2−0View file
drivers/tty/serial/mux.cmodified+2−0View file
drivers/tty/serial/nwpserial.cmodified+1−0View file
drivers/tty/serial/pch_uart.cmodified+2−0View file
drivers/tty/serial/pxa.cmodified+20−0View file
drivers/tty/serial/samsung.cmodified+95−12View file
drivers/tty/serial/samsung.hmodified+1−0View file
drivers/tty/serial/sb1250-duart.cmodified+1−0View file
drivers/tty/serial/serial_core.cmodified+21−51View file
drivers/tty/serial/serial_ks8695.cmodified+5−4View file
drivers/tty/serial/serial_txx9.cmodified+2−0View file
drivers/tty/serial/sh-sci.cmodified+1−1View file
drivers/tty/serial/sn_console.cmodified+2−1View file
drivers/tty/serial/timbuart.cmodified+2−0View file
drivers/tty/serial/uartlite.cmodified+1−0View file
drivers/tty/serial/ucc_uart.cmodified+3−1View file
drivers/tty/serial/xilinx_uartps.cmodified+3−1View file
drivers/tty/serial/zs.cmodified+1−0View file
drivers/tty/synclink.cmodified+0−1View file
drivers/tty/synclinkmp.cmodified+3−3View file
drivers/tty/tty_io.cmodified+38−12View file
drivers/tty/tty_ioctl.cmodified+17−0View file
drivers/tty/tty_ldisc.cmodified+0−1View file
drivers/tty/tty_mutex.cmodified+0−12View file
drivers/tty/tty_port.cmodified+1−1View file
drivers/tty/vt/keyboard.cmodified+2−1View file
drivers/tty/vt/selection.cmodified+2−2View file
drivers/tty/vt/vt.cmodified+1−1View file
include/linux/serial.hmodified+1−0View file
include/linux/serial_8250.hmodified+2−0View file
include/linux/serial_core.hmodified+5−5View file
include/linux/serial_reg.hmodified+1−0View file
include/linux/tty.hmodified+23−3View file
net/irda/ircomm/ircomm_tty.cmodified+1−1View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/devicetree/bindings/serial/rs485.txt

View file
diff --git a/Documentation/devicetree/bindings/serial/rs485.txt b/Documentation/devicetree/bindings/serial/rs485.txt
new file mode 100644
index 0000000..1e753c6
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/rs485.txt
@@ -0,0 +1,31 @@
+* RS485 serial communications
+
+The RTS signal is capable of automatically controlling line direction for
+the built-in half-duplex mode.
+The properties described hereafter shall be given to a half-duplex capable
+UART node.
+
+Required properties:
+- rs485-rts-delay: prop-encoded-array <a b> where:
+ * a is the delay beteween rts signal and beginning of data sent in milliseconds.
+ it corresponds to the delay before sending data.
+ * b is the delay between end of data sent and rts signal in milliseconds
+ it corresponds to the delay after sending data and actual release of the line.
+
+Optional properties:
+- linux,rs485-enabled-at-boot-time: empty property telling to enable the rs485
+ feature at boot time. It can be disabled later with proper ioctl.
+- rs485-rx-during-tx: empty property that enables the receiving of data even
+ whilst sending data.
+
+RS485 example for Atmel USART:
+ usart0: serial@fff8c000 {
+ compatible = "atmel,at91sam9260-usart";
+ reg = <0xfff8c000 0x4000>;
+ interrupts = <7>;
+ atmel,use-dma-rx;
+ atmel,use-dma-tx;
+ linux,rs485-enabled-at-boot-time;
+ rs485-rts-delay = <0 200>; // in milliseconds
+ };
+

Documentation/devicetree/bindings/tty/serial/atmel-usart.txt

View file
diff --git a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt b/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt
new file mode 100644
index 0000000..a49d9a1
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt
@@ -0,0 +1,27 @@
+* Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART)
+
+Required properties:
+- compatible: Should be "atmel,<chip>-usart"
+ The compatible <chip> indicated will be the first SoC to support an
+ additional mode or an USART new feature.
+- reg: Should contain registers location and length
+- interrupts: Should contain interrupt
+
+Optional properties:
+- atmel,use-dma-rx: use of PDC or DMA for receiving data
+- atmel,use-dma-tx: use of PDC or DMA for transmitting data
+
+<chip> compatible description:
+- at91rm9200: legacy USART support
+- at91sam9260: generic USART implementation for SAM9 SoCs
+
+Example:
+
+ usart0: serial@fff8c000 {
+ compatible = "atmel,at91sam9260-usart";
+ reg = <0xfff8c000 0x4000>;
+ interrupts = <7>;
+ atmel,use-dma-rx;
+ atmel,use-dma-tx;
+ };
+

Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt

View file
diff --git a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt b/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt
new file mode 100644
index 0000000..f13f1c5
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt
@@ -0,0 +1,25 @@
+* Synopsys DesignWare ABP UART
+
+Required properties:
+- compatible : "snps,dw-apb-uart"
+- reg : offset and length of the register set for the device.
+- interrupts : should contain uart interrupt.
+- clock-frequency : the input clock frequency for the UART.
+
+Optional properties:
+- reg-shift : quantity to shift the register offsets by. If this property is
+ not present then the register offsets are not shifted.
+- reg-io-width : the size (in bytes) of the IO accesses that should be
+ performed on the device. If this property is not present then single byte
+ accesses are used.
+
+Example:
+
+ uart@80230000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x80230000 0x100>;
+ clock-frequency = <3686400>;
+ interrupts = <10>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ };

Documentation/serial/serial-rs485.txt

View file
diff --git a/Documentation/serial/serial-rs485.txt b/Documentation/serial/serial-rs485.txt
index a493238..079cb3d 100644
--- a/Documentation/serial/serial-rs485.txt
+++ b/Documentation/serial/serial-rs485.txt
@@ -28,6 +28,10 @@
RS485 communications. This data structure is used to set and configure RS485
parameters in the platform data and in ioctls.
+ The device tree can also provide RS485 boot time parameters (see [2]
+ for bindings). The driver is in charge of filling this data structure from
+ the values given by the device tree.
+
Any driver for devices capable of working both as RS232 and RS485 should
provide at least the following ioctls:
@@ -104,6 +108,9 @@
rs485conf.flags |= SER_RS485_RTS_AFTER_SEND;
rs485conf.delay_rts_after_send = ...;
+ /* Set this flag if you want to receive data even whilst sending data */
+ rs485conf.flags |= SER_RS485_RX_DURING_TX;
+
if (ioctl (fd, TIOCSRS485, &rs485conf) < 0) {
/* Error handling. See errno. */
}
@@ -118,3 +125,4 @@
5. REFERENCES
[1] include/linux/serial.h
+ [2] Documentation/devicetree/bindings/serial/rs485.txt

arch/arm/Kconfig

View file
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7536b9c..795126e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -727,7 +727,6 @@ config ARCH_S3C64XX
select ARCH_REQUIRE_GPIOLIB
select SAMSUNG_CLKSRC
select SAMSUNG_IRQ_VIC_TIMER
- select SAMSUNG_IRQ_UART
select S3C_GPIO_TRACK
select S3C_GPIO_PULL_UPDOWN
select S3C_GPIO_CFG_S3C24XX

arch/arm/mach-s3c64xx/dev-uart.c

View file
diff --git a/arch/arm/mach-s3c64xx/dev-uart.c b/arch/arm/mach-s3c64xx/dev-uart.c
index f797f74..c681b99 100644
--- a/arch/arm/mach-s3c64xx/dev-uart.c
+++ b/arch/arm/mach-s3c64xx/dev-uart.c
@@ -37,21 +37,10 @@ static struct resource s3c64xx_uart0_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S3CUART_RX0,
- .end = IRQ_S3CUART_RX0,
+ .start = IRQ_UART0,
+ .end = IRQ_UART0,
.flags = IORESOURCE_IRQ,
},
- [2] = {
- .start = IRQ_S3CUART_TX0,
- .end = IRQ_S3CUART_TX0,
- .flags = IORESOURCE_IRQ,
-
- },
- [3] = {
- .start = IRQ_S3CUART_ERR0,
- .end = IRQ_S3CUART_ERR0,
- .flags = IORESOURCE_IRQ,
- }
};
static struct resource s3c64xx_uart1_resource[] = {
@@ -61,19 +50,8 @@ static struct resource s3c64xx_uart1_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S3CUART_RX1,
- .end = IRQ_S3CUART_RX1,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S3CUART_TX1,
- .end = IRQ_S3CUART_TX1,
- .flags = IORESOURCE_IRQ,
-
- },
- [3] = {
- .start = IRQ_S3CUART_ERR1,
- .end = IRQ_S3CUART_ERR1,
+ .start = IRQ_UART1,
+ .end = IRQ_UART1,
.flags = IORESOURCE_IRQ,
},
};
@@ -85,19 +63,8 @@ static struct resource s3c6xx_uart2_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S3CUART_RX2,
- .end = IRQ_S3CUART_RX2,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S3CUART_TX2,
- .end = IRQ_S3CUART_TX2,
- .flags = IORESOURCE_IRQ,
-
- },
- [3] = {
- .start = IRQ_S3CUART_ERR2,
- .end = IRQ_S3CUART_ERR2,
+ .start = IRQ_UART2,
+ .end = IRQ_UART2,
.flags = IORESOURCE_IRQ,
},
};
@@ -109,19 +76,8 @@ static struct resource s3c64xx_uart3_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S3CUART_RX3,
- .end = IRQ_S3CUART_RX3,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S3CUART_TX3,
- .end = IRQ_S3CUART_TX3,
- .flags = IORESOURCE_IRQ,
-
- },
- [3] = {
- .start = IRQ_S3CUART_ERR3,
- .end = IRQ_S3CUART_ERR3,
+ .start = IRQ_UART3,
+ .end = IRQ_UART3,
.flags = IORESOURCE_IRQ,
},
};

arch/arm/mach-s3c64xx/include/mach/irqs.h

View file
diff --git a/arch/arm/mach-s3c64xx/include/mach/irqs.h b/arch/arm/mach-s3c64xx/include/mach/irqs.h
index c026f67..443f85b 100644
--- a/arch/arm/mach-s3c64xx/include/mach/irqs.h
+++ b/arch/arm/mach-s3c64xx/include/mach/irqs.h
@@ -27,36 +27,6 @@
#define IRQ_VIC0_BASE S3C_IRQ(0)
#define IRQ_VIC1_BASE S3C_IRQ(32)
-/* UART interrupts, each UART has 4 intterupts per channel so
- * use the space between the ISA and S3C main interrupts. Note, these
- * are not in the same order as the S3C24XX series! */
-
-#define IRQ_S3CUART_BASE0 (16)
-#define IRQ_S3CUART_BASE1 (20)
-#define IRQ_S3CUART_BASE2 (24)
-#define IRQ_S3CUART_BASE3 (28)
-
-#define UART_IRQ_RXD (0)
-#define UART_IRQ_ERR (1)
-#define UART_IRQ_TXD (2)
-#define UART_IRQ_MODEM (3)
-
-#define IRQ_S3CUART_RX0 (IRQ_S3CUART_BASE0 + UART_IRQ_RXD)
-#define IRQ_S3CUART_TX0 (IRQ_S3CUART_BASE0 + UART_IRQ_TXD)
-#define IRQ_S3CUART_ERR0 (IRQ_S3CUART_BASE0 + UART_IRQ_ERR)
-
-#define IRQ_S3CUART_RX1 (IRQ_S3CUART_BASE1 + UART_IRQ_RXD)
-#define IRQ_S3CUART_TX1 (IRQ_S3CUART_BASE1 + UART_IRQ_TXD)
-#define IRQ_S3CUART_ERR1 (IRQ_S3CUART_BASE1 + UART_IRQ_ERR)
-
-#define IRQ_S3CUART_RX2 (IRQ_S3CUART_BASE2 + UART_IRQ_RXD)
-#define IRQ_S3CUART_TX2 (IRQ_S3CUART_BASE2 + UART_IRQ_TXD)
-#define IRQ_S3CUART_ERR2 (IRQ_S3CUART_BASE2 + UART_IRQ_ERR)
-
-#define IRQ_S3CUART_RX3 (IRQ_S3CUART_BASE3 + UART_IRQ_RXD)
-#define IRQ_S3CUART_TX3 (IRQ_S3CUART_BASE3 + UART_IRQ_TXD)
-#define IRQ_S3CUART_ERR3 (IRQ_S3CUART_BASE3 + UART_IRQ_ERR)
-
/* VIC based IRQs */
#define S3C64XX_IRQ_VIC0(x) (IRQ_VIC0_BASE + (x))

arch/arm/mach-s3c64xx/irq.c

View file
diff --git a/arch/arm/mach-s3c64xx/irq.c b/arch/arm/mach-s3c64xx/irq.c
index 75d9a0e..b07357e 100644
--- a/arch/arm/mach-s3c64xx/irq.c
+++ b/arch/arm/mach-s3c64xx/irq.c
@@ -25,29 +25,6 @@
#include <plat/irq-uart.h>
#include <plat/cpu.h>
-static struct s3c_uart_irq uart_irqs[] = {
- [0] = {
- .regs = S3C_VA_UART0,
- .base_irq = IRQ_S3CUART_BASE0,
- .parent_irq = IRQ_UART0,
- },
- [1] = {
- .regs = S3C_VA_UART1,
- .base_irq = IRQ_S3CUART_BASE1,
- .parent_irq = IRQ_UART1,
- },
- [2] = {
- .regs = S3C_VA_UART2,
- .base_irq = IRQ_S3CUART_BASE2,
- .parent_irq = IRQ_UART2,
- },
- [3] = {
- .regs = S3C_VA_UART3,
- .base_irq = IRQ_S3CUART_BASE3,
- .parent_irq = IRQ_UART3,
- },
-};
-
/* setup the sources the vic should advertise resume for, even though it
* is not doing the wake (set_irq_wake needs to be valid) */
#define IRQ_VIC0_RESUME (1 << (IRQ_RTC_TIC - IRQ_VIC0_BASE))
@@ -67,6 +44,4 @@ void __init s3c64xx_init_irq(u32 vic0_valid, u32 vic1_valid)
/* add the timer sub-irqs */
s3c_init_vic_timer_irq(5, IRQ_TIMER0);
-
- s3c_init_uart_irqs(uart_irqs, ARRAY_SIZE(uart_irqs));
}

arch/arm/plat-s5p/Kconfig

View file
diff --git a/arch/arm/plat-s5p/Kconfig b/arch/arm/plat-s5p/Kconfig
index 9843c95..9a197e5 100644
--- a/arch/arm/plat-s5p/Kconfig
+++ b/arch/arm/plat-s5p/Kconfig
@@ -22,7 +22,6 @@ config PLAT_S5P
select PLAT_SAMSUNG
select SAMSUNG_CLKSRC
select SAMSUNG_IRQ_VIC_TIMER
- select SAMSUNG_IRQ_UART
help
Base platform code for Samsung's S5P series SoC.

arch/arm/plat-s5p/dev-uart.c

View file
diff --git a/arch/arm/plat-s5p/dev-uart.c b/arch/arm/plat-s5p/dev-uart.c
index afaf87f..c9308db 100644
--- a/arch/arm/plat-s5p/dev-uart.c
+++ b/arch/arm/plat-s5p/dev-uart.c
@@ -32,20 +32,10 @@ static struct resource s5p_uart0_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX0,
- .end = IRQ_S5P_UART_RX0,
+ .start = IRQ_UART0,
+ .end = IRQ_UART0,
.flags = IORESOURCE_IRQ,
},
- [2] = {
- .start = IRQ_S5P_UART_TX0,
- .end = IRQ_S5P_UART_TX0,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR0,
- .end = IRQ_S5P_UART_ERR0,
- .flags = IORESOURCE_IRQ,
- }
};
static struct resource s5p_uart1_resource[] = {
@@ -55,18 +45,8 @@ static struct resource s5p_uart1_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX1,
- .end = IRQ_S5P_UART_RX1,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S5P_UART_TX1,
- .end = IRQ_S5P_UART_TX1,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR1,
- .end = IRQ_S5P_UART_ERR1,
+ .start = IRQ_UART1,
+ .end = IRQ_UART1,
.flags = IORESOURCE_IRQ,
},
};
@@ -78,18 +58,8 @@ static struct resource s5p_uart2_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX2,
- .end = IRQ_S5P_UART_RX2,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S5P_UART_TX2,
- .end = IRQ_S5P_UART_TX2,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR2,
- .end = IRQ_S5P_UART_ERR2,
+ .start = IRQ_UART2,
+ .end = IRQ_UART2,
.flags = IORESOURCE_IRQ,
},
};
@@ -102,18 +72,8 @@ static struct resource s5p_uart3_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX3,
- .end = IRQ_S5P_UART_RX3,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S5P_UART_TX3,
- .end = IRQ_S5P_UART_TX3,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR3,
- .end = IRQ_S5P_UART_ERR3,
+ .start = IRQ_UART3,
+ .end = IRQ_UART3,
.flags = IORESOURCE_IRQ,
},
#endif
@@ -127,18 +87,8 @@ static struct resource s5p_uart4_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX4,
- .end = IRQ_S5P_UART_RX4,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S5P_UART_TX4,
- .end = IRQ_S5P_UART_TX4,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR4,
- .end = IRQ_S5P_UART_ERR4,
+ .start = IRQ_UART4,
+ .end = IRQ_UART4,
.flags = IORESOURCE_IRQ,
},
#endif
@@ -152,18 +102,8 @@ static struct resource s5p_uart5_resource[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = IRQ_S5P_UART_RX5,
- .end = IRQ_S5P_UART_RX5,
- .flags = IORESOURCE_IRQ,
- },
- [2] = {
- .start = IRQ_S5P_UART_TX5,
- .end = IRQ_S5P_UART_TX5,
- .flags = IORESOURCE_IRQ,
- },
- [3] = {
- .start = IRQ_S5P_UART_ERR5,
- .end = IRQ_S5P_UART_ERR5,
+ .start = IRQ_UART5,
+ .end = IRQ_UART5,
.flags = IORESOURCE_IRQ,
},
#endif

arch/arm/plat-s5p/include/plat/irqs.h

View file
diff --git a/arch/arm/plat-s5p/include/plat/irqs.h b/arch/arm/plat-s5p/include/plat/irqs.h
index ba9121c..144dbfc 100644
--- a/arch/arm/plat-s5p/include/plat/irqs.h
+++ b/arch/arm/plat-s5p/include/plat/irqs.h
@@ -37,41 +37,6 @@
#define IRQ_VIC1_BASE S5P_VIC1_BASE
#define IRQ_VIC2_BASE S5P_VIC2_BASE
-/* UART interrupts, each UART has 4 intterupts per channel so
- * use the space between the ISA and S3C main interrupts. Note, these
- * are not in the same order as the S3C24XX series! */
-
-#define IRQ_S5P_UART_BASE0 (16)
-#define IRQ_S5P_UART_BASE1 (20)
-#define IRQ_S5P_UART_BASE2 (24)
-#define IRQ_S5P_UART_BASE3 (28)
-
-#define UART_IRQ_RXD (0)
-#define UART_IRQ_ERR (1)
-#define UART_IRQ_TXD (2)
-
-#define IRQ_S5P_UART_RX0 (IRQ_S5P_UART_BASE0 + UART_IRQ_RXD)
-#define IRQ_S5P_UART_TX0 (IRQ_S5P_UART_BASE0 + UART_IRQ_TXD)
-#define IRQ_S5P_UART_ERR0 (IRQ_S5P_UART_BASE0 + UART_IRQ_ERR)
-
-#define IRQ_S5P_UART_RX1 (IRQ_S5P_UART_BASE1 + UART_IRQ_RXD)
-#define IRQ_S5P_UART_TX1 (IRQ_S5P_UART_BASE1 + UART_IRQ_TXD)
-#define IRQ_S5P_UART_ERR1 (IRQ_S5P_UART_BASE1 + UART_IRQ_ERR)
-
-#define IRQ_S5P_UART_RX2 (IRQ_S5P_UART_BASE2 + UART_IRQ_RXD)
-#define IRQ_S5P_UART_TX2 (IRQ_S5P_UART_BASE2 + UART_IRQ_TXD)
-#define IRQ_S5P_UART_ERR2 (IRQ_S5P_UART_BASE2 + UART_IRQ_ERR)
-
-#define IRQ_S5P_UART_RX3 (IRQ_S5P_UART_BASE3 + UART_IRQ_RXD)
-#define IRQ_S5P_UART_TX3 (IRQ_S5P_UART_BASE3 + UART_IRQ_TXD)
-#define IRQ_S5P_UART_ERR3 (IRQ_S5P_UART_BASE3 + UART_IRQ_ERR)
-
-/* S3C compatibilty defines */
-#define IRQ_S3CUART_RX0 IRQ_S5P_UART_RX0
-#define IRQ_S3CUART_RX1 IRQ_S5P_UART_RX1
-#define IRQ_S3CUART_RX2 IRQ_S5P_UART_RX2
-#define IRQ_S3CUART_RX3 IRQ_S5P_UART_RX3
-
/* VIC based IRQs */
#define S5P_IRQ_VIC0(x) (S5P_VIC0_BASE + (x))

arch/arm/plat-s5p/irq.c

View file
diff --git a/arch/arm/plat-s5p/irq.c b/arch/arm/plat-s5p/irq.c
index a97c089..afdaa10 100644
--- a/arch/arm/plat-s5p/irq.c
+++ b/arch/arm/plat-s5p/irq.c
@@ -17,42 +17,10 @@
#include <asm/hardware/vic.h>
-#include <linux/serial_core.h>
#include <mach/map.h>
#include <plat/regs-timer.h>
-#include <plat/regs-serial.h>
#include <plat/cpu.h>
#include <plat/irq-vic-timer.h>
-#include <plat/irq-uart.h>
-
-/*
- * Note, we make use of the fact that the parent IRQs, IRQ_UART[0..3]
- * are consecutive when looking up the interrupt in the demux routines.
- */
-static struct s3c_uart_irq uart_irqs[] = {
- [0] = {
- .regs = S5P_VA_UART0,
- .base_irq = IRQ_S5P_UART_BASE0,
- .parent_irq = IRQ_UART0,
- },
- [1] = {
- .regs = S5P_VA_UART1,
- .base_irq = IRQ_S5P_UART_BASE1,
- .parent_irq = IRQ_UART1,
- },
- [2] = {
- .regs = S5P_VA_UART2,
- .base_irq = IRQ_S5P_UART_BASE2,
- .parent_irq = IRQ_UART2,
- },
-#if CONFIG_SERIAL_SAMSUNG_UARTS > 3
- [3] = {
- .regs = S5P_VA_UART3,
- .base_irq = IRQ_S5P_UART_BASE3,
- .parent_irq = IRQ_UART3,
- },
-#endif
-};
void __init s5p_init_irq(u32 *vic, u32 num_vic)
{
@@ -65,6 +33,4 @@ void __init s5p_init_irq(u32 *vic, u32 num_vic)
#endif
s3c_init_vic_timer_irq(5, IRQ_TIMER0);
-
- s3c_init_uart_irqs(uart_irqs, ARRAY_SIZE(uart_irqs));
}

arch/arm/plat-samsung/Kconfig

View file
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index b3e1065..dffa37b 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -65,11 +65,6 @@ config SAMSUNG_IRQ_VIC_TIMER
help
Internal configuration to build the VIC timer interrupt code.
-config SAMSUNG_IRQ_UART
- bool
- help
- Internal configuration to build the IRQ UART demux code.
-
# options for gpio configuration support
config SAMSUNG_GPIOLIB_4BIT

arch/arm/plat-samsung/Makefile

View file
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index 853764b..1105922 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -21,7 +21,6 @@ obj-y += dev-asocdma.o
obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o
-obj-$(CONFIG_SAMSUNG_IRQ_UART) += irq-uart.o
obj-$(CONFIG_SAMSUNG_IRQ_VIC_TIMER) += irq-vic-timer.o
# ADC

arch/arm/plat-samsung/include/plat/regs-serial.h

View file
diff --git a/arch/arm/plat-samsung/include/plat/regs-serial.h b/arch/arm/plat-samsung/include/plat/regs-serial.h
index bac36fa..7207348 100644
--- a/arch/arm/plat-samsung/include/plat/regs-serial.h
+++ b/arch/arm/plat-samsung/include/plat/regs-serial.h
@@ -186,6 +186,11 @@
#define S3C64XX_UINTSP 0x34
#define S3C64XX_UINTM 0x38
+#define S3C64XX_UINTM_RXD (0)

This diff is incomplete. Download the complete patch.

arch/arm/plat-samsung/irq-uart.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/h8300/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/mips/pmc-sierra/msp71xx/msp_serial.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/udbg.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/udbg.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/platform/mrst/mrst.c

View file

This diff is incomplete. Download the complete patch.

drivers/isdn/i4l/isdn_tty.c

View file

This diff is incomplete. Download the complete patch.

drivers/parport/parport_pc.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/staging/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/staging/serial/68360serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/serial/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/staging/serial/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/staging/serial/TODO

View file

This diff is incomplete. Download the complete patch.

drivers/tty/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/tty/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/tty/amiserial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/cyclades.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/ehv_bytechan.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/hvc/hvc_console.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/hvc/hvc_irq.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/hvc/hvcs.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/hvc/hvsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/isicom.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/mxser.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/n_gsm.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/pty.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/68328serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/68328serial.h

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/8250.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/8250_dw.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/8250_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/altera_jtaguart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/altera_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/apbuart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/atmel_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/bfin_sport_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/bfin_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/cpm_uart/cpm_uart_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/crisv10.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/dz.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/icom.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/imx.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/ioc3_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/ioc4_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/jsm/jsm.h

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/jsm/jsm_driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/jsm/jsm_neo.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/jsm/jsm_tty.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/lantiq.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/m32r_sio.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/max3100.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/max3107.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mcf.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mfd.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mpc52xx_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mrst_max3110.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mrst_max3110.h

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/msm_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/msm_serial_hs.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/mux.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/nwpserial.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/pch_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/pxa.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/samsung.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/samsung.h

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/sb1250-duart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/serial_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/serial_ks8695.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/serial_txx9.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/sh-sci.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/sn_console.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/timbuart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/uartlite.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/ucc_uart.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/xilinx_uartps.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/serial/zs.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/synclink.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/synclinkmp.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/tty_io.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/tty_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/tty_ldisc.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/tty_mutex.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/tty_port.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/vt/keyboard.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/vt/selection.c

View file

This diff is incomplete. Download the complete patch.

drivers/tty/vt/vt.c

View file

This diff is incomplete. Download the complete patch.

include/linux/serial.h

View file

This diff is incomplete. Download the complete patch.

include/linux/serial_8250.h

View file

This diff is incomplete. Download the complete patch.

include/linux/serial_core.h

View file

This diff is incomplete. Download the complete patch.

include/linux/serial_reg.h

View file

This diff is incomplete. Download the complete patch.

include/linux/tty.h

View file

This diff is incomplete. Download the complete patch.

net/irda/ircomm/ircomm_tty.c

View file

This diff is incomplete. Download the complete patch.