diff options
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 8 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/dmtimer.h | 3 |
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 { | |||
91 | struct dmtimer_platform_data { | 91 | struct 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; |