[3.8.y.z extended stable] Patch "ARM: OMAP2+: Disable POSTED mode for errata i103 and i767" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Fri Dec 20 20:21:07 UTC 2013


This is a note to let you know that I have just added a patch titled

    ARM: OMAP2+: Disable POSTED mode for errata i103 and i767

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue

This patch is scheduled to be released in version 3.8.13.15.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

>From 832f8486e8087a057c8fd4729d6004ab6b698446 Mon Sep 17 00:00:00 2001
From: Joel Fernandes <joelf at ti.com>
Date: Tue, 26 Nov 2013 15:03:36 -0800
Subject: ARM: OMAP2+: Disable POSTED mode for errata i103 and i767

commit 912e663127c5f700da6805ce21635dce703cb2cc upstream.

Enabling of Posted mode is seen to cause problems on dmtimer modules on AM33xx
(much like other OMAPs).  Reference discussions on forums [1] [2]. Earlier
patch solving this on other OMAPs [3].

For OMAP SoCs with this errata, the fix has been to not enable Posted mode.
However, on some SoCs (atleast AM33xx) which carry this errata, Posted mode
is enabled on reset. So we not only need to ignore enabling of the POSTED bit
when the timer is requested, but also disable Posted mode if errata is present.

[1] http://e2e.ti.com/support/arm/sitara_arm/f/791/t/285744.aspx
[2] http://e2e.ti.com/support/arm/sitara_arm/f/791/t/270632.aspx
[3] http://www.spinics.net/lists/linux-omap/msg81770.html

Reported-by: Russ Dill <russ.dill at ti.com>
Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
Signed-off-by: Joel Fernandes <joelf at ti.com>
Signed-off-by: Tony Lindgren <tony at atomide.com>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 arch/arm/plat-omap/include/plat/dmtimer.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h
index a3fbc48..31e1715d 100644
--- a/arch/arm/plat-omap/include/plat/dmtimer.h
+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
@@ -335,8 +335,11 @@ static inline void __omap_dm_timer_enable_posted(struct omap_dm_timer *timer)
 	if (timer->posted)
 		return;

-	if (timer->errata & OMAP_TIMER_ERRATA_I103_I767)
+	if (timer->errata & OMAP_TIMER_ERRATA_I103_I767) {
+		timer->posted = OMAP_TIMER_NONPOSTED;
+		__omap_dm_timer_write(timer, OMAP_TIMER_IF_CTRL_REG, 0, 0);
 		return;
+	}

 	__omap_dm_timer_write(timer, OMAP_TIMER_IF_CTRL_REG,
 			      OMAP_TIMER_CTRL_POSTED, 0);
--
1.8.3.2





More information about the kernel-team mailing list