|
@@ -509,6 +509,7 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
|
|
|
|
|
|
timer->id = pdev->id;
|
|
|
timer->irq = irq->start;
|
|
|
+ timer->reserved = pdata->reserved;
|
|
|
timer->pdev = pdev;
|
|
|
|
|
|
/* Skip pm_runtime_enable for OMAP1 */
|
|
@@ -517,6 +518,12 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
|
|
|
pm_runtime_irq_safe(&pdev->dev);
|
|
|
}
|
|
|
|
|
|
+ if (!timer->reserved) {
|
|
|
+ pm_runtime_get_sync(&pdev->dev);
|
|
|
+ __omap_dm_timer_init_regs(timer);
|
|
|
+ pm_runtime_put(&pdev->dev);
|
|
|
+ }
|
|
|
+
|
|
|
/* add the timer element to the list */
|
|
|
spin_lock_irqsave(&dm_timer_lock, flags);
|
|
|
list_add_tail(&timer->node, &omap_timer_list);
|