arch/arm/mach-omap2/timer.c pokes around inside the hwmod data
structures.  Since the hwmod data structures are about to change, this
code will break.  This patch modifies the timer code to use
recently-added hwmod functions instead.

Signed-off-by: Paul Walmsley <[email protected]>
Cc: Tony Lindgren <[email protected]>
---
 arch/arm/mach-omap2/timer.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 5c9acea..f073016 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -145,8 +145,10 @@ static int __init omap_dm_timer_init_one(struct 
omap_dm_timer *timer,
 {
        char name[10]; /* 10 = sizeof("gptXX_Xck0") */
        struct omap_hwmod *oh;
+       struct resource irq_rsrc, mem_rsrc;
        size_t size;
        int res = 0;
+       int r;
 
        sprintf(name, "timer%d", gptimer_id);
        omap_hwmod_setup_one(name);
@@ -154,9 +156,16 @@ static int __init omap_dm_timer_init_one(struct 
omap_dm_timer *timer,
        if (!oh)
                return -ENODEV;
 
-       timer->irq = oh->mpu_irqs[0].irq;
-       timer->phys_base = oh->slaves[0]->addr->pa_start;
-       size = oh->slaves[0]->addr->pa_end - timer->phys_base;
+       r = omap_hwmod_get_resource_byname(oh, IORESOURCE_IRQ, NULL, &irq_rsrc);
+       if (r)
+               return -ENXIO;
+       timer->irq = irq_rsrc.start;
+
+       r = omap_hwmod_get_resource_byname(oh, IORESOURCE_MEM, NULL, &mem_rsrc);
+       if (r)
+               return -ENXIO;
+       timer->phys_base = mem_rsrc.start;
+       size = mem_rsrc.end - mem_rsrc.start;
 
        /* Static mapping, never released */
        timer->io_base = ioremap(timer->phys_base, size);


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to