diff options
| -rw-r--r-- | arch/arm/mach-omap1/timer.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/timer.c | 3 | ||||
| -rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 8 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/dmtimer.h | 3 | 
4 files changed, 5 insertions, 10 deletions
diff --git a/arch/arm/mach-omap1/timer.c b/arch/arm/mach-omap1/timer.c index 64c65bcb2d6..b4bf48c188f 100644 --- a/arch/arm/mach-omap1/timer.c +++ b/arch/arm/mach-omap1/timer.c @@ -141,6 +141,7 @@ static int __init omap1_dm_timer_init(void)  		pdata->set_timer_src = omap1_dm_timer_set_src;  		pdata->needs_manual_reset = 1; +		pdata->timer_capability = OMAP_TIMER_ALWON;  		ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));  		if (ret) { diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 8c046d9d8ae..9b6880a3379 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -462,7 +462,6 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)  	struct dmtimer_platform_data *pdata;  	struct platform_device *pdev;  	struct omap_timer_capability_dev_attr *timer_dev_attr; -	struct powerdomain *pwrdm;  	pr_debug("%s: %s\n", __func__, oh->name); @@ -495,8 +494,6 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)  	if (timer_dev_attr)  		pdata->timer_capability = timer_dev_attr->timer_capability; -	pwrdm = omap_hwmod_get_pwrdm(oh); -	pdata->loses_context = pwrdm_can_ever_lose_context(pwrdm);  #ifdef CONFIG_PM  	pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count;  #endif diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 30742d8e681..7aa12785e23 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)  	omap_dm_timer_enable(timer); -	if (timer->loses_context) { +	if (!(timer->capability & OMAP_TIMER_ALWON)) {  		u32 ctx_loss_cnt_after =  			timer->get_context_loss_count(&timer->pdev->dev);  		if (ctx_loss_cnt_after != timer->ctx_loss_count) @@ -374,7 +374,8 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)  	__omap_dm_timer_stop(timer, timer->posted, rate); -	if (timer->loses_context && timer->get_context_loss_count) +	if (!(timer->capability & OMAP_TIMER_ALWON) && +			timer->get_context_loss_count)  		timer->ctx_loss_count =  			timer->get_context_loss_count(&timer->pdev->dev); @@ -447,7 +448,7 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,  	omap_dm_timer_enable(timer); -	if (timer->loses_context) { +	if (!(timer->capability & OMAP_TIMER_ALWON)) {  		u32 ctx_loss_cnt_after =  			timer->get_context_loss_count(&timer->pdev->dev);  		if (ctx_loss_cnt_after != timer->ctx_loss_count) @@ -692,7 +693,6 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)  	timer->irq = irq->start;  	timer->reserved = omap_dm_timer_reserved_systimer(timer->id);  	timer->pdev = pdev; -	timer->loses_context = pdata->loses_context;  	timer->get_context_loss_count = pdata->get_context_loss_count;  	timer->capability = pdata->timer_capability; diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h index 362cf97d721..0a7ed31954e 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 {  struct dmtimer_platform_data {  	int (*set_timer_src)(struct platform_device *pdev, int source);  	u32 needs_manual_reset:1; -	bool loses_context; -  	int (*get_context_loss_count)(struct device *dev);  	u32 timer_capability;  }; @@ -264,7 +262,6 @@ struct omap_dm_timer {  	unsigned reserved:1;  	unsigned posted:1;  	struct timer_regs context; -	bool loses_context;  	int ctx_loss_count;  	int revision;  	u32 capability;  |