All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
@ 2015-07-14  8:02 Sekhar Nori
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

This series works around "Advisory 21" as documented in
AM437x SoC errata[1]. This errata prevents UART module
from idling after DMA is used. AM335x and DRA7x also suffer
from the same errata and chip design team is in the process
of updating the errata documents of those devices as well.

Patch 1/7 fixes a related bug but can be applied independently.

[1] http://www.ti.com/lit/er/sprz408b/sprz408b.pdf

v2:
- Updated according to comments from Peter Hurley.
  See each patch for change details.

Sekhar Nori (7):
  serial: 8250_omap: fix kernel crash in suspend-to-ram
  Documentation: DT: omap_serial: document missing compatible
  serial: 8250_omap: refactor mdr1 update
  serial: 8250_omap: introduce "ti,am3352-uart" compatible property
  serial: 8250_omap: workaround errata around idling UART after using
    DMA
  serial: 8250_omap: workaround module disable errata on dra7x SoCs
  ARM: dts: dra7: workaround UART module disable errata

 .../devicetree/bindings/serial/omap_serial.txt     |   3 +
 arch/arm/boot/dts/am33xx.dtsi                      |  12 +--
 arch/arm/boot/dts/dra7.dtsi                        |  20 ++--
 drivers/tty/serial/8250/8250_omap.c                | 117 +++++++++++++++++----
 4 files changed, 113 insertions(+), 39 deletions(-)

-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 1/7] serial: 8250_omap: fix kernel crash in suspend-to-ram
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 2/7] Documentation: DT: omap_serial: document missing compatible Sekhar Nori
                     ` (6 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

omap_device infrastructure has a suspend_noirq hook which
runtime suspends all devices late in the suspend cycle (see
_od_suspend_noirq() in arch/arm/mach-omap2/omap_device.c)

This leads to a NULL pointer exception in 8250_omap driver
since by the time omap8250_runtime_suspend() is called, 8250_dma
driver has already set rxchan to NULL via serial8250_release_dma().

Make an explicit check to see if rxchan is NULL in
runtime_{suspend|resume} hooks to fix this.

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- updated subject line according to subsystem conventions

 drivers/tty/serial/8250/8250_omap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index d75a66c72750..20c5b9c4c288 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -1285,7 +1285,7 @@ static int omap8250_runtime_suspend(struct device *dev)
 			return -EBUSY;
 	}
 
-	if (up->dma)
+	if (up->dma && up->dma->rxchan)
 		omap_8250_rx_dma(up, UART_IIR_RX_TIMEOUT);
 
 	priv->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
@@ -1310,7 +1310,7 @@ static int omap8250_runtime_resume(struct device *dev)
 	if (loss_cntx)
 		omap8250_restore_regs(up);
 
-	if (up->dma)
+	if (up->dma && up->dma->rxchan)
 		omap_8250_rx_dma(up, 0);
 
 	priv->latency = priv->calc_latency;
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 2/7] Documentation: DT: omap_serial: document missing compatible
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
  2015-07-14  8:02   ` [PATCH v2 1/7] serial: 8250_omap: fix kernel crash in suspend-to-ram Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 3/7] serial: 8250_omap: refactor mdr1 update Sekhar Nori
                     ` (5 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

The compatible "ti,am4372-uart" is used in arch/arm/boot/dts/am4372.dtsi
but not documented. Add necessary documentation.

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- No changes.

 Documentation/devicetree/bindings/serial/omap_serial.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
index 54c2a155c783..d3bd2b1ec401 100644
--- a/Documentation/devicetree/bindings/serial/omap_serial.txt
+++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
@@ -4,6 +4,7 @@ Required properties:
 - compatible : should be "ti,omap2-uart" for OMAP2 controllers
 - compatible : should be "ti,omap3-uart" for OMAP3 controllers
 - compatible : should be "ti,omap4-uart" for OMAP4 controllers
+- compatible : should be "ti,am4372-uart" for AM437x controllers
 - reg : address and length of the register space
 - interrupts or interrupts-extended : Should contain the uart interrupt
                                       specifier or both the interrupt
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 3/7] serial: 8250_omap: refactor mdr1 update
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
  2015-07-14  8:02   ` [PATCH v2 1/7] serial: 8250_omap: fix kernel crash in suspend-to-ram Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 2/7] Documentation: DT: omap_serial: document missing compatible Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 4/7] serial: 8250_omap: introduce "ti,am3352-uart" compatible property Sekhar Nori
                     ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

The silicon errata[1] workaround implemented in a follow-on
patch, "serial: 8250_omap: workaround errata on disabling
UART after using DMA", requires MDR1 register programming.

Extract MDR1 register update into helper function,
omap8250_update_mdr1() to help with that.

[1] Advisory 21 in http://www.ti.com/lit/er/sprz408b/sprz408b.pdf

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- Updated subject line and description according
  to comments received.

 drivers/tty/serial/8250/8250_omap.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index 20c5b9c4c288..d9c96b993a84 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -232,6 +232,15 @@ static void omap8250_update_scr(struct uart_8250_port *up,
 	serial_out(up, UART_OMAP_SCR, priv->scr);
 }
 
+static void omap8250_update_mdr1(struct uart_8250_port *up,
+				 struct omap8250_priv *priv)
+{
+	if (priv->habit & UART_ERRATA_i202_MDR1_ACCESS)
+		omap_8250_mdr1_errataset(up, priv);
+	else
+		serial_out(up, UART_OMAP_MDR1, priv->mdr1);
+}
+
 static void omap8250_restore_regs(struct uart_8250_port *up)
 {
 	struct omap8250_priv *priv = up->port.private_data;
@@ -282,11 +291,9 @@ static void omap8250_restore_regs(struct uart_8250_port *up)
 	serial_out(up, UART_XOFF1, priv->xoff);
 
 	serial_out(up, UART_LCR, up->lcr);
-	/* need mode A for FCR */
-	if (priv->habit & UART_ERRATA_i202_MDR1_ACCESS)
-		omap_8250_mdr1_errataset(up, priv);
-	else
-		serial_out(up, UART_OMAP_MDR1, priv->mdr1);
+
+	omap8250_update_mdr1(up, priv);
+
 	up->port.ops->set_mctrl(&up->port, up->port.mctrl);
 }
 
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 4/7] serial: 8250_omap: introduce "ti,am3352-uart" compatible property
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
                     ` (2 preceding siblings ...)
  2015-07-14  8:02   ` [PATCH v2 3/7] serial: 8250_omap: refactor mdr1 update Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 5/7] serial: 8250_omap: workaround errata around idling UART after using DMA Sekhar Nori
                     ` (3 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

Use of of_machine_is_compatible() for handling AM335x specific
"DMA kick" quirk in 8250_omap driver makes it ugly to extend the
quirk for other platforms. Instead use a new compatible.

The new compatible will also make it easier to take care of
other quirks on AM335x and like SoCs.

In order to not break backward DTB compatibility for users of
8250_omap driver on AM335x based boards, existing use of
of_machine_is_compatible() has not been removed.

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- prevent dtb backward compatibility breakage

 .../devicetree/bindings/serial/omap_serial.txt     |  1 +
 arch/arm/boot/dts/am33xx.dtsi                      | 12 ++++----
 drivers/tty/serial/8250/8250_omap.c                | 32 ++++++++++++++--------
 3 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
index d3bd2b1ec401..0ee88209b341 100644
--- a/Documentation/devicetree/bindings/serial/omap_serial.txt
+++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
@@ -5,6 +5,7 @@ Required properties:
 - compatible : should be "ti,omap3-uart" for OMAP3 controllers
 - compatible : should be "ti,omap4-uart" for OMAP4 controllers
 - compatible : should be "ti,am4372-uart" for AM437x controllers
+- compatible : should be "ti,am3352-uart" for AM335x controllers
 - reg : address and length of the register space
 - interrupts or interrupts-extended : Should contain the uart interrupt
                                       specifier or both the interrupt
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 21fcc440fc1a..b76f9a2ce05d 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -210,7 +210,7 @@
 		};
 
 		uart0: serial@44e09000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart1";
 			clock-frequency = <48000000>;
 			reg = <0x44e09000 0x2000>;
@@ -221,7 +221,7 @@
 		};
 
 		uart1: serial@48022000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart2";
 			clock-frequency = <48000000>;
 			reg = <0x48022000 0x2000>;
@@ -232,7 +232,7 @@
 		};
 
 		uart2: serial@48024000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart3";
 			clock-frequency = <48000000>;
 			reg = <0x48024000 0x2000>;
@@ -243,7 +243,7 @@
 		};
 
 		uart3: serial@481a6000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart4";
 			clock-frequency = <48000000>;
 			reg = <0x481a6000 0x2000>;
@@ -252,7 +252,7 @@
 		};
 
 		uart4: serial@481a8000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart5";
 			clock-frequency = <48000000>;
 			reg = <0x481a8000 0x2000>;
@@ -261,7 +261,7 @@
 		};
 
 		uart5: serial@481aa000 {
-			compatible = "ti,omap3-uart";
+			compatible = "ti,am3352-uart", "ti,omap3-uart";
 			ti,hwmods = "uart6";
 			clock-frequency = <48000000>;
 			reg = <0x481aa000 0x2000>;
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index d9c96b993a84..fff026f3d0bb 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -16,6 +16,7 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/of_gpio.h>
 #include <linux/of_irq.h>
 #include <linux/delay.h>
@@ -537,14 +538,14 @@ static void omap_serial_fill_features_erratas(struct uart_8250_port *up,
 
 	switch (revision) {
 	case OMAP_UART_REV_46:
-		priv->habit = UART_ERRATA_i202_MDR1_ACCESS;
+		priv->habit |= UART_ERRATA_i202_MDR1_ACCESS;
 		break;
 	case OMAP_UART_REV_52:
-		priv->habit = UART_ERRATA_i202_MDR1_ACCESS |
+		priv->habit |= UART_ERRATA_i202_MDR1_ACCESS |
 				OMAP_UART_WER_HAS_TX_WAKEUP;
 		break;
 	case OMAP_UART_REV_63:
-		priv->habit = UART_ERRATA_i202_MDR1_ACCESS |
+		priv->habit |= UART_ERRATA_i202_MDR1_ACCESS |
 			OMAP_UART_WER_HAS_TX_WAKEUP;
 		break;
 	default:
@@ -1061,6 +1062,17 @@ static int omap8250_no_handle_irq(struct uart_port *port)
 	return 0;
 }
 
+static const u8 am3352_habit = OMAP_DMA_TX_KICK;
+
+static const struct of_device_id omap8250_dt_ids[] = {
+	{ .compatible = "ti,omap2-uart" },
+	{ .compatible = "ti,omap3-uart" },
+	{ .compatible = "ti,omap4-uart" },
+	{ .compatible = "ti,am3352-uart", .data = &am3352_habit, },
+	{},
+};
+MODULE_DEVICE_TABLE(of, omap8250_dt_ids);
+
 static int omap8250_probe(struct platform_device *pdev)
 {
 	struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1125,11 +1137,17 @@ static int omap8250_probe(struct platform_device *pdev)
 	up.port.unthrottle = omap_8250_unthrottle;
 
 	if (pdev->dev.of_node) {
+		const struct of_device_id *id;
+
 		ret = of_alias_get_id(pdev->dev.of_node, "serial");
 
 		of_property_read_u32(pdev->dev.of_node, "clock-frequency",
 				     &up.port.uartclk);
 		priv->wakeirq = irq_of_parse_and_map(pdev->dev.of_node, 1);
+
+		id = of_match_device(of_match_ptr(omap8250_dt_ids), &pdev->dev);
+		if (id && id->data)
+			priv->habit |= *(u8 *)id->data;
 	} else {
 		ret = pdev->id;
 	}
@@ -1374,14 +1392,6 @@ static const struct dev_pm_ops omap8250_dev_pm_ops = {
 	.complete       = omap8250_complete,
 };
 
-static const struct of_device_id omap8250_dt_ids[] = {
-	{ .compatible = "ti,omap2-uart" },
-	{ .compatible = "ti,omap3-uart" },
-	{ .compatible = "ti,omap4-uart" },
-	{},
-};
-MODULE_DEVICE_TABLE(of, omap8250_dt_ids);
-
 static struct platform_driver omap8250_platform_driver = {
 	.driver = {
 		.name		= "omap8250",
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 5/7] serial: 8250_omap: workaround errata around idling UART after using DMA
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
                     ` (3 preceding siblings ...)
  2015-07-14  8:02   ` [PATCH v2 4/7] serial: 8250_omap: introduce "ti,am3352-uart" compatible property Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 6/7] serial: 8250_omap: workaround module disable errata on dra7x SoCs Sekhar Nori
                     ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

AM335x, AM437x and DRA7x SoCs have an errata[1] due to which UART
cannot be idled after it has been used with DMA.

OMAP3 has a similar sounding errata which has been worked around
in a2fc36613ac1af2e9 ("ARM: OMAP3: Use manual idle for UARTs
because of DMA errata"). But the workaround used there does not
apply to AM335x, AM437x SoCs.

After using DMA, the UART module on these SoCs must be soft reset
to go to idle.

This patch implements that errata workaround. It is expected that
UART will be used with DMA so no explicit check for DMA usage
has been added for errata applicability.

MDR1 register needs to be restored right after soft-reset because
"UART mode" must be set in that register for module wake-up on AM335x
to work. As a result, SCR register is now used to determine if
context was lost during sleep.

[1] See Advisory 21 in AM437x errata SPRZ408B, updated April 2015.
    http://www.ti.com/lit/er/sprz408b/sprz408b.pdf

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- introduce a new function to do the UART softreset
- restore MDR1 unconditionally
- update subject line and description according to comments received.

 drivers/tty/serial/8250/8250_omap.c | 65 +++++++++++++++++++++++++++++++++----
 1 file changed, 59 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index fff026f3d0bb..a2ee75dee070 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -33,6 +33,11 @@
 #define UART_ERRATA_i202_MDR1_ACCESS	(1 << 0)
 #define OMAP_UART_WER_HAS_TX_WAKEUP	(1 << 1)
 #define OMAP_DMA_TX_KICK		(1 << 2)
+/*
+ * See Advisory 21 in AM437x errata SPRZ408B, updated April 2015.
+ * The same errata is applicable to AM335x and DRA7x processors too.
+ */
+#define UART_ERRATA_CLOCK_DISABLE	(1 << 3)
 
 #define OMAP_UART_FCR_RX_TRIG		6
 #define OMAP_UART_FCR_TX_TRIG		4
@@ -54,6 +59,12 @@
 #define OMAP_UART_MVR_MAJ_SHIFT		8
 #define OMAP_UART_MVR_MIN_MASK		0x3f
 
+/* SYSC register bitmasks */
+#define OMAP_UART_SYSC_SOFTRESET	(1 << 1)
+
+/* SYSS register bitmasks */
+#define OMAP_UART_SYSS_RESETDONE	(1 << 0)
+
 #define UART_TI752_TLR_TX	0
 #define UART_TI752_TLR_RX	4
 
@@ -1062,13 +1073,15 @@ static int omap8250_no_handle_irq(struct uart_port *port)
 	return 0;
 }
 
-static const u8 am3352_habit = OMAP_DMA_TX_KICK;
+static const u8 am3352_habit = OMAP_DMA_TX_KICK | UART_ERRATA_CLOCK_DISABLE;
+static const u8 am4372_habit = UART_ERRATA_CLOCK_DISABLE;
 
 static const struct of_device_id omap8250_dt_ids[] = {
 	{ .compatible = "ti,omap2-uart" },
 	{ .compatible = "ti,omap3-uart" },
 	{ .compatible = "ti,omap4-uart" },
 	{ .compatible = "ti,am3352-uart", .data = &am3352_habit, },
+	{ .compatible = "ti,am4372-uart", .data = &am4372_habit, },
 	{},
 };
 MODULE_DEVICE_TABLE(of, omap8250_dt_ids);
@@ -1282,17 +1295,46 @@ static int omap8250_lost_context(struct uart_8250_port *up)
 {
 	u32 val;
 
-	val = serial_in(up, UART_OMAP_MDR1);
+	val = serial_in(up, UART_OMAP_SCR);
 	/*
-	 * If we lose context, then MDR1 is set to its reset value which is
-	 * UART_OMAP_MDR1_DISABLE. After set_termios() we set it either to 13x
-	 * or 16x but never to disable again.
+	 * If we lose context, then SCR is set to its reset value of zero.
+	 * After set_termios() we set bit 3 of SCR (TX_EMPTY_CTL_IT) to 1,
+	 * among other bits, to never set the register back to zero again.
 	 */
-	if (val == UART_OMAP_MDR1_DISABLE)
+	if (!val)
 		return 1;
 	return 0;
 }
 
+/* TODO: in future, this should happen via API in drivers/reset/ */
+static int omap8250_soft_reset(struct device *dev)
+{
+	struct omap8250_priv *priv = dev_get_drvdata(dev);
+	struct uart_8250_port *up = serial8250_get_port(priv->line);
+	int timeout = 100;
+	int sysc;
+	int syss;
+
+	sysc = serial_in(up, UART_OMAP_SYSC);
+
+	/* softreset the UART */
+	sysc |= OMAP_UART_SYSC_SOFTRESET;
+	serial_out(up, UART_OMAP_SYSC, sysc);
+
+	/* By experiments, 1us enough for reset complete on AM335x */
+	do {
+		udelay(1);
+		syss = serial_in(up, UART_OMAP_SYSS);
+	} while (--timeout && !(syss & OMAP_UART_SYSS_RESETDONE));
+
+	if (!timeout) {
+		dev_err(dev, "timed out waiting for reset done\n");
+		return -ETIMEDOUT;
+	}
+
+	return 0;
+}
+
 static int omap8250_runtime_suspend(struct device *dev)
 {
 	struct omap8250_priv *priv = dev_get_drvdata(dev);
@@ -1310,6 +1352,17 @@ static int omap8250_runtime_suspend(struct device *dev)
 			return -EBUSY;
 	}
 
+	if (priv->habit & UART_ERRATA_CLOCK_DISABLE) {
+		int ret;
+
+		ret = omap8250_soft_reset(dev);
+		if (ret)
+			return ret;
+
+		/* Restore to UART mode after reset (for wakeup) */
+		omap8250_update_mdr1(up, priv);
+	}
+
 	if (up->dma && up->dma->rxchan)
 		omap_8250_rx_dma(up, UART_IIR_RX_TIMEOUT);
 
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 6/7] serial: 8250_omap: workaround module disable errata on dra7x SoCs
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
                     ` (4 preceding siblings ...)
  2015-07-14  8:02   ` [PATCH v2 5/7] serial: 8250_omap: workaround errata around idling UART after using DMA Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
  2015-07-14  8:02   ` [PATCH v2 7/7] ARM: dts: dra7: workaround UART module disable errata Sekhar Nori
  2015-07-14 12:22   ` [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata Peter Hurley
  7 siblings, 0 replies; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

Due to Advisory 21 as documented in AM437x errata document,
UART module cannot be disabled once DMA is used. The only
workaround is to softreset the module before disabling it.

DRA7x UARTs are compatible to AM437x UARTs in terms of
this errata and prescribed workaround.

Enable usage of workaround for this errata on DRA7x SoCs.

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- subject line updated according to subsystem conventions

 Documentation/devicetree/bindings/serial/omap_serial.txt | 1 +
 drivers/tty/serial/8250/8250_omap.c                      | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
index 0ee88209b341..7a71b5de77d6 100644
--- a/Documentation/devicetree/bindings/serial/omap_serial.txt
+++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
@@ -6,6 +6,7 @@ Required properties:
 - compatible : should be "ti,omap4-uart" for OMAP4 controllers
 - compatible : should be "ti,am4372-uart" for AM437x controllers
 - compatible : should be "ti,am3352-uart" for AM335x controllers
+- compatible : should be "ti,dra742-uart" for DRA7x controllers
 - reg : address and length of the register space
 - interrupts or interrupts-extended : Should contain the uart interrupt
                                       specifier or both the interrupt
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index a2ee75dee070..d9a37191a1ae 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -1082,6 +1082,7 @@ static const struct of_device_id omap8250_dt_ids[] = {
 	{ .compatible = "ti,omap4-uart" },
 	{ .compatible = "ti,am3352-uart", .data = &am3352_habit, },
 	{ .compatible = "ti,am4372-uart", .data = &am4372_habit, },
+	{ .compatible = "ti,dra742-uart", .data = &am4372_habit, },
 	{},
 };
 MODULE_DEVICE_TABLE(of, omap8250_dt_ids);
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* [PATCH v2 7/7] ARM: dts: dra7: workaround UART module disable errata
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
                     ` (5 preceding siblings ...)
  2015-07-14  8:02   ` [PATCH v2 6/7] serial: 8250_omap: workaround module disable errata on dra7x SoCs Sekhar Nori
@ 2015-07-14  8:02   ` Sekhar Nori
       [not found]     ` <6655d460d8e312a439b001547a1a7642d791672b.1436855647.git.nsekhar-l0cyMroinI0@public.gmane.org>
  2015-07-14 12:22   ` [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata Peter Hurley
  7 siblings, 1 reply; 14+ messages in thread
From: Sekhar Nori @ 2015-07-14  8:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tony Lindgren
  Cc: Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

Add "ti,dra742-uart" to the compatible list so the driver
workaround for UART module disable errata is enabled.

This does not break backward compatibility as existing DTBs
should continue to work with newer kernels albeit without the
capability to idle the UART module when DMA is used.

Signed-off-by: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>
---
v2:
- no change.

 arch/arm/boot/dts/dra7.dtsi | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 8f1e25bcecbd..49940e516f0f 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -397,7 +397,7 @@
 		};
 
 		uart1: serial@4806a000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x4806a000 0x100>;
 			interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart1";
@@ -408,7 +408,7 @@
 		};
 
 		uart2: serial@4806c000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x4806c000 0x100>;
 			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart2";
@@ -419,7 +419,7 @@
 		};
 
 		uart3: serial@48020000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48020000 0x100>;
 			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart3";
@@ -430,7 +430,7 @@
 		};
 
 		uart4: serial@4806e000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x4806e000 0x100>;
 			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart4";
@@ -441,7 +441,7 @@
 		};
 
 		uart5: serial@48066000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48066000 0x100>;
 			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart5";
@@ -452,7 +452,7 @@
 		};
 
 		uart6: serial@48068000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48068000 0x100>;
 			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart6";
@@ -463,7 +463,7 @@
 		};
 
 		uart7: serial@48420000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48420000 0x100>;
 			interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart7";
@@ -472,7 +472,7 @@
 		};
 
 		uart8: serial@48422000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48422000 0x100>;
 			interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart8";
@@ -481,7 +481,7 @@
 		};
 
 		uart9: serial@48424000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x48424000 0x100>;
 			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart9";
@@ -490,7 +490,7 @@
 		};
 
 		uart10: serial@4ae2b000 {
-			compatible = "ti,omap4-uart";
+			compatible = "ti,dra742-uart", "ti,omap4-uart";
 			reg = <0x4ae2b000 0x100>;
 			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "uart10";
-- 
2.4.4.408.g16da57c

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
       [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
                     ` (6 preceding siblings ...)
  2015-07-14  8:02   ` [PATCH v2 7/7] ARM: dts: dra7: workaround UART module disable errata Sekhar Nori
@ 2015-07-14 12:22   ` Peter Hurley
       [not found]     ` <55A4FEEC.3080101-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
  7 siblings, 1 reply; 14+ messages in thread
From: Peter Hurley @ 2015-07-14 12:22 UTC (permalink / raw)
  To: Sekhar Nori, Greg Kroah-Hartman, Tony Lindgren
  Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA, Linux OMAP Mailing List,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Device Tree Mailing List, John Ogness, Sebastian Andrzej Siewior

On 07/14/2015 04:02 AM, Sekhar Nori wrote:
> This series works around "Advisory 21" as documented in
> AM437x SoC errata[1]. This errata prevents UART module
> from idling after DMA is used. AM335x and DRA7x also suffer
> from the same errata and chip design team is in the process
> of updating the errata documents of those devices as well.
> 
> Patch 1/7 fixes a related bug but can be applied independently.

Looks good. Thanks Sekhar!

For series,

Reviewed-by: Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
       [not found]     ` <55A4FEEC.3080101-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
@ 2015-07-14 12:49       ` Tony Lindgren
       [not found]         ` <20150714124908.GE10928-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Tony Lindgren @ 2015-07-14 12:49 UTC (permalink / raw)
  To: Peter Hurley
  Cc: Sekhar Nori, Greg Kroah-Hartman,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, Linux OMAP Mailing List,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Device Tree Mailing List, John Ogness, Sebastian Andrzej Siewior

* Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org> [150714 05:24]:
> On 07/14/2015 04:02 AM, Sekhar Nori wrote:
> > This series works around "Advisory 21" as documented in
> > AM437x SoC errata[1]. This errata prevents UART module
> > from idling after DMA is used. AM335x and DRA7x also suffer
> > from the same errata and chip design team is in the process
> > of updating the errata documents of those devices as well.
> > 
> > Patch 1/7 fixes a related bug but can be applied independently.
> 
> Looks good. Thanks Sekhar!
> 
> For series,
> 
> Reviewed-by: Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>

Also things still work for me, and the dts changes should
not cause merge conflicts during v4.3 merge window based on
what I have queued. So please feel free to queue these
all via the tty tree and add:

Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
       [not found]         ` <20150714124908.GE10928-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
@ 2015-07-24  6:41           ` Sekhar Nori
       [not found]             ` <55B1DE10.60408-l0cyMroinI0@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Sekhar Nori @ 2015-07-24  6:41 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Tony Lindgren, Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

Hi Greg,

On Tuesday 14 July 2015 06:19 PM, Tony Lindgren wrote:
> * Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org> [150714 05:24]:
>> On 07/14/2015 04:02 AM, Sekhar Nori wrote:
>>> This series works around "Advisory 21" as documented in
>>> AM437x SoC errata[1]. This errata prevents UART module
>>> from idling after DMA is used. AM335x and DRA7x also suffer
>>> from the same errata and chip design team is in the process
>>> of updating the errata documents of those devices as well.
>>>
>>> Patch 1/7 fixes a related bug but can be applied independently.
>>
>> Looks good. Thanks Sekhar!
>>
>> For series,
>>
>> Reviewed-by: Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
> 
> Also things still work for me, and the dts changes should
> not cause merge conflicts during v4.3 merge window based on
> what I have queued. So please feel free to queue these
> all via the tty tree and add:
> 
> Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> 

Looks like you have queued the first 6 patches of this series but left
out 7/7 which is a DTS update. Based on above, Tony is okay with you
going ahead and queuing that DTS patch too. Can you please go ahead and
queue 7/7 as well?

Thanks,
Sekhar
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 7/7] ARM: dts: dra7: workaround UART module disable errata
       [not found]     ` <6655d460d8e312a439b001547a1a7642d791672b.1436855647.git.nsekhar-l0cyMroinI0@public.gmane.org>
@ 2015-07-24 12:00       ` Tony Lindgren
  0 siblings, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2015-07-24 12:00 UTC (permalink / raw)
  To: Sekhar Nori
  Cc: Greg Kroah-Hartman, Peter Hurley,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, Linux OMAP Mailing List,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Device Tree Mailing List, John Ogness, Sebastian Andrzej Siewior

* Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> [150714 01:05]:
> Add "ti,dra742-uart" to the compatible list so the driver
> workaround for UART module disable errata is enabled.
> 
> This does not break backward compatibility as existing DTBs
> should continue to work with newer kernels albeit without the
> capability to idle the UART module when DMA is used.

Looks like this won't cause any merge conflicts for v4.3,
please feel free to apply along with the serial driver
patches:

Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
       [not found]             ` <55B1DE10.60408-l0cyMroinI0@public.gmane.org>
@ 2015-07-24 12:01               ` Tony Lindgren
  2015-07-24 18:59               ` Greg Kroah-Hartman
  1 sibling, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2015-07-24 12:01 UTC (permalink / raw)
  To: Sekhar Nori
  Cc: Greg Kroah-Hartman, Peter Hurley,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, Linux OMAP Mailing List,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Device Tree Mailing List, John Ogness, Sebastian Andrzej Siewior

* Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> [150723 23:44]:
> Hi Greg,
> 
> On Tuesday 14 July 2015 06:19 PM, Tony Lindgren wrote:
> > * Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org> [150714 05:24]:
> >> On 07/14/2015 04:02 AM, Sekhar Nori wrote:
> >>> This series works around "Advisory 21" as documented in
> >>> AM437x SoC errata[1]. This errata prevents UART module
> >>> from idling after DMA is used. AM335x and DRA7x also suffer
> >>> from the same errata and chip design team is in the process
> >>> of updating the errata documents of those devices as well.
> >>>
> >>> Patch 1/7 fixes a related bug but can be applied independently.
> >>
> >> Looks good. Thanks Sekhar!
> >>
> >> For series,
> >>
> >> Reviewed-by: Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
> > 
> > Also things still work for me, and the dts changes should
> > not cause merge conflicts during v4.3 merge window based on
> > what I have queued. So please feel free to queue these
> > all via the tty tree and add:
> > 
> > Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> 
> 
> Looks like you have queued the first 6 patches of this series but left
> out 7/7 which is a DTS update. Based on above, Tony is okay with you
> going ahead and queuing that DTS patch too. Can you please go ahead and
> queue 7/7 as well?

OK seems it won't cause merge conflicts so I've acked it.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata
       [not found]             ` <55B1DE10.60408-l0cyMroinI0@public.gmane.org>
  2015-07-24 12:01               ` Tony Lindgren
@ 2015-07-24 18:59               ` Greg Kroah-Hartman
  1 sibling, 0 replies; 14+ messages in thread
From: Greg Kroah-Hartman @ 2015-07-24 18:59 UTC (permalink / raw)
  To: Sekhar Nori
  Cc: Tony Lindgren, Peter Hurley, linux-serial-u79uwXL29TY76Z2rM5mHXA,
	Linux OMAP Mailing List, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, Device Tree Mailing List, John Ogness,
	Sebastian Andrzej Siewior

On Fri, Jul 24, 2015 at 12:11:20PM +0530, Sekhar Nori wrote:
> Hi Greg,
> 
> On Tuesday 14 July 2015 06:19 PM, Tony Lindgren wrote:
> > * Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org> [150714 05:24]:
> >> On 07/14/2015 04:02 AM, Sekhar Nori wrote:
> >>> This series works around "Advisory 21" as documented in
> >>> AM437x SoC errata[1]. This errata prevents UART module
> >>> from idling after DMA is used. AM335x and DRA7x also suffer
> >>> from the same errata and chip design team is in the process
> >>> of updating the errata documents of those devices as well.
> >>>
> >>> Patch 1/7 fixes a related bug but can be applied independently.
> >>
> >> Looks good. Thanks Sekhar!
> >>
> >> For series,
> >>
> >> Reviewed-by: Peter Hurley <peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
> > 
> > Also things still work for me, and the dts changes should
> > not cause merge conflicts during v4.3 merge window based on
> > what I have queued. So please feel free to queue these
> > all via the tty tree and add:
> > 
> > Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> 
> 
> Looks like you have queued the first 6 patches of this series but left
> out 7/7 which is a DTS update. Based on above, Tony is okay with you
> going ahead and queuing that DTS patch too. Can you please go ahead and
> queue 7/7 as well?

Can you please resend it?  My queue is now empty.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-07-24 18:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-14  8:02 [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata Sekhar Nori
     [not found] ` <cover.1436855646.git.nsekhar-l0cyMroinI0@public.gmane.org>
2015-07-14  8:02   ` [PATCH v2 1/7] serial: 8250_omap: fix kernel crash in suspend-to-ram Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 2/7] Documentation: DT: omap_serial: document missing compatible Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 3/7] serial: 8250_omap: refactor mdr1 update Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 4/7] serial: 8250_omap: introduce "ti,am3352-uart" compatible property Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 5/7] serial: 8250_omap: workaround errata around idling UART after using DMA Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 6/7] serial: 8250_omap: workaround module disable errata on dra7x SoCs Sekhar Nori
2015-07-14  8:02   ` [PATCH v2 7/7] ARM: dts: dra7: workaround UART module disable errata Sekhar Nori
     [not found]     ` <6655d460d8e312a439b001547a1a7642d791672b.1436855647.git.nsekhar-l0cyMroinI0@public.gmane.org>
2015-07-24 12:00       ` Tony Lindgren
2015-07-14 12:22   ` [PATCH v2 0/7] serial: 8250_omap: workaround for IP errata Peter Hurley
     [not found]     ` <55A4FEEC.3080101-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-07-14 12:49       ` Tony Lindgren
     [not found]         ` <20150714124908.GE10928-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-07-24  6:41           ` Sekhar Nori
     [not found]             ` <55B1DE10.60408-l0cyMroinI0@public.gmane.org>
2015-07-24 12:01               ` Tony Lindgren
2015-07-24 18:59               ` Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.