summaryrefslogtreecommitdiff
path: root/packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr')
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr b/packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr
new file mode 100644
index 0000000000..4b3d757bdc
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr
@@ -0,0 +1,25 @@
+OMAP3 GPTIMER: TOCR clears sometimes require two writes
+
+From: Paul Walmsley <paul@pwsan.com>
+
+Some GPTIMER register changes do not take effect with a single write;
+they require two writes for some reason. Could be related to the
+existing 3430 errata "GPTimer 1,2, and 10: first write access to TCRR
+register discarded"
+---
+
+ arch/arm/plat-omap/dmtimer.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
+index 18a1e68..4a5ada7 100644
+--- a/arch/arm/plat-omap/dmtimer.c
++++ b/arch/arm/plat-omap/dmtimer.c
+@@ -619,6 +619,7 @@ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
+ void omap_dm_timer_clear_ovf_cnt(struct omap_dm_timer *timer)
+ {
+ omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
++ omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
+ }
+
+ unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)