aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/dmtimer.c8
-rw-r--r--arch/arm/plat-omap/include/plat/dmtimer.h3
2 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index 30742d8e6819..7aa12785e238 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -341,7 +341,7 @@ int omap_dm_timer_start(struct omap_dm_timer *timer)
341 341
342 omap_dm_timer_enable(timer); 342 omap_dm_timer_enable(timer);
343 343
344 if (timer->loses_context) { 344 if (!(timer->capability & OMAP_TIMER_ALWON)) {
345 u32 ctx_loss_cnt_after = 345 u32 ctx_loss_cnt_after =
346 timer->get_context_loss_count(&timer->pdev->dev); 346 timer->get_context_loss_count(&timer->pdev->dev);
347 if (ctx_loss_cnt_after != timer->ctx_loss_count) 347 if (ctx_loss_cnt_after != timer->ctx_loss_count)
@@ -374,7 +374,8 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)
374 374
375 __omap_dm_timer_stop(timer, timer->posted, rate); 375 __omap_dm_timer_stop(timer, timer->posted, rate);
376 376
377 if (timer->loses_context && timer->get_context_loss_count) 377 if (!(timer->capability & OMAP_TIMER_ALWON) &&
378 timer->get_context_loss_count)
378 timer->ctx_loss_count = 379 timer->ctx_loss_count =
379 timer->get_context_loss_count(&timer->pdev->dev); 380 timer->get_context_loss_count(&timer->pdev->dev);
380 381
@@ -447,7 +448,7 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
447 448
448 omap_dm_timer_enable(timer); 449 omap_dm_timer_enable(timer);
449 450
450 if (timer->loses_context) { 451 if (!(timer->capability & OMAP_TIMER_ALWON)) {
451 u32 ctx_loss_cnt_after = 452 u32 ctx_loss_cnt_after =
452 timer->get_context_loss_count(&timer->pdev->dev); 453 timer->get_context_loss_count(&timer->pdev->dev);
453 if (ctx_loss_cnt_after != timer->ctx_loss_count) 454 if (ctx_loss_cnt_after != timer->ctx_loss_count)
@@ -692,7 +693,6 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
692 timer->irq = irq->start; 693 timer->irq = irq->start;
693 timer->reserved = omap_dm_timer_reserved_systimer(timer->id); 694 timer->reserved = omap_dm_timer_reserved_systimer(timer->id);
694 timer->pdev = pdev; 695 timer->pdev = pdev;
695 timer->loses_context = pdata->loses_context;
696 timer->get_context_loss_count = pdata->get_context_loss_count; 696 timer->get_context_loss_count = pdata->get_context_loss_count;
697 timer->capability = pdata->timer_capability; 697 timer->capability = pdata->timer_capability;
698 698
diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h
index 362cf97d721c..0a7ed31954ea 100644
--- a/arch/arm/plat-omap/include/plat/dmtimer.h
+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
@@ -91,8 +91,6 @@ struct timer_regs {
91struct dmtimer_platform_data { 91struct dmtimer_platform_data {
92 int (*set_timer_src)(struct platform_device *pdev, int source); 92 int (*set_timer_src)(struct platform_device *pdev, int source);
93 u32 needs_manual_reset:1; 93 u32 needs_manual_reset:1;
94 bool loses_context;
95
96 int (*get_context_loss_count)(struct device *dev); 94 int (*get_context_loss_count)(struct device *dev);
97 u32 timer_capability; 95 u32 timer_capability;
98}; 96};
@@ -264,7 +262,6 @@ struct omap_dm_timer {
264 unsigned reserved:1; 262 unsigned reserved:1;
265 unsigned posted:1; 263 unsigned posted:1;
266 struct timer_regs context; 264 struct timer_regs context;
267 bool loses_context;
268 int ctx_loss_count; 265 int ctx_loss_count;
269 int revision; 266 int revision;
270 u32 capability; 267 u32 capability;