* Re: [PATCH 6/6] serial: add amba-pl011-pci
From: Arnd Bergmann @ 2012-05-26 7:39 UTC (permalink / raw)
To: Alessandro Rubini
Cc: linux-kernel, Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, linux-arm-kernel, linux-serial, linux-arch
In-Reply-To: <b166cb0fce2a67b24da5808604553b4196258f45.1337959750.git.rubini@gnudd.com>
On Friday 25 May 2012, Alessandro Rubini wrote:
>
> This is a simple PCI driver that registers an amba device
> in its probe function. It successfully drives the 4 serial
> ports of the sta2x11 I/O Hub.
>
> Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
> Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Aside from the dma mask, this looks almost entirely generic. Would it
be possible to make this a generic pci-amba driver that lives under
drivers/amba/ and does not care about the type of device behind it?
Arnd
^ permalink raw reply
* [PATCH 11/15] serial: mxs-auart: Use clk_prepare_enable/clk_disable_unprepare
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Alan Cox, Greg Kroah-Hartman,
linux-serial
In-Reply-To: <1337987696-31728-1-git-send-email-festevam@gmail.com>
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Alan Cox <alan@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/tty/serial/mxs-auart.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..c109642 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -552,7 +552,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
s = auart_port[co->index];
port = &s->port;
- clk_enable(s->clk);
+ clk_prepare_enable(s->clk);
/* First save the CR then disable the interrupts */
old_ctrl2 = readl(port->membase + AUART_CTRL2);
@@ -578,7 +578,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
writel(old_ctrl0, port->membase + AUART_CTRL0);
writel(old_ctrl2, port->membase + AUART_CTRL2);
- clk_disable(s->clk);
+ clk_disable_unprepare(s->clk);
}
static void __init
--
1.7.1
^ permalink raw reply related
* [PATCH 6/6] serial: add amba-pl011-pci
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
This is a simple PCI driver that registers an amba device
in its probe function. It successfully drives the 4 serial
ports of the sta2x11 I/O Hub.
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/tty/serial/Kconfig | 10 +++-
drivers/tty/serial/Makefile | 1 +
drivers/tty/serial/amba-pl011-pci.c | 101 +++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+), 1 deletions(-)
create mode 100644 drivers/tty/serial/amba-pl011-pci.c
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 070b442..e5e5ef6 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -39,14 +39,22 @@ config SERIAL_AMBA_PL010_CONSOLE
config SERIAL_AMBA_PL011
tristate "ARM AMBA PL011 serial port support"
depends on ARM_AMBA
+ default y if STA2X11
select SERIAL_CORE
help
This selects the ARM(R) AMBA(R) PrimeCell PL011 UART. If you have
an Integrator/PP2, Integrator/CP or Versatile platform, say Y or M
- here.
+ here. This is also needed to use the sta2x11 I/O Hub for Atom.
If unsure, say N.
+config SERIAL_AMBA_PL011_PCI
+ tristate "ARM AMBA PL011 behind a PCI-to-AMBA bridge"
+ depends on SERIAL_AMBA_PL011 && PCI
+ default y if STA2X11
+ help
+ Say Y if your AMBA bus is behind a PCI bridge (e.g.: sta2x11)
+
config SERIAL_AMBA_PL011_CONSOLE
bool "Support for console on AMBA serial port"
depends on SERIAL_AMBA_PL011=y
diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
index 7257c5d..b8cd14b 100644
--- a/drivers/tty/serial/Makefile
+++ b/drivers/tty/serial/Makefile
@@ -19,6 +19,7 @@ obj-$(CONFIG_SERIAL_8250) += 8250/
obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o
obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o
+obj-$(CONFIG_SERIAL_AMBA_PL011_PCI) += amba-pl011-pci.o
obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o
obj-$(CONFIG_SERIAL_PXA) += pxa.o
obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
diff --git a/drivers/tty/serial/amba-pl011-pci.c b/drivers/tty/serial/amba-pl011-pci.c
new file mode 100644
index 0000000..b3aa0f1
--- /dev/null
+++ b/drivers/tty/serial/amba-pl011-pci.c
@@ -0,0 +1,101 @@
+/*
+ * Support for AMBA pl011 uart behind a PCI bridge
+ * Copyright 2012 ST Microelectronics (Alessandro Rubini)
+ * GNU GPL version 2.
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/amba/bus.h>
+#include <linux/pci.h>
+#include <linux/pci_ids.h>
+#include <linux/slab.h>
+#include <linux/irq.h>
+#include <linux/sizes.h>
+#include <linux/amba/serial.h>
+
+/* This is a template, copied every time a new pci device appears */
+static AMBA_APB_DEVICE(pl011_pci_template, "pl011-pci", 0,
+ 0 /* base */, {0} /* irqs */, NULL /* data */);
+
+static int __devinit pl011_pci_probe(struct pci_dev *pdev,
+ const struct pci_device_id *id)
+{
+ struct amba_device *adev;
+ struct amba_pl011_data *data;
+ int ret;
+
+ /* Simply build an amba device and register it */
+ adev = kmemdup(&pl011_pci_template_device,
+ sizeof(pl011_pci_template_device), GFP_KERNEL);
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
+ if (!adev || !data) {
+ kfree(adev);
+ kfree(data);
+ return -ENOMEM;
+ }
+ pci_set_master(pdev);
+ pci_enable_msi(pdev);
+ adev->irq[0] = pdev->irq;
+ if (pdev->vendor == PCI_VENDOR_ID_STMICRO) {
+ /* Under sta2x11, DMA is there but limited to 512M */
+ adev->dma_mask = SZ_512M - 1;
+ adev->dev.coherent_dma_mask = SZ_512M - 1;
+ }
+
+ /* Link the pci to amba and the amba to pci */
+ adev->dev.platform_data = data;
+ //data->pdev = pdev;
+ pci_set_drvdata(pdev, adev);
+
+ /* Create a new resource, to be registered as child of the PCI one */
+ adev->res.flags = pdev->resource[0].flags;
+ adev->res.start = pdev->resource[0].start;
+ adev->res.end = adev->res.start + SZ_4K - 1;
+
+ /* change name */
+ adev->dev.init_name = kasprintf(GFP_ATOMIC, "pl011-pci-%02x:%04x",
+ pdev->bus->number, pdev->devfn);
+
+ printk(KERN_INFO "%s %i\n", __func__, __LINE__);
+ if ((ret = amba_device_register(adev, &pdev->resource[0])) < 0) {
+ kfree(adev);
+ return ret;
+ }
+ return 0;
+};
+
+static void __devexit pl011_pci_remove(struct pci_dev *pdev)
+{
+ struct amba_device *adev = pci_get_drvdata(pdev);
+ amba_device_unregister(adev);
+ kfree(adev->dev.platform_data);
+ kfree(adev);
+}
+
+static DEFINE_PCI_DEVICE_TABLE(pl011_pci_table) = {
+ {PCI_VDEVICE(STMICRO, PCI_DEVICE_ID_STMICRO_UART_HWFC)},
+ {PCI_VDEVICE(STMICRO, PCI_DEVICE_ID_STMICRO_UART_NO_HWFC)},
+ {0,}
+};
+
+static struct pci_driver pl011_pci_driver = {
+ .name = "pl011-pci",
+ .id_table = pl011_pci_table,
+ .probe = pl011_pci_probe,
+ .remove = __devexit_p(pl011_pci_remove),
+};
+
+static int __init pl011_pci_init(void)
+{
+ return pci_register_driver(&pl011_pci_driver);
+}
+
+static void __exit pl011_pci_exit(void)
+{
+ pci_unregister_driver(&pl011_pci_driver);
+}
+
+module_init(pl011_pci_init);
+module_exit(pl011_pci_exit);
+
--
1.7.7.2
^ permalink raw reply related
* [PATCH 5/6] x86: add CONFIG_ARM_AMBA, selected by STA2X11
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
The sta2x11 I/O Hub is a bridge from PCIe to AMBA. It reuses a number
of amba drivers and needs to activate core bus support.
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
---
arch/x86/Kconfig | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 4732997..1f3938a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -499,6 +499,7 @@ config STA2X11
select SWIOTLB
select MFD_STA2X11
select ARCH_REQUIRE_GPIOLIB
+ select ARM_AMBA
default n
---help---
This adds support for boards based on the STA2X11 IO-Hub,
@@ -2154,6 +2155,9 @@ config GEOS
endif # X86_32
+config ARM_AMBA
+ bool
+
config AMD_NB
def_bool y
depends on CPU_SUP_AMD && PCI
--
1.7.7.2
^ permalink raw reply related
* [PATCH 4/6] pl011: use the new linux/sizes.h
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Cc: Russell King <linux@arm.linux.org.uk>
---
drivers/tty/serial/amba-pl011.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 4ad721f..d394b93 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -53,9 +53,9 @@
#include <linux/delay.h>
#include <linux/types.h>
#include <linux/pinctrl/consumer.h>
+#include <linux/sizes.h>
#include <asm/io.h>
-#include <asm/sizes.h>
#define UART_NR 14
--
1.7.7.2
^ permalink raw reply related
* [PATCH 0/6] Bridging PCI to amba
From: Alessandro Rubini @ 2012-05-25 15:47 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
This patch set introduces use of the pl011 AMBA serial port under a
PCI bridge. To compile AMBA under x86, though I need <asm/sizes.h>,
which is moved to <linux/sizes.h> as suggested earlier.
I'm hereby volunteering to handle the moving of the various users
of <asm/sizes.h> to <linux/sizes.h>; this set only moves the ARM core
files and the ones that I need under x86.
The whole patch set is sent to the same set of recipients:
all relevant lists, Russell King (for arm), Greg-KH (for uart) and
Arnd Bergmann (for generic include).
With this set in place (plus a clok API not included here) I have
4 serial ports working. We have a number of other devices that can
use existing drivers, but we definitely need <linux/sizes.h> first.
spusa.root# uname -r
3.4.0-next-20120524-00014-gae0c129
spusa.root# dmesg | grep ttyA
pl011-pci-03:0005: ttyAMA0 at MMIO 0xcf400000 (irq = 46) is a PL011 rev3
pl011-pci-03:0006: ttyAMA1 at MMIO 0xcec00000 (irq = 47) is a PL011 rev3
pl011-pci-03:0007: ttyAMA2 at MMIO 0xce400000 (irq = 48) is a PL011 rev3
pl011-pci-04:0005: ttyAMA3 at MMIO 0xd3400000 (irq = 49) is a PL011 rev3
spusa.root# grep -C1 pl011 /proc/iomem
ce400000-ce7fffff : 0000:03:00.7
ce400000-ce400fff : pl011-pci-03:0007
ce400000-ce400fff : uart-pl011
ce800000-cebfffff : 0000:03:00.6
cec00000-ceffffff : 0000:03:00.6
cec00000-cec00fff : pl011-pci-03:0006
cec00000-cec00fff : uart-pl011
cf000000-cf3fffff : 0000:03:00.5
cf400000-cf7fffff : 0000:03:00.5
cf400000-cf400fff : pl011-pci-03:0005
cf400000-cf400fff : uart-pl011
cf800000-cfbfffff : 0000:03:00.4
--
d3400000-d37fffff : 0000:04:00.5
d3400000-d3400fff : pl011-pci-04:0005
d3400000-d3400fff : uart-pl011
d3800000-d3bfffff : 0000:04:00.4
Alessandro Rubini (6):
sizes.h: move from asm-generic to <linux/sizes.h>
amba: use the new linux/sizes.h
ARM: use the new linux/sizes.h
serial: use the new linux/sizes.h
x86: add CONFIG_ARM_AMBA, selected by STA2X11
serial: add amba-pl011-pci
arch/arm/include/asm/memory.h | 2 +-
arch/arm/mm/dma-mapping.c | 2 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/ioremap.c | 2 +-
arch/arm/mm/mmu.c | 2 +-
arch/x86/Kconfig | 4 ++
drivers/amba/bus.c | 2 +-
drivers/tty/serial/Kconfig | 10 +++-
drivers/tty/serial/Makefile | 1 +
drivers/tty/serial/amba-pl011-pci.c | 101 +++++++++++++++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 +-
include/asm-generic/sizes.h | 49 +----------------
include/linux/sizes.h | 47 ++++++++++++++++
13 files changed, 171 insertions(+), 55 deletions(-)
create mode 100644 drivers/tty/serial/amba-pl011-pci.c
create mode 100644 include/linux/sizes.h
--
1.7.7.2
^ permalink raw reply
* [PATCH 3/6] ARM: use the new linux/sizes.h
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Cc: Russell King <linux@arm.linux.org.uk>
---
arch/arm/include/asm/memory.h | 2 +-
arch/arm/mm/dma-mapping.c | 2 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/ioremap.c | 2 +-
arch/arm/mm/mmu.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index fcb5757..e965f1b 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -16,7 +16,7 @@
#include <linux/compiler.h>
#include <linux/const.h>
#include <linux/types.h>
-#include <asm/sizes.h>
+#include <linux/sizes.h>
#ifdef CONFIG_NEED_MACH_MEMORY_H
#include <mach/memory.h>
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index ea6b431..30a031c 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -23,12 +23,12 @@
#include <linux/slab.h>
#include <linux/iommu.h>
#include <linux/vmalloc.h>
+#include <linux/sizes.h>
#include <asm/memory.h>
#include <asm/highmem.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
-#include <asm/sizes.h>
#include <asm/mach/arch.h>
#include <asm/dma-iommu.h>
#include <asm/mach/map.h>
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index c21d06c..ad7fd8a 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -21,13 +21,13 @@
#include <linux/gfp.h>
#include <linux/memblock.h>
#include <linux/dma-contiguous.h>
+#include <linux/sizes.h>
#include <asm/mach-types.h>
#include <asm/memblock.h>
#include <asm/prom.h>
#include <asm/sections.h>
#include <asm/setup.h>
-#include <asm/sizes.h>
#include <asm/tlb.h>
#include <asm/fixmap.h>
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 4f55f50..566750f 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -25,6 +25,7 @@
#include <linux/mm.h>
#include <linux/vmalloc.h>
#include <linux/io.h>
+#include <linux/sizes.h>
#include <asm/cp15.h>
#include <asm/cputype.h>
@@ -32,7 +33,6 @@
#include <asm/mmu_context.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-#include <asm/sizes.h>
#include <asm/system_info.h>
#include <asm/mach/map.h>
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index e5dad60..2196116 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -16,13 +16,13 @@
#include <linux/memblock.h>
#include <linux/fs.h>
#include <linux/vmalloc.h>
+#include <linux/sizes.h>
#include <asm/cp15.h>
#include <asm/cputype.h>
#include <asm/sections.h>
#include <asm/cachetype.h>
#include <asm/setup.h>
-#include <asm/sizes.h>
#include <asm/smp_plat.h>
#include <asm/tlb.h>
#include <asm/highmem.h>
--
1.7.7.2
^ permalink raw reply related
* [PATCH 2/6] amba: use the new linux/sizes.h
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: Giancarlo Asnaghi, Alan Cox, Russell King, x86,
Greg Kroah-Hartman, Arnd Bergmann, linux-arm-kernel, linux-serial,
linux-arch
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Cc: Russell King <linux@arm.linux.org.uk>
---
drivers/amba/bus.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
index b7e7285..e29bfa7 100644
--- a/drivers/amba/bus.c
+++ b/drivers/amba/bus.c
@@ -18,7 +18,7 @@
#include <linux/amba/bus.h>
#include <asm/irq.h>
-#include <asm/sizes.h>
+#include <linux/sizes.h>
#define to_amba_driver(d) container_of(d, struct amba_driver, drv)
--
1.7.7.2
^ permalink raw reply related
* [PATCH 1/6] sizes.h: move from asm-generic to <linux/sizes.h>
From: Alessandro Rubini @ 2012-05-25 15:48 UTC (permalink / raw)
To: linux-kernel
Cc: linux-arch, Giancarlo Asnaghi, Russell King, Arnd Bergmann,
Greg Kroah-Hartman, x86, linux-serial, linux-arm-kernel, Alan Cox
In-Reply-To: <cover.1337959750.git.rubini@gnudd.com>
sizes.h is used throughout the AMBA code and drivers, so the header
should be available to everyone in order to driver AMBA/PrimeCell
peripherals behind a PCI bridge where the host can be any platform
(I'm doing it under x86).
At this step <asm-generic/sizes.h> includes <linux/sizes.h>,
to allow a grace period for both in-tree and out-of-tree drivers.
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
---
include/asm-generic/sizes.h | 49 +-----------------------------------------
include/linux/sizes.h | 47 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 47 deletions(-)
create mode 100644 include/linux/sizes.h
diff --git a/include/asm-generic/sizes.h b/include/asm-generic/sizes.h
index ea5d4ef..1dcfad9 100644
--- a/include/asm-generic/sizes.h
+++ b/include/asm-generic/sizes.h
@@ -1,47 +1,2 @@
-/*
- * linux/include/asm-generic/sizes.h
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_GENERIC_SIZES_H__
-#define __ASM_GENERIC_SIZES_H__
-
-#define SZ_1 0x00000001
-#define SZ_2 0x00000002
-#define SZ_4 0x00000004
-#define SZ_8 0x00000008
-#define SZ_16 0x00000010
-#define SZ_32 0x00000020
-#define SZ_64 0x00000040
-#define SZ_128 0x00000080
-#define SZ_256 0x00000100
-#define SZ_512 0x00000200
-
-#define SZ_1K 0x00000400
-#define SZ_2K 0x00000800
-#define SZ_4K 0x00001000
-#define SZ_8K 0x00002000
-#define SZ_16K 0x00004000
-#define SZ_32K 0x00008000
-#define SZ_64K 0x00010000
-#define SZ_128K 0x00020000
-#define SZ_256K 0x00040000
-#define SZ_512K 0x00080000
-
-#define SZ_1M 0x00100000
-#define SZ_2M 0x00200000
-#define SZ_4M 0x00400000
-#define SZ_8M 0x00800000
-#define SZ_16M 0x01000000
-#define SZ_32M 0x02000000
-#define SZ_64M 0x04000000
-#define SZ_128M 0x08000000
-#define SZ_256M 0x10000000
-#define SZ_512M 0x20000000
-
-#define SZ_1G 0x40000000
-#define SZ_2G 0x80000000
-
-#endif /* __ASM_GENERIC_SIZES_H__ */
+/* This is a placeholder, to be removed over time */
+#include <linux/sizes.h>
diff --git a/include/linux/sizes.h b/include/linux/sizes.h
new file mode 100644
index 0000000..ce3e815
--- /dev/null
+++ b/include/linux/sizes.h
@@ -0,0 +1,47 @@
+/*
+ * include/linux/sizes.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __LINUX_SIZES_H__
+#define __LINUX_SIZES_H__
+
+#define SZ_1 0x00000001
+#define SZ_2 0x00000002
+#define SZ_4 0x00000004
+#define SZ_8 0x00000008
+#define SZ_16 0x00000010
+#define SZ_32 0x00000020
+#define SZ_64 0x00000040
+#define SZ_128 0x00000080
+#define SZ_256 0x00000100
+#define SZ_512 0x00000200
+
+#define SZ_1K 0x00000400
+#define SZ_2K 0x00000800
+#define SZ_4K 0x00001000
+#define SZ_8K 0x00002000
+#define SZ_16K 0x00004000
+#define SZ_32K 0x00008000
+#define SZ_64K 0x00010000
+#define SZ_128K 0x00020000
+#define SZ_256K 0x00040000
+#define SZ_512K 0x00080000
+
+#define SZ_1M 0x00100000
+#define SZ_2M 0x00200000
+#define SZ_4M 0x00400000
+#define SZ_8M 0x00800000
+#define SZ_16M 0x01000000
+#define SZ_32M 0x02000000
+#define SZ_64M 0x04000000
+#define SZ_128M 0x08000000
+#define SZ_256M 0x10000000
+#define SZ_512M 0x20000000
+
+#define SZ_1G 0x40000000
+#define SZ_2G 0x80000000
+
+#endif /* __LINUX_SIZES_H__ */
--
1.7.7.2
^ permalink raw reply related
* Re: [PATCH] serial/amba-pl011: move custom pin control to driver
From: Shawn Guo @ 2012-05-25 6:26 UTC (permalink / raw)
To: Linus Walleij
Cc: Greg Kroah-Hartman, linux-serial, linux-arm-kernel, Lee Jones,
Linus Walleij, Russell King
In-Reply-To: <1337800726-4076-1-git-send-email-linus.walleij@stericsson.com>
On Wed, May 23, 2012 at 09:18:46PM +0200, Linus Walleij wrote:
> From: Linus Walleij <linus.walleij@linaro.org>
>
> We had a boot regression in Ux500 in the merge window because
> two orthogonal pin control schemes for the PL011 were merged
> at the same time:
>
> - One using the .init() and .exit() hooks into the platform
> for Ux500 putting the pins into default vs sleep state
> respectively as the port was started/stopped.
> commit a09806607fd20bed2f8c41fe22793386790a14aa
> "ARM: ux500: switch to using pinctrl for uart0"
>
> - One hogging the default setting at PL011 probe()
> commit 258e055111d3cde2607e0d04eb91da2f7a59b591
> "serial: amba-pl011: adopt pinctrl support"
>
> To get a solution that works for both let's scrap the stuff
> in the platform callbacks, instead have the driver itself
> select default and sleep states when the port is
> started/stopped. Hopefully this works for all clients.
> Platform callbacks are bad for device tree migration anyway,
> so this rids us of another problem in Ux500.
>
> Cc: linux-serial@vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> Reported-by: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
On imx28:
Tested-by: Shawn Guo <shawn.guo@linaro.org>
^ permalink raw reply
* Re: struct tty_flip_buffer replacement in newer kernels
From: Alan Cox @ 2012-05-24 16:00 UTC (permalink / raw)
To: Dmitriy Alekseev; +Cc: linux-serial@vger.kernel.org
In-Reply-To: <1337871912.83081.YahooMailNeo@web44916.mail.sp1.yahoo.com>
On Thu, 24 May 2012 08:05:12 -0700 (PDT)
Dmitriy Alekseev <alexeev6@yahoo.com> wrote:
> The link I gave is original source, which I afterwards changed according to my parameters - clock and processor memory map.
>
> You right about offset 0x8, this is offset between ports in my 68 mode, I corrected, but it doesn't give any result.
You may have to stick some traces into drivers/tty/8250.c at this point
and see what is going on. It's clearly trying to do the set up right, and
created the ports but didn't believe the hardware. That usually implies
that a parameter is wrong somewhere.
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: struct tty_flip_buffer replacement in newer kernels
From: Dmitriy Alekseev @ 2012-05-24 15:05 UTC (permalink / raw)
To: Alan Cox, linux-serial@vger.kernel.org
In-Reply-To: <20120524142219.6606e57a@pyramind.ukuu.org.uk>
The link I gave is original source, which I afterwards changed according to my parameters - clock and processor memory map.
You right about offset 0x8, this is offset between ports in my 68 mode, I corrected, but it doesn't give any result.
Best regards,
Dmitriy Alekseev
----- Original Message -----
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Dmitriy Alekseev <alexeev6@yahoo.com>
Cc:
Sent: Thursday, May 24, 2012 5:22 PM
Subject: Re: struct tty_flip_buffer replacement in newer kernels
On Thu, 24 May 2012 03:38:42 -0700 (PDT)
Dmitriy Alekseev <alexeev6@yahoo.com> wrote:
> Hi, Alan.
>
> Thank You very much for the answer!
> So, if I understand correctly, I took for example this: arch/arm/mach-omap1/board-voiceblue.c
> And made in my board specific file:
> static struct plat_serial8250_port exar_ports[] = {
> {
> .mapbase = (unsigned long)(0x30000300), // according to at91rm9200 CS2 memory map
> .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, // I don't know, what kind of flags is suitable for me
That looks reasonable - UPF_IOREMAP tells the kernel to do the ioremap
for you, UPF_BOOT_AUTOCONF tries to autoconfigure the chip type
> .iotype = UPIO_MEM, // similar problem
> .regshift = 1,
And this guides the register spacing (1 = byte spaced, 2 = word spaced, 3
= dword spaced etc)
> .uartclk = 14745600, // Our chip clock frequency
UPIO_MEM is for MMIO, UPIO_PORT for port I/O
However the values don't look the same as the old driver you linked to -
that seems to be using 0x2800000 and then 8 byte spacing plus a 1843200
clock.
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Fw: struct tty_flip_buffer replacement in newer kernels
From: Dmitriy Alekseev @ 2012-05-24 10:38 UTC (permalink / raw)
To: linux-serial@vger.kernel.org
In-Reply-To: <1337855090.9672.YahooMailNeo@web44908.mail.sp1.yahoo.com>
Hi, Alan.
Thank You very much for the answer!
So, if I understand correctly, I took for example this: arch/arm/mach-omap1/board-voiceblue.c
And made in my board specific file:
static struct plat_serial8250_port exar_ports[] = {
{
.mapbase = (unsigned long)(0x30000300), // according to at91rm9200 CS2 memory map
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, // I don't know, what kind of flags is suitable for me
.iotype = UPIO_MEM, // similar problem
.regshift = 1,
.uartclk = 14745600, // Our chip clock frequency
},
{
.mapbase = (unsigned long)(0x30000200),
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
.iotype = UPIO_MEM,
.regshift = 1,
.uartclk = 14745600,
},
{
.mapbase = (unsigned long)(0x30000100),
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
.iotype = UPIO_MEM,
.regshift = 1,
.uartclk = 14745600,
},
{
.mapbase = (unsigned long)(0x30000000),
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
.iotype = UPIO_MEM,
.regshift = 1,
.uartclk = 14745600,
},
{ },
};
static struct platform_device serial_device = {
.name = "serial8250",
.id = PLAT8250_DEV_EXAR_ST16C554,
.dev = {
.platform_data = exar_ports,
},
};
in my board __init func:
platform_device_register(&serial_device);
at .config I made:
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_SHARE_IRQ is not set
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_RSA is not set
dmesg gives:
[ 0.695312] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
New devices in filesystem has been registered, but they didn't related with hardware chip yet.
#cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown mmio:0x30000000 irq:0
1: uart:unknown port:00000000 irq:0
2: uart:unknown port:00000000 irq:0
3: uart:unknown port:00000000 irq:0
What shoud I check, learn, do for solving this problem?
Very grateful,
Dmitriy Alekseev
----- Original Message -----
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Dmitriy Alekseev <alexeev6@yahoo.com>
Cc: "linux-serial@vger.kernel.org"
<linux-serial@vger.kernel.org>
Sent: Tuesday, May 22, 2012 8:27 PM
Subject: Re: struct tty_flip_buffer replacement in newer kernels
On Tue, 22 May 2012 07:38:28 -0700 (PDT)
Dmitriy Alekseev <alexeev6@yahoo.com> wrote:
> This is driver source I found:
> http://www.codeforge.com/read/118181/st16c554_serial.c__html
>
> It was written for quad uart st16c554 for arm chip s3c2410, which I tried to adapt for at91rm9200 board and newer kernel version.
Why not use the in kernel 8250 driver (which will drive a stamdard
16540/550/554 as well ?)
To ressurect one you'll need to add kref handling, rework the termios code
and maybe some other bits too.
Take a look how other arm boards use struct plat_serial8250_port and the
serial8250 platform driver. You should just be able to declare the
structures and register the platform device.
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a
message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* RE: [PATCH 1/2] serial: samsung: Remove NULL checking for baud clock
From: Kyoungil Kim @ 2012-05-24 8:39 UTC (permalink / raw)
To: 'Kyoungil Kim', linux-arm-kernel, linux-samsung-soc,
linux-serial
Cc: 'Kukjin Kim', 'Alan Cox', 'Russell King'
Kyoungil Kim wrote:
I missed following.
Russell King suggested:
As I said, drivers have no business interpreting anything but IS_ERR(clk) as being an error. They should not make any other
assumptions.
Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk>
> Signed-off-by: Kyoungil Kim <ki0351.kim@samsung.com>
> ---
> drivers/tty/serial/samsung.c | 21 ++++++++++++---------
> 1 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index d8b0aee..5668538 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -529,7 +529,7 @@ static void s3c24xx_serial_pm(struct uart_port *port, unsigned int level,
>
> switch (level) {
> case 3:
> - if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> + if (!IS_ERR(ourport->baudclk))
> clk_disable(ourport->baudclk);
>
> clk_disable(ourport->clk);
> @@ -538,7 +538,7 @@ static void s3c24xx_serial_pm(struct uart_port *port, unsigned int level,
> case 0:
> clk_enable(ourport->clk);
>
> - if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> + if (!IS_ERR(ourport->baudclk))
> clk_enable(ourport->baudclk);
>
> break;
> @@ -604,7 +604,6 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
> char clkname[MAX_CLK_NAME_LENGTH];
> int calc_deviation, deviation = (1 << 30) - 1;
>
> - *best_clk = NULL;
> clk_sel = (ourport->cfg->clk_sel) ? ourport->cfg->clk_sel :
> ourport->info->def_clk_sel;
> for (cnt = 0; cnt < info->num_clks; cnt++) {
> @@ -613,7 +612,7 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
>
> sprintf(clkname, "clk_uart_baud%d", cnt);
> clk = clk_get(ourport->port.dev, clkname);
> - if (IS_ERR_OR_NULL(clk))
> + if (IS_ERR(clk))
> continue;
>
> rate = clk_get_rate(clk);
> @@ -684,7 +683,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
> {
> struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
> struct s3c24xx_uart_port *ourport = to_ourport(port);
> - struct clk *clk = NULL;
> + struct clk *clk = ERR_PTR(-EINVAL);
> unsigned long flags;
> unsigned int baud, quot, clk_sel = 0;
> unsigned int ulcon;
> @@ -705,7 +704,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
> quot = s3c24xx_serial_getclk(ourport, baud, &clk, &clk_sel);
> if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
> quot = port->custom_divisor;
> - if (!clk)
> + if (IS_ERR(clk))
> return;
>
> /* check to see if we need to change clock source */
> @@ -713,9 +712,9 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
> if (ourport->baudclk != clk) {
> s3c24xx_serial_setsource(port, clk_sel);
>
> - if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
> + if (!IS_ERR(ourport->baudclk)) {
> clk_disable(ourport->baudclk);
> - ourport->baudclk = NULL;
> + ourport->baudclk = ERR_PTR(-EINVAL);
> }
>
> clk_enable(clk);
> @@ -1160,6 +1159,9 @@ static ssize_t s3c24xx_serial_show_clksrc(struct device *dev,
> struct uart_port *port = s3c24xx_dev_to_port(dev);
> struct s3c24xx_uart_port *ourport = to_ourport(port);
>
> + if (IS_ERR(ourport->baudclk))
> + return -EINVAL;
> +
> return snprintf(buf, PAGE_SIZE, "* %s\n", ourport->baudclk->name);
> }
>
> @@ -1200,6 +1202,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
> return -ENODEV;
> }
>
> + ourport->baudclk = ERR_PTR(-EINVAL);
> ourport->info = ourport->drv_data->info;
> ourport->cfg = (pdev->dev.platform_data) ?
> (struct s3c2410_uartcfg *)pdev->dev.platform_data :
> @@ -1387,7 +1390,7 @@ s3c24xx_serial_get_options(struct uart_port *port, int *baud,
> sprintf(clk_name, "clk_uart_baud%d", clk_sel);
>
> clk = clk_get(port->dev, clk_name);
> - if (!IS_ERR(clk) && clk != NULL)
> + if (!IS_ERR(clk))
> rate = clk_get_rate(clk);
> else
> rate = 1;
> --
> 1.7.1
^ permalink raw reply
* [PATCH] serial/amba-pl011: move custom pin control to driver
From: Linus Walleij @ 2012-05-23 19:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-serial
Cc: linux-arm-kernel, Lee Jones, Linus Walleij, Shawn Guo,
Russell King
From: Linus Walleij <linus.walleij@linaro.org>
We had a boot regression in Ux500 in the merge window because
two orthogonal pin control schemes for the PL011 were merged
at the same time:
- One using the .init() and .exit() hooks into the platform
for Ux500 putting the pins into default vs sleep state
respectively as the port was started/stopped.
commit a09806607fd20bed2f8c41fe22793386790a14aa
"ARM: ux500: switch to using pinctrl for uart0"
- One hogging the default setting at PL011 probe()
commit 258e055111d3cde2607e0d04eb91da2f7a59b591
"serial: amba-pl011: adopt pinctrl support"
To get a solution that works for both let's scrap the stuff
in the platform callbacks, instead have the driver itself
select default and sleep states when the port is
started/stopped. Hopefully this works for all clients.
Platform callbacks are bad for device tree migration anyway,
so this rids us of another problem in Ux500.
Cc: linux-serial@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Reported-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/mach-ux500/board-mop500.c | 54 +-----------------------------------
drivers/tty/serial/amba-pl011.c | 45 +++++++++++++++++++++++++++---
2 files changed, 42 insertions(+), 57 deletions(-)
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 4bc0cbc..e7af625 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -540,43 +540,12 @@ static void ux500_uart0_reset(void)
udelay(1);
}
-/* This needs to be referenced by callbacks */
-struct pinctrl *u0_p;
-struct pinctrl_state *u0_def;
-struct pinctrl_state *u0_sleep;
-
-static void ux500_uart0_init(void)
-{
- int ret;
-
- if (IS_ERR(u0_p) || IS_ERR(u0_def))
- return;
-
- ret = pinctrl_select_state(u0_p, u0_def);
- if (ret)
- pr_err("could not set UART0 defstate\n");
-}
-
-static void ux500_uart0_exit(void)
-{
- int ret;
-
- if (IS_ERR(u0_p) || IS_ERR(u0_sleep))
- return;
-
- ret = pinctrl_select_state(u0_p, u0_sleep);
- if (ret)
- pr_err("could not set UART0 idlestate\n");
-}
-
static struct amba_pl011_data uart0_plat = {
#ifdef CONFIG_STE_DMA40
.dma_filter = stedma40_filter,
.dma_rx_param = &uart0_dma_cfg_rx,
.dma_tx_param = &uart0_dma_cfg_tx,
#endif
- .init = ux500_uart0_init,
- .exit = ux500_uart0_exit,
.reset = ux500_uart0_reset,
};
@@ -598,28 +567,7 @@ static struct amba_pl011_data uart2_plat = {
static void __init mop500_uart_init(struct device *parent)
{
- struct amba_device *uart0_device;
-
- uart0_device = db8500_add_uart0(parent, &uart0_plat);
- if (uart0_device) {
- u0_p = pinctrl_get(&uart0_device->dev);
- if (IS_ERR(u0_p))
- dev_err(&uart0_device->dev,
- "could not get UART0 pinctrl\n");
- else {
- u0_def = pinctrl_lookup_state(u0_p,
- PINCTRL_STATE_DEFAULT);
- if (IS_ERR(u0_def)) {
- dev_err(&uart0_device->dev,
- "could not get UART0 defstate\n");
- }
- u0_sleep = pinctrl_lookup_state(u0_p,
- PINCTRL_STATE_SLEEP);
- if (IS_ERR(u0_sleep))
- dev_err(&uart0_device->dev,
- "could not get UART0 idlestate\n");
- }
- }
+ db8500_add_uart0(parent, &uart0_plat);
db8500_add_uart1(parent, &uart1_plat);
db8500_add_uart2(parent, &uart2_plat);
}
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 4ad721f..c17923e 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -133,6 +133,10 @@ struct pl011_dmatx_data {
struct uart_amba_port {
struct uart_port port;
struct clk *clk;
+ /* Two optional pin states - default & sleep */
+ struct pinctrl *pinctrl;
+ struct pinctrl_state *pins_default;
+ struct pinctrl_state *pins_sleep;
const struct vendor_data *vendor;
unsigned int dmacr; /* dma control reg */
unsigned int im; /* interrupt mask */
@@ -1312,6 +1316,14 @@ static int pl011_startup(struct uart_port *port)
unsigned int cr;
int retval;
+ /* Optionaly enable pins to be muxed in and configured */
+ if (!IS_ERR(uap->pins_default)) {
+ retval = pinctrl_select_state(uap->pinctrl, uap->pins_default);
+ if (retval)
+ dev_err(port->dev,
+ "could not set default pins\n");
+ }
+
retval = clk_prepare(uap->clk);
if (retval)
goto out;
@@ -1420,6 +1432,7 @@ static void pl011_shutdown(struct uart_port *port)
{
struct uart_amba_port *uap = (struct uart_amba_port *)port;
unsigned int cr;
+ int retval;
/*
* disable all interrupts
@@ -1462,6 +1475,14 @@ static void pl011_shutdown(struct uart_port *port)
*/
clk_disable(uap->clk);
clk_unprepare(uap->clk);
+ /* Optionally let pins go into sleep states */
+ if (!IS_ERR(uap->pins_sleep)) {
+ retval = pinctrl_select_state(uap->pinctrl, uap->pins_sleep);
+ if (retval)
+ dev_err(port->dev,
+ "could not set pins to sleep state\n");
+ }
+
if (uap->port.dev->platform_data) {
struct amba_pl011_data *plat;
@@ -1792,6 +1813,14 @@ static int __init pl011_console_setup(struct console *co, char *options)
if (!uap)
return -ENODEV;
+ /* Allow pins to be muxed in and configured */
+ if (!IS_ERR(uap->pins_default)) {
+ ret = pinctrl_select_state(uap->pinctrl, uap->pins_default);
+ if (ret)
+ dev_err(uap->port.dev,
+ "could not set default pins\n");
+ }
+
ret = clk_prepare(uap->clk);
if (ret)
return ret;
@@ -1844,7 +1873,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
{
struct uart_amba_port *uap;
struct vendor_data *vendor = id->data;
- struct pinctrl *pinctrl;
void __iomem *base;
int i, ret;
@@ -1869,11 +1897,20 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
goto free;
}
- pinctrl = devm_pinctrl_get_select_default(&dev->dev);
- if (IS_ERR(pinctrl)) {
- ret = PTR_ERR(pinctrl);
+ uap->pinctrl = devm_pinctrl_get(&dev->dev);
+ if (IS_ERR(uap->pinctrl)) {
+ ret = PTR_ERR(uap->pinctrl);
goto unmap;
}
+ uap->pins_default = pinctrl_lookup_state(uap->pinctrl,
+ PINCTRL_STATE_DEFAULT);
+ if (IS_ERR(uap->pins_default))
+ dev_err(&dev->dev, "could not get default pinstate\n");
+
+ uap->pins_sleep = pinctrl_lookup_state(uap->pinctrl,
+ PINCTRL_STATE_SLEEP);
+ if (IS_ERR(uap->pins_sleep))
+ dev_dbg(&dev->dev, "could not get sleep pinstate\n");
uap->clk = clk_get(&dev->dev, NULL);
if (IS_ERR(uap->clk)) {
--
1.7.9.2
^ permalink raw reply related
* Re: [PATCH 1/1] serial_core: Update buffer overrun statistics.
From: Corbin @ 2012-05-23 14:37 UTC (permalink / raw)
To: Jiri Slaby
Cc: Jason Smith, Alan Cox, Corbin Atkinson, Greg Kroah-Hartman,
linux-serial
In-Reply-To: <4FBBF93B.1000206@suse.cz>
On Tue, May 22, 2012 at 3:38 PM, Jiri Slaby <jslaby@suse.cz> wrote:
> That it is perfectly concealed.
>
> (I'm not subscribed to linux-serial and cannot find it anywhere. A link
> would be appreciated...)
Oh, sorry about that. Here is an archived version of the email thread:
http://www.spinics.net/lists/linux-serial/msg06104.html
I'll also copy and paste my patch here:
Currently, serial drivers don't report buffer overruns. When a buffer overrun
occurs, tty_insert_flip_char returns 0, and no attempt is made to insert that
same character again (i.e. it is lost). This patch reports buffer overruns via
the buf_overrun field in the port's icount structure.
Signed-off-by: Corbin Atkinson <corbin.atkinson@xxxxxx>
---
drivers/tty/serial/serial_core.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 9c4c05b..59fb3ba 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2526,14 +2526,16 @@ void uart_insert_char(struct uart_port *port,
unsigned int status,
struct tty_struct *tty = port->state->port.tty;
if ((status & port->ignore_status_mask & ~overrun) == 0)
- tty_insert_flip_char(tty, ch, flag);
+ if (tty_insert_flip_char(tty, ch, flag) == 0)
+ ++port->icount.buf_overrun;
/*
* Overrun is special. Since it's reported immediately,
* it doesn't affect the current character.
*/
if (status & ~port->ignore_status_mask & overrun)
- tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+ if (tty_insert_flip_char(tty, 0, TTY_OVERRUN) == 0)
+ ++port->icount.buf_overrun;
}
EXPORT_SYMBOL_GPL(uart_insert_char);
--
1.7.5.4
^ permalink raw reply related
* Re: [PATCH 1/1] serial_core: Update buffer overrun statistics.
From: Jiri Slaby @ 2012-05-22 20:38 UTC (permalink / raw)
To: Corbin
Cc: Jason Smith, Alan Cox, Corbin Atkinson, Greg Kroah-Hartman,
linux-serial
In-Reply-To: <CAA0x6__sgnqhCXiSR29qnqKhGZrLuOa7siQcBJM7-UnkSn2Jtw@mail.gmail.com>
On 05/22/2012 10:31 PM, Corbin wrote:
> On Mon, May 21, 2012 at 11:05 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>> I was hopng Jiri would chip in.
>
> Jiri,
>
> What do you think of my patch?
That it is perfectly concealed.
(I'm not subscribed to linux-serial and cannot find it anywhere. A link
would be appreciated...)
thanks,
--
js
suse labs
^ permalink raw reply
* Re: [PATCH 1/1] serial_core: Update buffer overrun statistics.
From: Corbin @ 2012-05-22 20:31 UTC (permalink / raw)
To: Jiri Slaby
Cc: Jason Smith, Alan Cox, Corbin Atkinson, Greg Kroah-Hartman,
linux-serial
In-Reply-To: <20120521170553.7822c01c@pyramind.ukuu.org.uk>
On Mon, May 21, 2012 at 11:05 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> I was hopng Jiri would chip in.
Jiri,
What do you think of my patch?
^ permalink raw reply
* [PATCH] mct_u232: Fix incorrect TIOCMSET return
From: Alan Cox @ 2012-05-22 19:45 UTC (permalink / raw)
To: linux-serial-u79uwXL29TY76Z2rM5mHXA,
linux-usb-u79uwXL29TY76Z2rM5mHXA, greg-U8xfFu+wG4EAvxtiuMwx3w
From: Alan Cox <alan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
The low level helper returns 1 on success. The ioctl should however return
0. As this is the only user of the helper return, make the helper return 0 or
an error code.
Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43009
Signed-off-by: Alan Cox <alan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
drivers/usb/serial/mct_u232.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index d0ec1aa..a71fa0a 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -309,13 +309,16 @@ static int mct_u232_set_modem_ctrl(struct usb_serial *serial,
MCT_U232_SET_REQUEST_TYPE,
0, 0, buf, MCT_U232_SET_MODEM_CTRL_SIZE,
WDR_TIMEOUT);
- if (rc < 0)
- dev_err(&serial->dev->dev,
- "Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc);
+ kfree(buf);
+
dbg("set_modem_ctrl: state=0x%x ==> mcr=0x%x", control_state, mcr);
- kfree(buf);
- return rc;
+ if (rc < 0) {
+ dev_err(&serial->dev->dev,
+ "Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc);
+ return rc;
+ }
+ return 0;
} /* mct_u232_set_modem_ctrl */
static int mct_u232_get_modem_stat(struct usb_serial *serial,
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related
* Re: struct tty_flip_buffer replacement in newer kernels
From: Alan Cox @ 2012-05-22 16:27 UTC (permalink / raw)
To: Dmitriy Alekseev; +Cc: linux-serial@vger.kernel.org
In-Reply-To: <1337697508.72614.YahooMailNeo@web44911.mail.sp1.yahoo.com>
On Tue, 22 May 2012 07:38:28 -0700 (PDT)
Dmitriy Alekseev <alexeev6@yahoo.com> wrote:
> This is driver source I found:
> http://www.codeforge.com/read/118181/st16c554_serial.c__html
>
> It was written for quad uart st16c554 for arm chip s3c2410, which I tried to adapt for at91rm9200 board and newer kernel version.
Why not use the in kernel 8250 driver (which will drive a stamdard
16540/550/554 as well ?)
To ressurect one you'll need to add kref handling, rework the termios code
and maybe some other bits too.
Take a look how other arm boards use struct plat_serial8250_port and the
serial8250 platform driver. You should just be able to declare the
structures and register the platform device.
Alan
^ permalink raw reply
* [GIT PATCH] TTY/serial patches for 3.5-rc1 - try 2
From: Greg KH @ 2012-05-22 15:15 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-serial
The following changes since commit 66f75a5d028beaf67c931435fdc3e7823125730c:
Linux 3.4-rc4 (2012-04-21 14:47:52 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/ tags/tty-3.5-rc1
for you to fetch changes up to 59bd234b72fc29887839d792b7d6c7e8d2a577a6:
serial: bfin_uart: Make MMR access compatible with 32 bits bf609 style controller. (2012-05-17 13:25:56 -0700)
----------------------------------------------------------------
TTY pull request for 3.5-rc1
Here's the big TTY/serial driver pull request for the 3.5-rc1 merge window.
Nothing major in here, just lots of incremental changes from Alan and
Jiri reworking some tty core things to behave better and to get a more
solid grasp on some of the nasty tty locking issues.
There are a few tty and serial driver updates in here as well.
All of this has been in the linux-next releases for a while with no problems.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----------------------------------------------------------------
Alan Cox (7):
vt: push the tty_lock down into the map handling
tty_lock: undo the old tty_lock use on the ctty
pty: Lock the devpts bits privately
tty_lock: Localise the lock
tty: drop the pty lock during hangup
tty: Allow uart_register/unregister/register
tty: Fix LED error return
Arnaud Patard (1):
8250_pci: fix pch uart matching
Christian Melki (1):
8250.c: less than 2400 baud fix.
Corbin Atkinson (1):
serial_core: Update buffer overrun statistics.
Dan Carpenter (1):
tty: hvc_xen: NULL dereference on allocation failure
Dan Williams (2):
tegra, serial8250: add ->handle_break() uart_port op
serial/8250_pci: fix suspend/resume vs init/exit quirks
Geert Uytterhoeven (1):
tty/amiserial: Add missing argument for tty_unlock()
Govindraj.R (1):
OMAP2+: UART: Remove cpu checks for populating errata flags
Greg Kroah-Hartman (3):
Merge 3.4-rc3 into tty-next
Merge 3.4-rc4 into tty-next
Revert "serial_core: Update buffer overrun statistics."
H Hartley Sweeten (1):
tty: mxser: local variables should not be exposed globally
Heiko Carstens (1):
tty: add missing tty_port_tty_get() call to raw3215_wakeup
Ivo Sieben (1):
tty: move global ldisc idle waitqueue to the individual ldisc
Jiri Slaby (71):
TTY: crisv10, remove unused tmp_buf
TTY: crisv10, initialize tty_port
TTY: deprecate linux/generic_serial.h
ISDN: i4l, remove cvs crap
TTY: isdn, remove callout
TTY: isdn, remove ISDN_ASYNC_* flags
TTY: isdn, do not play with module refcounts
TTY: isdn, make some functions readable
TTY: isdn, remove unused members from modem_info
TTY: isdn, add tty_port
TTY: isdn, use open/close_wait from tty_port
TTY: isdn, use counts from tty_port
TTY: isdn, use tty from tty_port
TTY: isdn, use xmit_buf from tty_port
TTY: isdn, define local tty_port
TTY: isdn, use tty_port_close_end helper
TTY: isdn, define tty_port_operations
TTY: isdn, use tty_port_block_til_ready helper
TTY: hso, do not set TTY MAGIC
TTY: hso, free tty_driver
TTY: hso, add tty_port
TTY: hso, remove tty NULL checks fro tty->ops
TTY: hso, use tty from tty_port
TTY: con3215, centralize allocation
TTY: sclp_tty, add tty_port
TTY: sclp_vt220, add tty_port
TTY: sclp_vt220, remove unused allocation
TTY: tty3270, move initialization to allocation
TTY: tty3270, get rid of ugly aliasing
TTY: tty3270, push tty down to tty3270_do_write
TTY: tty3270, add tty_port
TTY: bfin_jtag_comm, add tty_port
TTY: bfin_jtag_comm, use tty from tty_port
TTY: HVC, add tty_port
TTY: HVC, use tty from tty_port
TTY: HVC, use count from tty_port
TTY: hvcs, add tty_port
TTY: hvcs, use kref from tty_port
TTY: hvcs, use tty from tty_port
TTY: hvsi, CLOCAL is not in tty->flags
TTY: hvsi, add tty_port
TTY: hvsi, sanitize uses of tty
TTY: hvsi, use tty from tty_port
TTY: ipwireless, use synchronous hangup
TTY: ipwireless, move prints to appropriate places
TTY: ipwireless, add tty_port
TTY: ipwireless, use tty from tty_port
TTY: 68328serial, remove serial_state and friends
TTY: 68328serial, remove unused stuff from m68k_serial
TTY: 68328serial, remove garbage
TTY: 68328serial, use ulong flags for interrupts status
TTY: 68328serial, remove 68328serial.h
TTY: 68328serial, add tty_port
TTY: 68328serial, use open/close_wait from tty_port
TTY: 68328serial, use close_delay/closing_wait from tty_port
TTY: 68328serial, use flags from tty_port
TTY: 68328serial, propagate tty
TTY: 68328serial, use tty from tty_port
TTY: 68328serial, use tty_port_block_til_ready
TTY: usb/u_serial, add tty_port
TTY: usb/u_serial, use tty from tty_port
TTY: usb/u_serial use close_wait from tty_port
TTY: rfcomm/tty, add tty_port
TTY: rfcomm/tty, use tty_port refcounting
TTY: rfcomm/tty, remove work for tty_wakeup
TTY: rfcomm/tty, use count from tty_port
ISDN: remove uses of isdn_tty_revision
TTY: hvc, fix TTY refcounting
TTY: con3215, add tty_port
TTY: con3215, use tty from tty_port
TTY: n_tty, do not dereference user buffer
Lothar Waßmann (1):
Add missing call to uart_update_timeout()
Magnus Damm (8):
serial8250: Add dl_read()/dl_write() callbacks
serial8250: Use dl_read()/dl_write() on Alchemy
serial8250: Use dl_read()/dl_write() on RM9K
serial8250: Clean up default map and dl code
serial8250: Introduce serial8250_register_8250_port()
serial8250-em: Emma Mobile UART driver V2
serial8250-em: clk_get() IS_ERR() error handling fix
serial8250-em: Add DT support
Michael Gehring (1):
tty/vt: handle bad user buffer in {G,P}IO_CMAP ioctl
Paul Gortmaker (1):
cris: fix missing tty arg in wait_event_interruptible_tty call
Rajanikanth H.V (1):
serial: pl011: implement workaround for CTS clear event issue
Sonic Zhang (4):
serial: bfin_uart: Adapt bf5xx serial driver to bf60x serial4 controller.
serial: bfin_uart: narrow the reboot condition in DMA tx interrupt
serial: bfin_uart: RTS and CTS MMRs can be either 16-bit width or 32-bit width.
serial: bfin_uart: Make MMR access compatible with 32 bits bf609 style controller.
Sudhakar Mamillapalli (1):
serial/8250_pci: Clear FIFOs for Intel ME Serial Over Lan device on BI
Tomoya MORINAGA (7):
pch_uart: Delete unused structure member
pch_uart: change type to u8
pch_uart: change type to %d to %02x
pch_uart: Support modem status interrupt
pch_uart: delete unused data structure
pch_uart: Fix return value issue
pch_uart: Fix duplicate memory release issue
Xiaobing Tu (1):
tty: hold lock across tty buffer finding and buffer filling
arch/arm/mach-omap2/serial.c | 8 -
arch/arm/mach-tegra/board-harmony.c | 2 +
arch/arm/mach-tegra/board-paz00.c | 3 +
arch/arm/mach-tegra/board-seaboard.c | 2 +
arch/arm/mach-tegra/board-trimslice.c | 2 +
arch/arm/plat-omap/include/plat/omap-serial.h | 1 -
drivers/isdn/i4l/isdn_common.c | 5 -
drivers/isdn/i4l/isdn_tty.c | 466 ++++++++++---------------
drivers/net/usb/hso.c | 105 +++---
drivers/s390/char/con3215.c | 142 ++++----
drivers/s390/char/keyboard.c | 30 +-
drivers/s390/char/keyboard.h | 14 +-
drivers/s390/char/sclp_tty.c | 33 +-
drivers/s390/char/sclp_vt220.c | 33 +-
drivers/s390/char/tty3270.c | 121 +++----
drivers/staging/serial/68360serial.c | 4 +-
drivers/tty/amiserial.c | 14 +-
drivers/tty/bfin_jtag_comm.c | 44 +--
drivers/tty/cyclades.c | 2 +-
drivers/tty/hvc/hvc_console.c | 96 +++--
drivers/tty/hvc/hvc_console.h | 4 +-
drivers/tty/hvc/hvc_xen.c | 4 +-
drivers/tty/hvc/hvcs.c | 74 ++--
drivers/tty/hvc/hvsi.c | 128 +++----
drivers/tty/hvc/hvsi_lib.c | 2 +-
drivers/tty/ipwireless/tty.c | 81 ++---
drivers/tty/mxser.c | 2 +-
drivers/tty/n_r3964.c | 11 +-
drivers/tty/n_tty.c | 9 +-
drivers/tty/pty.c | 40 ++-
drivers/tty/serial/68328serial.c | 383 ++++++++------------
drivers/tty/serial/68328serial.h | 186 ----------
drivers/tty/serial/8250/8250.c | 312 ++++++++---------
drivers/tty/serial/8250/8250.h | 16 +
drivers/tty/serial/8250/8250_em.c | 186 ++++++++++
drivers/tty/serial/8250/8250_pci.c | 63 ++++
drivers/tty/serial/8250/Kconfig | 8 +
drivers/tty/serial/8250/Makefile | 1 +
drivers/tty/serial/amba-pl011.c | 109 +-----
drivers/tty/serial/bfin_uart.c | 74 ++--
drivers/tty/serial/crisv10.c | 36 +-
drivers/tty/serial/mxs-auart.c | 2 +
drivers/tty/serial/of_serial.c | 26 ++
drivers/tty/serial/omap-serial.c | 74 +++-
drivers/tty/serial/pch_uart.c | 53 +--
drivers/tty/serial/serial_core.c | 1 +
drivers/tty/synclink.c | 4 +-
drivers/tty/synclink_gt.c | 4 +-
drivers/tty/synclinkmp.c | 4 +-
drivers/tty/tty_buffer.c | 85 +++--
drivers/tty/tty_io.c | 76 ++--
drivers/tty/tty_ldisc.c | 37 +-
drivers/tty/tty_mutex.c | 60 +++-
drivers/tty/tty_port.c | 6 +-
drivers/tty/vt/consolemap.c | 123 +++++--
drivers/tty/vt/keyboard.c | 2 +-
drivers/tty/vt/vt.c | 68 ++--
drivers/tty/vt/vt_ioctl.c | 25 +-
drivers/usb/gadget/u_serial.c | 51 ++-
include/linux/generic_serial.h | 64 +---
include/linux/isdn.h | 26 +-
include/linux/of_serial.h | 17 +
include/linux/serial_8250.h | 2 +
include/linux/serial_core.h | 5 +
include/linux/tty.h | 23 +-
include/linux/tty_ldisc.h | 2 +
include/linux/vt_kern.h | 1 -
net/bluetooth/rfcomm/tty.c | 137 ++++----
68 files changed, 1877 insertions(+), 1957 deletions(-)
delete mode 100644 drivers/tty/serial/68328serial.h
create mode 100644 drivers/tty/serial/8250/8250_em.c
create mode 100644 include/linux/of_serial.h
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: struct tty_flip_buffer replacement in newer kernels
From: Jack Stone @ 2012-05-22 14:44 UTC (permalink / raw)
To: Alan Cox; +Cc: gregkh, alan, linux-serial, Linux Kernel, deathonfuneral
In-Reply-To: <20120522151033.33ef577a@pyramind.ukuu.org.uk>
[Re-adding original poster an LKML after I accidentally dropped them.
Sorry about that]
On 05/22/2012 03:10 PM, Alan Cox wrote:
>> I'm newbie, working under existed serial driver, adapting it for 2.6.32.
>> During the compilation I have had several problems, which I
>> succesfully solved except this one:
>> error: 'struct tty_struct' has no member named 'flip'
>> In particular, cound you advice correct replacement of "tty->flip.count"
>
> Your driver shouldn't be looking in those areas. There isn't a correct
> replacement. You will need to update it to use the flip buffers properly
> not poke its nose in places it shouldn't have.
>
> Perhaps the best thing would be to post a link to the driver ?
>
> Alan
^ permalink raw reply
* Re: struct tty_flip_buffer replacement in newer kernels
From: Dmitriy Alekseev @ 2012-05-22 14:38 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-serial@vger.kernel.org
In-Reply-To: <20120522151033.33ef577a@pyramind.ukuu.org.uk>
This is driver source I found:
http://www.codeforge.com/read/118181/st16c554_serial.c__html
It was written for quad uart st16c554 for arm chip s3c2410, which I tried to adapt for at91rm9200 board and newer kernel version.
Best regards,
Dmitriy Alekseev
----- Original Message -----
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Jack Stone <jwjstone@fastmail.fm>
Cc: gregkh@linuxfoundation.org; alan@linux.intel.com; linux-serial@vger.kernel.org
Sent: Tuesday, May 22, 2012 6:10 PM
Subject: Re: struct tty_flip_buffer replacement in newer kernels
> I'm newbie, working under existed serial driver, adapting it for 2.6.32.
> During the compilation I have had several problems, which I
> succesfully solved except this one:
> error: 'struct tty_struct' has no member named 'flip'
> In particular, cound you advice correct replacement of "tty->flip.count"
Your driver shouldn't be looking in those areas. There isn't a correct
replacement. You will need to update it to use the flip buffers properly
not poke its nose in places it shouldn't have.
Perhaps the best thing would be to post a link to the driver ?
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: struct tty_flip_buffer replacement in newer kernels
From: Alan Cox @ 2012-05-22 14:10 UTC (permalink / raw)
To: Jack Stone; +Cc: gregkh, alan, linux-serial
In-Reply-To: <4FBB8742.7050504@fastmail.fm>
> I'm newbie, working under existed serial driver, adapting it for 2.6.32.
> During the compilation I have had several problems, which I
> succesfully solved except this one:
> error: 'struct tty_struct' has no member named 'flip'
> In particular, cound you advice correct replacement of "tty->flip.count"
Your driver shouldn't be looking in those areas. There isn't a correct
replacement. You will need to update it to use the flip buffers properly
not poke its nose in places it shouldn't have.
Perhaps the best thing would be to post a link to the driver ?
Alan
^ permalink raw reply
* [GIT PATCH] TTY/serial patches for 3.5-rc1
From: Greg KH @ 2012-05-22 13:20 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-serial
The following changes since commit d48b97b403d23f6df0b990cee652bdf9a52337a3:
Linux 3.4-rc6 (2012-05-06 15:07:32 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/ tags/tty-3.5-rc1
for you to fetch changes up to d48b97b403d23f6df0b990cee652bdf9a52337a3:
Linux 3.4-rc6 (2012-05-06 15:07:32 -0700)
----------------------------------------------------------------
TTY pull request for 3.5-rc1
Here's the big TTY/serial driver pull request for the 3.5-rc1 merge window.
Nothing major in here, just lots of incremental changes from Alan and
Jiri reworking some tty core things to behave better and to get a more
solid grasp on some of the nasty tty locking issues.
There are a few tty and serial driver updates in here as well.
All of this has been in the linux-next releases for a while with no problems.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----------------------------------------------------------------
Documentation/ABI/testing/sysfs-bus-hsi | 19 -
.../ata/{ahci-platform.txt => calxeda-sata.txt} | 5 +-
.../devicetree/bindings/sound/sgtl5000.txt | 2 -
Documentation/networking/ip-sysctl.txt | 4 +-
Documentation/power/freezing-of-tasks.txt | 37 +-
Documentation/security/keys.txt | 14 +-
MAINTAINERS | 12 +-
Makefile | 2 +-
arch/alpha/Kconfig | 2 +-
arch/alpha/include/asm/rtc.h | 8 +-
arch/alpha/kernel/core_tsunami.c | 1 -
arch/alpha/kernel/sys_marvel.c | 2 +-
arch/arm/Kconfig | 9 -
arch/arm/boot/dts/msm8660-surf.dts | 4 +-
arch/arm/boot/dts/versatile-ab.dts | 2 +-
arch/arm/boot/dts/versatile-pb.dts | 2 +-
arch/arm/configs/mini2440_defconfig | 2 -
arch/arm/include/asm/thread_info.h | 7 -
arch/arm/include/asm/tls.h | 4 -
arch/arm/kernel/irq.c | 6 +-
arch/arm/kernel/signal.c | 55 ++-
arch/arm/kernel/smp.c | 28 +-
arch/arm/kernel/smp_twd.c | 6 +-
arch/arm/mach-exynos/clock-exynos4.c | 24 +-
arch/arm/mach-exynos/clock-exynos5.c | 24 +-
arch/arm/mach-exynos/common.c | 14 +-
arch/arm/mach-exynos/dev-dwmci.c | 13 +-
arch/arm/mach-exynos/mach-nuri.c | 1 -
arch/arm/mach-exynos/mach-universal_c210.c | 1 -
arch/arm/mach-msm/board-msm8x60.c | 25 +-
arch/arm/mach-omap2/serial.c | 8 -
arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h | 7 -
arch/arm/mach-pxa/mfp-pxa2xx.c | 21 +-
arch/arm/mach-pxa/pxa27x.c | 6 +-
arch/arm/mach-s3c24xx/Kconfig | 8 +-
arch/arm/mach-s5pv210/mach-goni.c | 2 -
arch/arm/mach-sa1100/generic.c | 2 +-
arch/arm/mach-tegra/board-harmony.c | 2 +
arch/arm/mach-tegra/board-paz00.c | 3 +
arch/arm/mach-tegra/board-seaboard.c | 2 +
arch/arm/mach-tegra/board-trimslice.c | 2 +
arch/arm/mach-u300/core.c | 6 +-
arch/arm/mach-u300/i2c.c | 9 +-
arch/arm/mach-u300/include/mach/irqs.h | 150 +++----
arch/arm/mach-ux500/mbox-db5500.c | 2 +-
arch/arm/mm/abort-ev6.S | 17 +-
arch/arm/mm/cache-l2x0.c | 25 +-
arch/arm/mm/init.c | 4 +-
arch/arm/mm/mmu.c | 4 +-
arch/arm/plat-omap/dma.c | 14 -
arch/arm/plat-omap/include/plat/omap-serial.h | 1 -
arch/arm/plat-samsung/include/plat/sdhci.h | 28 --
arch/arm/vfp/vfpmodule.c | 99 -----
arch/blackfin/mach-bf538/boards/ezkit.c | 53 +--
arch/hexagon/kernel/dma.c | 1 -
arch/hexagon/kernel/process.c | 6 +-
arch/hexagon/kernel/ptrace.c | 1 -
arch/hexagon/kernel/smp.c | 8 +-
arch/hexagon/kernel/time.c | 1 -
arch/hexagon/kernel/vdso.c | 1 -
arch/mips/ath79/dev-wmac.c | 2 +-
arch/mips/include/asm/mach-jz4740/irq.h | 2 +-
arch/mips/include/asm/mmu_context.h | 6 +
arch/mips/kernel/signal.c | 27 +-
arch/mips/kernel/signal32.c | 20 +-
arch/mips/kernel/signal_n32.c | 10 +-
arch/parisc/kernel/pdc_cons.c | 2 +-
arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi | 43 --
arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi | 10 -
arch/powerpc/include/asm/irq.h | 4 +
arch/powerpc/include/asm/mpic.h | 18 +
arch/powerpc/include/asm/mpic_msgr.h | 1 -
arch/powerpc/include/asm/reg_booke.h | 5 +
arch/powerpc/kernel/irq.c | 6 +-
arch/powerpc/kernel/machine_kexec.c | 7 +-
arch/powerpc/kernel/setup_32.c | 3 -
arch/powerpc/net/bpf_jit.h | 8 +-
arch/powerpc/net/bpf_jit_64.S | 108 +----
arch/powerpc/net/bpf_jit_comp.c | 26 +-
arch/powerpc/platforms/85xx/common.c | 6 -
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 11 +-
arch/powerpc/platforms/85xx/p1022_ds.c | 13 +-
arch/powerpc/platforms/cell/axon_msi.c | 8 +-
arch/powerpc/platforms/cell/beat_interrupt.c | 2 +-
arch/powerpc/platforms/powermac/low_i2c.c | 9 -
arch/powerpc/platforms/powermac/pic.c | 6 +-
arch/powerpc/platforms/pseries/Kconfig | 4 +-
arch/powerpc/platforms/pseries/eeh.c | 2 +-
arch/powerpc/sysdev/cpm2_pic.c | 3 +-
arch/powerpc/sysdev/mpc8xx_pic.c | 61 ++-
arch/powerpc/sysdev/mpic.c | 54 +--
arch/powerpc/sysdev/mpic_msgr.c | 12 +-
arch/powerpc/sysdev/scom.c | 1 -
arch/powerpc/sysdev/xics/xics-common.c | 7 +-
arch/sh/include/asm/atomic.h | 2 +-
arch/sh/mm/fault_32.c | 2 +-
arch/tile/include/asm/pci.h | 4 +-
arch/tile/kernel/pci.c | 4 +-
arch/x86/Kconfig | 2 +-
arch/x86/boot/compressed/head_32.S | 14 +-
arch/x86/boot/compressed/head_64.S | 22 +-
arch/x86/boot/compressed/relocs.c | 2 +
arch/x86/boot/tools/build.c | 15 +-
arch/x86/ia32/ia32_aout.c | 3 +-
arch/x86/include/asm/posix_types.h | 6 +-
arch/x86/include/asm/sigcontext.h | 2 +-
arch/x86/include/asm/siginfo.h | 8 +-
arch/x86/include/asm/unistd.h | 6 +-
arch/x86/include/asm/word-at-a-time.h | 33 --
arch/x86/include/asm/x86_init.h | 1 +
arch/x86/kernel/acpi/sleep.c | 4 -
arch/x86/kernel/acpi/sleep.h | 4 -
arch/x86/kernel/acpi/wakeup_32.S | 4 +-
arch/x86/kernel/acpi/wakeup_64.S | 4 +-
arch/x86/kernel/apic/apic.c | 34 +-
arch/x86/kernel/apic/apic_numachip.c | 7 +-
arch/x86/kernel/apic/x2apic_phys.c | 6 -
arch/x86/kernel/cpu/amd.c | 29 +-
arch/x86/kernel/cpu/common.c | 9 +
arch/x86/kernel/cpu/intel_cacheinfo.c | 8 +-
arch/x86/kernel/i387.c | 1 -
arch/x86/kernel/microcode_amd.c | 12 +-
arch/x86/kernel/microcode_core.c | 10 +-
arch/x86/kernel/x86_init.c | 1 +
arch/x86/platform/geode/net5501.c | 2 +-
arch/x86/platform/mrst/mrst.c | 4 +-
arch/x86/xen/enlighten.c | 4 +-
arch/x86/xen/smp.c | 15 -
arch/x86/xen/xen-asm.S | 2 +-
arch/xtensa/include/asm/hardirq.h | 3 +
arch/xtensa/include/asm/io.h | 1 -
arch/xtensa/kernel/signal.c | 1 -
drivers/acpi/power.c | 2 +-
drivers/acpi/scan.c | 17 +-
drivers/acpi/sleep.c | 52 +--
drivers/ata/ahci.c | 2 -
drivers/ata/ahci_platform.c | 1 -
drivers/ata/libata-core.c | 2 +-
drivers/ata/libata-eh.c | 3 +-
drivers/ata/libata-scsi.c | 38 +-
drivers/ata/pata_arasan_cf.c | 4 +-
drivers/bcma/sprom.c | 7 +-
drivers/bluetooth/ath3k.c | 4 -
drivers/bluetooth/btusb.c | 6 -
drivers/dma/amba-pl08x.c | 1 -
drivers/dma/at_hdmac.c | 4 +
drivers/dma/imx-dma.c | 9 +-
drivers/dma/mxs-dma.c | 10 +-
drivers/dma/pl330.c | 25 +-
drivers/dma/ste_dma40.c | 323 +++++---------
drivers/dma/ste_dma40_ll.h | 2 +
drivers/firmware/efivars.c | 196 --------
drivers/gpio/gpio-pxa.c | 21 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 30 +-
drivers/gpu/drm/i915/i915_debugfs.c | 3 -
drivers/gpu/drm/i915/i915_dma.c | 15 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 8 +-
drivers/gpu/drm/i915/i915_reg.h | 1 -
drivers/gpu/drm/i915/intel_crt.c | 29 +-
drivers/gpu/drm/i915/intel_display.c | 9 +-
drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
drivers/gpu/drm/i915/intel_lvds.c | 4 +-
drivers/gpu/drm/i915/intel_ringbuffer.c | 8 -
drivers/gpu/drm/i915/intel_sdvo.c | 34 +-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_bios.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_hdmi.c | 4 +-
drivers/gpu/drm/nouveau/nv10_gpio.c | 2 +-
drivers/gpu/drm/nouveau/nvc0_fb.c | 5 -
drivers/gpu/drm/radeon/atombios_crtc.c | 7 +-
drivers/gpu/drm/radeon/radeon_device.c | 4 +-
drivers/gpu/drm/radeon/radeon_display.c | 3 +-
drivers/hsi/clients/hsi_char.c | 2 +-
drivers/hsi/hsi.c | 223 +++++-----
drivers/hwmon/ad7314.c | 12 +-
drivers/hwmon/coretemp.c | 6 +-
drivers/hwmon/fam15h_power.c | 9 +-
drivers/i2c/busses/i2c-eg20t.c | 4 +-
drivers/i2c/busses/i2c-mxs.c | 8 +-
drivers/i2c/busses/i2c-pnx.c | 3 +-
drivers/i2c/busses/i2c-tegra.c | 8 -
drivers/infiniband/core/mad.c | 8 +-
drivers/infiniband/hw/mlx4/main.c | 2 +-
drivers/input/mouse/synaptics.c | 3 +-
drivers/isdn/i4l/isdn_common.c | 5 -
drivers/isdn/i4l/isdn_tty.c | 466 ++++++++------------
drivers/md/bitmap.c | 3 +-
drivers/md/bitmap.h | 3 +
drivers/md/dm-raid.c | 4 +-
drivers/md/md.c | 7 +-
drivers/mfd/omap-usb-host.c | 1 -
drivers/mmc/host/mxs-mmc.c | 3 -
drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 1 -
drivers/net/arcnet/arc-rimi.c | 8 +-
drivers/net/caif/caif_hsi.c | 9 +-
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 2 -
drivers/net/dummy.c | 6 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 12 +-
drivers/net/ethernet/atheros/atlx/atl1.h | 3 +-
drivers/net/ethernet/atheros/atlx/atlx.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 12 +-
drivers/net/ethernet/broadcom/tg3.c | 18 +-
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 92 ++--
drivers/net/ethernet/dlink/dl2k.c | 52 ++-
drivers/net/ethernet/dlink/dl2k.h | 7 +
drivers/net/ethernet/freescale/ucc_geth.c | 6 +-
drivers/net/ethernet/freescale/ucc_geth.h | 2 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 60 ++-
drivers/net/ethernet/ibm/ehea/ehea_phyp.h | 2 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 15 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 2 +-
drivers/net/ethernet/intel/e1000e/param.c | 99 ++---
drivers/net/ethernet/intel/igbvf/netdev.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 1 -
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 10 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 29 +-
drivers/net/ethernet/marvell/sky2.c | 31 +-
drivers/net/ethernet/marvell/sky2.h | 1 +
drivers/net/ethernet/micrel/ks8851.c | 21 +-
drivers/net/ethernet/micrel/ks8851_mll.c | 2 +-
drivers/net/ethernet/micrel/ksz884x.c | 2 +-
drivers/net/ethernet/realtek/8139cp.c | 10 +-
drivers/net/ethernet/smsc/smsc911x.c | 17 +-
drivers/net/ethernet/sun/sungem.c | 2 +-
drivers/net/ethernet/ti/davinci_emac.c | 2 +-
drivers/net/ethernet/ti/davinci_mdio.c | 5 -
drivers/net/ethernet/ti/tlan.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 4 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 6 +-
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 6 +-
drivers/net/hyperv/netvsc_drv.c | 38 +-
drivers/net/phy/icplus.c | 12 +-
drivers/net/ppp/ppp_generic.c | 15 +-
drivers/net/usb/asix.c | 4 +-
drivers/net/usb/hso.c | 105 ++---
drivers/net/usb/qmi_wwan.c | 30 --
drivers/net/usb/smsc75xx.c | 36 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/usb/usbnet.c | 5 +-
drivers/net/virtio_net.c | 5 +-
drivers/net/wan/farsync.c | 1 -
drivers/net/wireless/ath/ath5k/ahb.c | 8 +-
drivers/net/wireless/ath/ath9k/ar5008_phy.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_phy.c | 2 +-
drivers/net/wireless/ath/ath9k/eeprom_9287.c | 2 -
drivers/net/wireless/ath/ath9k/hw.c | 9 +-
drivers/net/wireless/ath/ath9k/hw.h | 3 +-
drivers/net/wireless/ath/ath9k/main.c | 9 +-
drivers/net/wireless/ath/ath9k/xmit.c | 10 +-
drivers/net/wireless/b43/main.c | 10 +-
.../net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c | 8 +-
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 63 +--
drivers/net/wireless/brcm80211/brcmsmac/main.c | 11 +-
drivers/net/wireless/ipw2x00/ipw2200.c | 13 +-
drivers/net/wireless/iwlwifi/iwl-1000.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-2000.c | 16 +-
drivers/net/wireless/iwlwifi/iwl-5000.c | 11 +-
drivers/net/wireless/iwlwifi/iwl-6000.c | 10 +-
drivers/net/wireless/iwlwifi/iwl-agn.c | 3 +
drivers/net/wireless/iwlwifi/iwl-fh.h | 24 +-
drivers/net/wireless/iwlwifi/iwl-mac80211.c | 10 +-
drivers/net/wireless/iwlwifi/iwl-prph.h | 27 +-
drivers/net/wireless/libertas/cfg.c | 9 +-
drivers/net/wireless/mwifiex/pcie.h | 18 +-
drivers/net/wireless/rtlwifi/pci.c | 1 -
drivers/net/wireless/wl1251/main.c | 1 -
drivers/net/wireless/wl1251/sdio.c | 2 +-
drivers/pci/Makefile | 1 -
drivers/pci/pci-acpi.c | 4 +-
drivers/platform/x86/acerhdf.c | 67 +--
drivers/platform/x86/dell-laptop.c | 1 -
drivers/platform/x86/intel_ips.c | 2 +-
drivers/platform/x86/intel_mid_powerbtn.c | 2 +-
drivers/rtc/rtc-ds1307.c | 1 -
drivers/rtc/rtc-mpc5121.c | 3 +-
drivers/s390/char/con3215.c | 142 +++---
drivers/s390/char/keyboard.c | 30 +-
drivers/s390/char/keyboard.h | 14 +-
drivers/s390/char/sclp_tty.c | 33 +-
drivers/s390/char/sclp_vt220.c | 33 +-
drivers/s390/char/tty3270.c | 121 +++--
drivers/s390/net/qeth_core_main.c | 6 +-
drivers/scsi/ipr.c | 6 +-
drivers/scsi/libfc/fc_lport.c | 12 +-
drivers/scsi/libsas/sas_ata.c | 33 +-
drivers/scsi/libsas/sas_discover.c | 61 ++-
drivers/scsi/libsas/sas_event.c | 24 +-
drivers/scsi/libsas/sas_expander.c | 56 +--
drivers/scsi/libsas/sas_init.c | 11 +-
drivers/scsi/libsas/sas_internal.h | 6 +-
drivers/scsi/libsas/sas_phy.c | 21 +-
drivers/scsi/libsas/sas_port.c | 17 +-
drivers/scsi/scsi_lib.c | 2 +-
drivers/spi/Kconfig | 2 +-
drivers/spi/Makefile | 2 +-
drivers/spi/spi-bcm63xx.c | 163 +++----
drivers/spi/spi-bfin-sport.c | 21 +-
drivers/spi/spi-bfin5xx.c | 14 +-
drivers/spi/spi-ep93xx.c | 24 +-
drivers/spi/spi-pl022.c | 58 +--
drivers/staging/octeon/ethernet-rx.c | 1 -
drivers/staging/octeon/ethernet-tx.c | 1 -
drivers/staging/octeon/ethernet.c | 1 -
drivers/staging/ozwpan/ozpd.c | 2 +
drivers/staging/serial/68360serial.c | 4 +-
drivers/staging/tidspbridge/core/tiomap3430.c | 20 +-
drivers/staging/tidspbridge/core/wdt.c | 8 +-
drivers/staging/zcache/Kconfig | 2 +-
drivers/tty/amiserial.c | 14 +-
drivers/tty/bfin_jtag_comm.c | 44 +-
drivers/tty/cyclades.c | 2 +-
drivers/tty/hvc/hvc_console.c | 96 ++--
drivers/tty/hvc/hvc_console.h | 4 +-
drivers/tty/hvc/hvc_xen.c | 4 +-
drivers/tty/hvc/hvcs.c | 74 ++--
drivers/tty/hvc/hvsi.c | 128 +++---
drivers/tty/hvc/hvsi_lib.c | 2 +-
drivers/tty/ipwireless/tty.c | 81 ++--
drivers/tty/mxser.c | 2 +-
drivers/tty/n_r3964.c | 11 +-
drivers/tty/n_tty.c | 9 +-
drivers/tty/pty.c | 40 +-
drivers/tty/serial/68328serial.c | 383 +++++++---------
drivers/tty/serial/68328serial.h | 186 --------
drivers/tty/serial/8250/8250.c | 312 +++++++------
drivers/tty/serial/8250/8250.h | 16 +
drivers/tty/serial/8250/8250_em.c | 186 ++++++++
drivers/tty/serial/8250/8250_pci.c | 63 +++
drivers/tty/serial/8250/Kconfig | 8 +
drivers/tty/serial/8250/Makefile | 1 +
drivers/tty/serial/amba-pl011.c | 109 +----
drivers/tty/serial/bfin_uart.c | 74 ++--
drivers/tty/serial/crisv10.c | 36 +-
drivers/tty/serial/mxs-auart.c | 2 +
drivers/tty/serial/of_serial.c | 26 ++
drivers/tty/serial/omap-serial.c | 74 +++-
drivers/tty/serial/pch_uart.c | 53 ++-
drivers/tty/serial/pmac_zilog.c | 6 +-
drivers/tty/serial/serial_core.c | 1 +
drivers/tty/synclink.c | 4 +-
drivers/tty/synclink_gt.c | 4 +-
drivers/tty/synclinkmp.c | 4 +-
drivers/tty/tty_buffer.c | 85 +++-
drivers/tty/tty_io.c | 76 ++--
drivers/tty/tty_ldisc.c | 37 +-
drivers/tty/tty_mutex.c | 60 ++-
drivers/tty/tty_port.c | 6 +-
drivers/tty/vt/consolemap.c | 123 ++++--
drivers/tty/vt/keyboard.c | 28 +-
drivers/tty/vt/vt.c | 68 ++-
drivers/tty/vt/vt_ioctl.c | 25 +-
drivers/usb/class/cdc-wdm.c | 7 +-
drivers/usb/core/hcd-pci.c | 9 -
drivers/usb/gadget/dummy_hcd.c | 1 +
drivers/usb/gadget/f_mass_storage.c | 2 +-
drivers/usb/gadget/file_storage.c | 2 +-
drivers/usb/gadget/u_serial.c | 51 +--
drivers/usb/gadget/udc-core.c | 4 +-
drivers/usb/gadget/uvc.h | 2 +-
drivers/usb/gadget/uvc_v4l2.c | 2 +-
drivers/usb/host/ehci-pci.c | 8 -
drivers/usb/host/ehci-tegra.c | 376 ++++++++--------
drivers/usb/musb/davinci.c | 3 +-
drivers/usb/musb/musb_core.h | 2 +-
drivers/usb/otg/gpio_vbus.c | 15 +-
drivers/vhost/net.c | 2 +-
drivers/vhost/vhost.c | 5 +-
drivers/vhost/vhost.h | 2 +-
drivers/video/bfin-lq035q1-fb.c | 1 -
drivers/watchdog/hpwdt.c | 6 +-
drivers/xen/events.c | 2 +-
drivers/xen/xen-acpi-processor.c | 5 +-
fs/autofs4/autofs_i.h | 12 +-
fs/autofs4/dev-ioctl.c | 3 +-
fs/autofs4/inode.c | 4 +-
fs/autofs4/waitq.c | 22 +-
fs/btrfs/backref.c | 27 +-
fs/btrfs/ctree.c | 28 +-
fs/btrfs/ctree.h | 2 +-
fs/btrfs/disk-io.c | 40 +-
fs/btrfs/disk-io.h | 3 +-
fs/btrfs/extent-tree.c | 17 +-
fs/btrfs/extent_io.c | 60 +--
fs/btrfs/extent_io.h | 4 +-
fs/btrfs/file.c | 9 +-
fs/btrfs/inode.c | 54 ++-
fs/btrfs/ioctl.c | 5 +-
fs/btrfs/ioctl.h | 4 +-
fs/btrfs/reada.c | 48 +-
fs/btrfs/relocation.c | 4 +-
fs/btrfs/scrub.c | 22 +-
fs/btrfs/super.c | 7 +-
fs/btrfs/transaction.c | 6 +-
fs/btrfs/tree-log.c | 2 +-
fs/btrfs/volumes.c | 13 +-
fs/buffer.c | 1 +
fs/cifs/cifsfs.c | 14 +-
fs/cifs/cifsfs.h | 2 +-
fs/cifs/cifssmb.c | 6 +-
fs/cifs/connect.c | 33 +-
fs/cifs/dir.c | 17 +-
fs/cifs/file.c | 3 +-
fs/dcache.c | 26 +-
fs/dlm/lock.c | 12 -
fs/eventpoll.c | 4 +-
fs/ext4/super.c | 2 -
fs/gfs2/lock_dlm.c | 10 +-
fs/hfsplus/catalog.c | 4 -
fs/hfsplus/dir.c | 11 -
fs/hugetlbfs/inode.c | 1 -
fs/jbd2/commit.c | 4 +-
fs/namei.c | 4 +-
fs/nfs/blocklayout/blocklayout.c | 4 +-
fs/nfs/client.c | 5 +-
fs/nfs/dir.c | 4 +-
fs/nfs/idmap.c | 4 -
fs/nfs/internal.h | 8 +-
fs/nfs/namespace.c | 93 ++--
fs/nfs/nfs4_fs.h | 11 +-
fs/nfs/nfs4filelayoutdev.c | 2 +-
fs/nfs/nfs4namespace.c | 86 +---
fs/nfs/nfs4proc.c | 186 ++------
fs/nfs/nfs4state.c | 31 +-
fs/nfs/nfs4xdr.c | 53 +--
fs/nfs/objlayout/objlayout.c | 2 +
fs/nfs/pnfs.c | 2 +-
fs/nfs/read.c | 2 +-
fs/nfs/super.c | 12 +-
fs/nfs/write.c | 5 +-
fs/nfsd/nfs4recover.c | 2 +-
fs/pipe.c | 31 +-
fs/proc/task_mmu.c | 3 +
include/acpi/actypes.h | 7 +-
include/asm-generic/siginfo.h | 14 +-
include/asm-generic/statfs.h | 2 +-
include/linux/efi.h | 13 +-
include/linux/generic_serial.h | 64 +--
include/linux/gpio-pxa.h | 4 -
include/linux/hsi/hsi.h | 31 +-
include/linux/irq.h | 7 -
include/linux/isdn.h | 26 +-
include/linux/libata.h | 3 +-
include/linux/netfilter_bridge.h | 9 -
include/linux/nfs_xdr.h | 7 +-
include/linux/of_serial.h | 17 +
include/linux/pipe_fs_i.h | 1 -
include/linux/seqlock.h | 23 +-
include/linux/serial_8250.h | 2 +
include/linux/serial_core.h | 5 +
include/linux/skbuff.h | 11 +-
include/linux/spi/spi.h | 2 +-
include/linux/tty.h | 23 +-
include/linux/tty_ldisc.h | 2 +
include/linux/usb/hcd.h | 2 -
include/linux/vm_event_item.h | 5 +-
include/linux/vt_kern.h | 1 -
include/net/bluetooth/hci_core.h | 3 +-
include/net/dst.h | 7 +-
include/net/ip6_fib.h | 48 --
include/net/ip_vs.h | 4 +-
include/net/red.h | 6 +-
include/net/sock.h | 5 +-
include/scsi/libsas.h | 40 +-
include/scsi/sas_ata.h | 4 +-
init/do_mounts.c | 2 +-
init/main.c | 25 +-
kernel/events/core.c | 2 +-
kernel/irq/debug.h | 38 +-
kernel/power/swap.c | 28 +-
kernel/rcutree.c | 1 +
kernel/sched/core.c | 22 +-
kernel/sched/fair.c | 18 +-
kernel/sched/features.h | 1 -
kernel/time/tick-broadcast.c | 13 +-
kernel/trace/trace.c | 8 +-
kernel/trace/trace.h | 4 +-
kernel/trace/trace_output.c | 5 -
mm/hugetlb.c | 2 +-
mm/memcontrol.c | 17 +-
mm/mempolicy.c | 11 +-
mm/migrate.c | 16 +-
mm/nobootmem.c | 10 +-
mm/swap_state.c | 2 +-
mm/vmscan.c | 11 +-
mm/vmstat.c | 4 +-
net/ax25/af_ax25.c | 9 +-
net/bluetooth/hci_core.c | 27 +-
net/bluetooth/hci_event.c | 3 -
net/bluetooth/mgmt.c | 2 +-
net/bluetooth/rfcomm/tty.c | 137 +++---
net/bridge/br_forward.c | 1 -
net/bridge/br_netfilter.c | 8 +-
net/caif/chnl_net.c | 9 +-
net/core/dev.c | 20 -
net/core/drop_monitor.c | 89 +---
net/core/net_namespace.c | 33 +-
net/ieee802154/6lowpan.c | 40 +-
net/ipv4/inet_diag.c | 2 +-
net/ipv4/tcp.c | 9 +-
net/ipv4/tcp_input.c | 14 +-
net/ipv4/tcp_output.c | 1 -
net/ipv4/udp_diag.c | 9 -
net/ipv6/addrconf.c | 9 +-
net/ipv6/ip6_fib.c | 9 +-
net/ipv6/ndisc.c | 3 +-
net/ipv6/route.c | 71 ++-
net/ipv6/tcp_ipv6.c | 4 -
net/key/af_key.c | 2 +-
net/l2tp/l2tp_ip.c | 8 +-
net/mac80211/ibss.c | 4 +-
net/mac80211/ieee80211_i.h | 2 +-
net/mac80211/iface.c | 4 +-
net/mac80211/mlme.c | 2 +-
net/mac80211/rx.c | 10 +-
net/mac80211/tx.c | 3 +-
net/netfilter/ipvs/ip_vs_core.c | 11 -
net/netfilter/ipvs/ip_vs_ctl.c | 56 +--
net/netfilter/ipvs/ip_vs_ftp.c | 2 -
net/netfilter/ipvs/ip_vs_lblc.c | 3 -
net/netfilter/ipvs/ip_vs_lblcr.c | 3 -
net/netfilter/ipvs/ip_vs_proto.c | 38 +-
net/netfilter/ipvs/ip_vs_proto_sctp.c | 5 +-
net/netfilter/ipvs/ip_vs_proto_tcp.c | 5 +-
net/netfilter/ipvs/ip_vs_proto_udp.c | 5 +-
net/netfilter/xt_CT.c | 2 +-
net/phonet/pn_dev.c | 21 +-
net/sched/sch_gred.c | 7 +-
net/sched/sch_netem.c | 6 +-
net/sunrpc/clnt.c | 50 +--
net/sunrpc/rpc_pipe.c | 3 +-
net/sunrpc/sunrpc_syms.c | 17 +-
net/wireless/util.c | 2 +-
scripts/mod/file2alias.c | 4 -
sound/pci/hda/patch_realtek.c | 1 -
sound/soc/blackfin/bf5xx-ssm2602.c | 2 -
sound/soc/codecs/cs42l73.c | 2 -
sound/soc/codecs/tlv320aic23.c | 4 +-
sound/soc/codecs/wm8350.c | 11 +-
sound/soc/codecs/wm8994.c | 276 +++---------
sound/soc/codecs/wm_hubs.c | 15 +-
sound/soc/omap/omap-pcm.c | 4 -
sound/soc/samsung/s3c2412-i2s.c | 2 +-
sound/soc/sh/fsi.c | 7 +-
sound/soc/soc-core.c | 7 +-
sound/soc/soc-dapm.c | 2 -
tools/perf/Makefile | 4 +-
tools/perf/builtin-report.c | 17 +-
tools/perf/builtin-test.c | 30 --
tools/perf/util/parse-events.l | 2 +-
tools/perf/util/symbol.c | 13 +-
tools/testing/ktest/ktest.pl | 12 +-
552 files changed, 4698 insertions(+), 6763 deletions(-)
delete mode 100644 Documentation/ABI/testing/sysfs-bus-hsi
rename Documentation/devicetree/bindings/ata/{ahci-platform.txt => calxeda-sata.txt} (90%)
delete mode 100644 arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi
delete mode 100644 drivers/tty/serial/68328serial.h
create mode 100644 drivers/tty/serial/8250/8250_em.c
create mode 100644 include/linux/of_serial.h
---------------
Alan Cox (7):
vt: push the tty_lock down into the map handling
tty_lock: undo the old tty_lock use on the ctty
pty: Lock the devpts bits privately
tty_lock: Localise the lock
tty: drop the pty lock during hangup
tty: Allow uart_register/unregister/register
tty: Fix LED error return
Arnaud Patard (1):
8250_pci: fix pch uart matching
Christian Melki (1):
8250.c: less than 2400 baud fix.
Corbin Atkinson (1):
serial_core: Update buffer overrun statistics.
Dan Carpenter (1):
tty: hvc_xen: NULL dereference on allocation failure
Dan Williams (2):
tegra, serial8250: add ->handle_break() uart_port op
serial/8250_pci: fix suspend/resume vs init/exit quirks
Geert Uytterhoeven (1):
tty/amiserial: Add missing argument for tty_unlock()
Govindraj.R (1):
OMAP2+: UART: Remove cpu checks for populating errata flags
Greg Kroah-Hartman (1):
Revert "serial_core: Update buffer overrun statistics."
H Hartley Sweeten (1):
tty: mxser: local variables should not be exposed globally
Heiko Carstens (1):
tty: add missing tty_port_tty_get() call to raw3215_wakeup
Ivo Sieben (1):
tty: move global ldisc idle waitqueue to the individual ldisc
Jiri Slaby (71):
TTY: crisv10, remove unused tmp_buf
TTY: crisv10, initialize tty_port
TTY: deprecate linux/generic_serial.h
ISDN: i4l, remove cvs crap
TTY: isdn, remove callout
TTY: isdn, remove ISDN_ASYNC_* flags
TTY: isdn, do not play with module refcounts
TTY: isdn, make some functions readable
TTY: isdn, remove unused members from modem_info
TTY: isdn, add tty_port
TTY: isdn, use open/close_wait from tty_port
TTY: isdn, use counts from tty_port
TTY: isdn, use tty from tty_port
TTY: isdn, use xmit_buf from tty_port
TTY: isdn, define local tty_port
TTY: isdn, use tty_port_close_end helper
TTY: isdn, define tty_port_operations
TTY: isdn, use tty_port_block_til_ready helper
TTY: hso, do not set TTY MAGIC
TTY: hso, free tty_driver
TTY: hso, add tty_port
TTY: hso, remove tty NULL checks fro tty->ops
TTY: hso, use tty from tty_port
TTY: con3215, centralize allocation
TTY: sclp_tty, add tty_port
TTY: sclp_vt220, add tty_port
TTY: sclp_vt220, remove unused allocation
TTY: tty3270, move initialization to allocation
TTY: tty3270, get rid of ugly aliasing
TTY: tty3270, push tty down to tty3270_do_write
TTY: tty3270, add tty_port
TTY: bfin_jtag_comm, add tty_port
TTY: bfin_jtag_comm, use tty from tty_port
TTY: HVC, add tty_port
TTY: HVC, use tty from tty_port
TTY: HVC, use count from tty_port
TTY: hvcs, add tty_port
TTY: hvcs, use kref from tty_port
TTY: hvcs, use tty from tty_port
TTY: hvsi, CLOCAL is not in tty->flags
TTY: hvsi, add tty_port
TTY: hvsi, sanitize uses of tty
TTY: hvsi, use tty from tty_port
TTY: ipwireless, use synchronous hangup
TTY: ipwireless, move prints to appropriate places
TTY: ipwireless, add tty_port
TTY: ipwireless, use tty from tty_port
TTY: 68328serial, remove serial_state and friends
TTY: 68328serial, remove unused stuff from m68k_serial
TTY: 68328serial, remove garbage
TTY: 68328serial, use ulong flags for interrupts status
TTY: 68328serial, remove 68328serial.h
TTY: 68328serial, add tty_port
TTY: 68328serial, use open/close_wait from tty_port
TTY: 68328serial, use close_delay/closing_wait from tty_port
TTY: 68328serial, use flags from tty_port
TTY: 68328serial, propagate tty
TTY: 68328serial, use tty from tty_port
TTY: 68328serial, use tty_port_block_til_ready
TTY: usb/u_serial, add tty_port
TTY: usb/u_serial, use tty from tty_port
TTY: usb/u_serial use close_wait from tty_port
TTY: rfcomm/tty, add tty_port
TTY: rfcomm/tty, use tty_port refcounting
TTY: rfcomm/tty, remove work for tty_wakeup
TTY: rfcomm/tty, use count from tty_port
ISDN: remove uses of isdn_tty_revision
TTY: hvc, fix TTY refcounting
TTY: con3215, add tty_port
TTY: con3215, use tty from tty_port
TTY: n_tty, do not dereference user buffer
Lothar Waßmann (1):
Add missing call to uart_update_timeout()
Magnus Damm (8):
serial8250: Add dl_read()/dl_write() callbacks
serial8250: Use dl_read()/dl_write() on Alchemy
serial8250: Use dl_read()/dl_write() on RM9K
serial8250: Clean up default map and dl code
serial8250: Introduce serial8250_register_8250_port()
serial8250-em: Emma Mobile UART driver V2
serial8250-em: clk_get() IS_ERR() error handling fix
serial8250-em: Add DT support
Michael Gehring (1):
tty/vt: handle bad user buffer in {G,P}IO_CMAP ioctl
Paul Gortmaker (1):
cris: fix missing tty arg in wait_event_interruptible_tty call
Rajanikanth H.V (1):
serial: pl011: implement workaround for CTS clear event issue
Sonic Zhang (4):
serial: bfin_uart: Adapt bf5xx serial driver to bf60x serial4 controller.
serial: bfin_uart: narrow the reboot condition in DMA tx interrupt
serial: bfin_uart: RTS and CTS MMRs can be either 16-bit width or 32-bit width.
serial: bfin_uart: Make MMR access compatible with 32 bits bf609 style controller.
Sudhakar Mamillapalli (1):
serial/8250_pci: Clear FIFOs for Intel ME Serial Over Lan device on BI
Tomoya MORINAGA (7):
pch_uart: Delete unused structure member
pch_uart: change type to u8
pch_uart: change type to %d to %02x
pch_uart: Support modem status interrupt
pch_uart: delete unused data structure
pch_uart: Fix return value issue
pch_uart: Fix duplicate memory release issue
Xiaobing Tu (1):
tty: hold lock across tty buffer finding and buffer filling
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox