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

Commit ca5c23c3 authored by Paulius Zaleckas's avatar Paulius Zaleckas Committed by David Woodhouse
Browse files

[MTD] XIP: Use generic xip_iprefetch() instead of asm volatile (...)



Untested, but shouldn't break anything... Makes MTD_XIP arch
independent. I guess this is why xip_iprefetch() was made for.

Signed-off-by: default avatarPaulius Zaleckas <paulius.zaleckas@teltonika.lt>
Acked-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent fe69af00
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1071,10 +1071,10 @@ static int __xipram xip_wait_for_operation(
			chip->state = newstate;
			map_write(map, CMD(0xff), adr);
			(void) map_read(map, adr);
			asm volatile (".rep 8; nop; .endr");
			xip_iprefetch();
			local_irq_enable();
			spin_unlock(chip->mutex);
			asm volatile (".rep 8; nop; .endr");
			xip_iprefetch();
			cond_resched();

			/*
+2 −2
Original line number Diff line number Diff line
@@ -723,10 +723,10 @@ static void __xipram xip_udelay(struct map_info *map, struct flchip *chip,
			chip->erase_suspended = 1;
			map_write(map, CMD(0xf0), adr);
			(void) map_read(map, adr);
			asm volatile (".rep 8; nop; .endr");
			xip_iprefetch();
			local_irq_enable();
			spin_unlock(chip->mutex);
			asm volatile (".rep 8; nop; .endr");
			xip_iprefetch();
			cond_resched();

			/*
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ struct mtd_info *cfi_probe(struct map_info *map);
#define xip_allowed(base, map) \
do { \
	(void) map_read(map, base); \
	asm volatile (".rep 8; nop; .endr"); \
	xip_iprefetch(); \
	local_irq_enable(); \
} while (0)

+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ __xipram cfi_read_pri(struct map_info *map, __u16 adr, __u16 size, const char* n

#ifdef CONFIG_MTD_XIP
	(void) map_read(map, base);
	asm volatile (".rep 8; nop; .endr");
	xip_iprefetch();
	local_irq_enable();
#endif