|
@@ -45,8 +45,6 @@
|
|
|
|
|
|
#include <mach/hardware.h>
|
|
|
|
|
|
-#include "../mach-omap2/omap-pm.h"
|
|
|
-
|
|
|
static u32 omap_reserved_systimers;
|
|
|
static LIST_HEAD(omap_timer_list);
|
|
|
static DEFINE_SPINLOCK(dm_timer_lock);
|
|
@@ -349,7 +347,8 @@ int omap_dm_timer_start(struct omap_dm_timer *timer)
|
|
|
omap_dm_timer_enable(timer);
|
|
|
|
|
|
if (!(timer->capability & OMAP_TIMER_ALWON)) {
|
|
|
- if (omap_pm_get_dev_context_loss_count(&timer->pdev->dev) !=
|
|
|
+ if (timer->get_context_loss_count &&
|
|
|
+ timer->get_context_loss_count(&timer->pdev->dev) !=
|
|
|
timer->ctx_loss_count)
|
|
|
omap_timer_restore_context(timer);
|
|
|
}
|
|
@@ -378,9 +377,11 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)
|
|
|
|
|
|
__omap_dm_timer_stop(timer, timer->posted, rate);
|
|
|
|
|
|
- if (!(timer->capability & OMAP_TIMER_ALWON))
|
|
|
- timer->ctx_loss_count =
|
|
|
- omap_pm_get_dev_context_loss_count(&timer->pdev->dev);
|
|
|
+ if (!(timer->capability & OMAP_TIMER_ALWON)) {
|
|
|
+ if (timer->get_context_loss_count)
|
|
|
+ timer->ctx_loss_count =
|
|
|
+ timer->get_context_loss_count(&timer->pdev->dev);
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* Since the register values are computed and written within
|
|
@@ -496,7 +497,8 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
|
|
|
omap_dm_timer_enable(timer);
|
|
|
|
|
|
if (!(timer->capability & OMAP_TIMER_ALWON)) {
|
|
|
- if (omap_pm_get_dev_context_loss_count(&timer->pdev->dev) !=
|
|
|
+ if (timer->get_context_loss_count &&
|
|
|
+ timer->get_context_loss_count(&timer->pdev->dev) !=
|
|
|
timer->ctx_loss_count)
|
|
|
omap_timer_restore_context(timer);
|
|
|
}
|
|
@@ -730,6 +732,7 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
|
|
|
timer->reserved = omap_dm_timer_reserved_systimer(timer->id);
|
|
|
timer->pdev = pdev;
|
|
|
timer->capability = pdata->timer_capability;
|
|
|
+ timer->get_context_loss_count = pdata->get_context_loss_count;
|
|
|
|
|
|
/* Skip pm_runtime_enable for OMAP1 */
|
|
|
if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) {
|