ARM: msm: use __iomem pointers for MMIO
authorArnd Bergmann <arnd@arndb.de>
Fri, 14 Sep 2012 20:20:43 +0000 (20:20 +0000)
committerArnd Bergmann <arnd@arndb.de>
Wed, 19 Sep 2012 13:19:14 +0000 (15:19 +0200)
ARM is moving to stricter checks on readl/write functions,
so we need to use the correct types everywhere.

Acked-by: David Brown <davidb@codeaurora.org>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-msm/smd.c

index 657be73297db9361830633f01f061a1b9acdca28..f4e475c493025d1403ba89af16ff4606222c18f9 100644 (file)
@@ -52,13 +52,14 @@ static int msm_smd_debug_mask;
 
 struct shared_info {
        int ready;
-       unsigned state;
+       void __iomem *state;
 };
 
 static unsigned dummy_state[SMSM_STATE_COUNT];
 
 static struct shared_info smd_info = {
-       .state = (unsigned) &dummy_state,
+       /* FIXME: not a real __iomem pointer */
+       .state = &dummy_state,
 };
 
 module_param_named(debug_mask, msm_smd_debug_mask,
@@ -796,22 +797,22 @@ void *smem_alloc(unsigned id, unsigned size)
        return smem_find(id, size);
 }
 
-void *smem_item(unsigned id, unsigned *size)
+void __iomem *smem_item(unsigned id, unsigned *size)
 {
        struct smem_shared *shared = (void *) MSM_SHARED_RAM_BASE;
        struct smem_heap_entry *toc = shared->heap_toc;
 
        if (id >= SMEM_NUM_ITEMS)
-               return 0;
+               return NULL;
 
        if (toc[id].allocated) {
                *size = toc[id].size;
-               return (void *) (MSM_SHARED_RAM_BASE + toc[id].offset);
+               return (MSM_SHARED_RAM_BASE + toc[id].offset);
        } else {
                *size = 0;
        }
 
-       return 0;
+       return NULL;
 }
 
 void *smem_find(unsigned id, unsigned size_in)
@@ -857,7 +858,7 @@ static irqreturn_t smsm_irq_handler(int irq, void *data)
 int smsm_change_state(enum smsm_state_item item,
                      uint32_t clear_mask, uint32_t set_mask)
 {
-       unsigned long addr = smd_info.state + item * 4;
+       void __iomem *addr = smd_info.state + item * 4;
        unsigned long flags;
        unsigned state;
 
@@ -943,10 +944,10 @@ int smd_core_init(void)
        /* wait for essential items to be initialized */
        for (;;) {
                unsigned size;
-               void *state;
+               void __iomem *state;
                state = smem_item(SMEM_SMSM_SHARED_STATE, &size);
                if (size == SMSM_V1_SIZE || size == SMSM_V2_SIZE) {
-                       smd_info.state = (unsigned)state;
+                       smd_info.state = state;
                        break;
                }
        }