Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1b478e8 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

ARM: msm: use __iomem pointers for MMIO



ARM is moving to stricter checks on readl/write functions,
so we need to use the correct types everywhere.

Acked-by: default avatarDavid Brown <davidb@codeaurora.org>
Acked-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent df38b24f
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -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;
		}
	}