kernel-hacking-2024-linux-s.../drivers/mmc/host
ben@fluff.org.uk 18280fff66 s3cmci: fix continual accesses to host->pio_ptr
The s3cmci driver uses the host->pio_ptr field to
point to the current position into the buffer for data
transfer. During the transfers it does the following:

	while (fifo_words--)
		*(host->pio_ptr++) = readl(from_ptr);

This is inefficent, as host->pio_ptr is not used in any
other part of the transfer but the compiler emits code
which does the following:

	while (fifo_words--) {
		u32 *ptr = host->pio_ptr;
		*ptr = readl(from_ptr);
		ptr++;
		host->pio_ptr = ptr;
	}

This is obviously a waste of a load and store each time
around the loop, which could be up to 16 times depending
on how much needs to be transfered.

Move the ptr accesses to outside the while loop so that
we do not end up reloading/re-writing the pointer.

Note, this seems to make the code 16 bytes larger.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
2008-10-15 18:05:48 +02:00
..
at91_mci.c mmc: at91_mci: don't use coherent dma buffers 2008-09-02 19:21:38 -07:00
atmel-mci-regs.h atmel-mci: Platform code for supporting multiple mmc slots 2008-10-05 20:39:21 +02:00
atmel-mci.c atmel-mci: Initialize BLKR before sending data transfer command 2008-10-06 14:26:24 -07:00
au1xmmc.c au1xmmc: raise segment size limit. 2008-08-01 19:04:26 +02:00
imxmmc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
imxmmc.h
Kconfig Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/atmel-mci-2.6.28 2008-10-12 11:08:46 +02:00
Makefile mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
mmc_spi.c MMC: Use timeout values from CSR 2008-10-12 11:04:38 +02:00
mmci.c
mmci.h
omap.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxamci.c [ARM] pxa: make cpu_is_pxa2* macros more consistent 2008-09-25 09:54:55 +01:00
pxamci.h
ricoh_mmc.c
s3cmci.c s3cmci: fix continual accesses to host->pio_ptr 2008-10-15 18:05:48 +02:00
s3cmci.h s3cmci: Support transfers which are not multiple of 32 bits. 2008-10-15 18:05:14 +02:00
sdhci-pci.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-13 17:13:56 +01:00
sdhci.c sdhci: 'scratch' may be used uninitialized 2008-10-12 11:04:36 +02:00
sdhci.h sdhci: force high speed capability on some controllers 2008-10-12 11:04:32 +02:00
sdricoh_cs.c sdricoh_cs: removed unused #include <version.h> 2008-08-17 20:01:35 +02:00
tifm_sd.c
tmio_mmc.c mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
tmio_mmc.h tmio_mmc: fix compilation with debug enabled 2008-09-20 12:11:13 +02:00
wbsd.c
wbsd.h