diff options
Diffstat (limited to 'arch/arm/mach-msm')
| -rw-r--r-- | arch/arm/mach-msm/smd.c | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/arm/mach-msm/smd.c b/arch/arm/mach-msm/smd.c index 84183ed2ef7..c5a2eddc6cd 100644 --- a/arch/arm/mach-msm/smd.c +++ b/arch/arm/mach-msm/smd.c @@ -49,13 +49,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, @@ -789,22 +790,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) @@ -850,7 +851,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; @@ -936,10 +937,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;  		}  	}  |