linux/drivers/mmc/host
Ben Dooks 9e506f35b1 sdhci: improve sdhci sdhci_set_adma_desc() code
sdhci_set_adma_desc() is using byte-writes to write data in a specified
order into memory.  Change to using __le16 for the two byte and __le32 for
the four byte cases and use the cpu_to_{le16,le32} to do the conversion
before writing.

This will reduce the size of the code and the number of writes as we no
longer need to chop the data up before writing.

As an example on ARM S3C64XX SoC, in little-endian configuration:

 000000d4 <sdhci_set_adma_desc>:
-      d8:	e1a0c423 	lsr	ip, r3, #8
-      dc:	e1a0ec21 	lsr	lr, r1, #24
-      e0:	e1a04821 	lsr	r4, r1, #16
-      e4:	e1a05421 	lsr	r5, r1, #8
-      e8:	e1a06442 	asr	r6, r2, #8
-      ec:	e5c0c001 	strb	ip, [r0, #1]
-      f0:	e5c0e007 	strb	lr, [r0, #7]
-      f4:	e5c04006 	strb	r4, [r0, #6]
-      f8:	e5c05005 	strb	r5, [r0, #5]
-      fc:	e5c01004 	strb	r1, [r0, #4]
-     100:	e5c06003 	strb	r6, [r0, #3]
-     104:	e5c02002 	strb	r2, [r0, #2]
-     108:	e5c03000 	strb	r3, [r0]
+      d4:	e5801004 	str	r1, [r0, #4]
+      d8:	e1c030b0 	strh	r3, [r0]
+      dc:	e1c020b2 	strh	r2, [r0, #2]

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Cc: Pierre Ossman <pierre@ossman.eu>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-06 11:26:36 -08:00
..
at91_mci.c mmc: at91_mci: Don't include asm/mach/mmc.h 2009-10-22 08:22:25 +09:00
atmel-mci-regs.h atmel-mci: add MCI2 register definitions 2009-06-13 22:43:01 +02:00
atmel-mci.c mmc: atmel-mci: new MCI2 module support in atmel-mci driver 2009-12-15 08:53:35 -08:00
au1xmmc.c MMC: AU1xMMC: Allow platforms to disable host capabilities 2010-02-27 12:53:19 +01:00
bfin_sdh.c mmc: bfin_sdh: set timeout based on actual card data 2010-03-06 11:26:36 -08:00
cb710-mmc.c cb710: use SG_MITER_TO_SG/SG_MITER_FROM_SG 2009-07-31 12:28:46 +02:00
cb710-mmc.h mmc: Driver for CB710/720 memory card reader (MMC part) 2009-06-13 22:42:58 +02:00
davinci_mmc.c davinci: MMC: add support for 8bit MMC cards 2010-03-06 11:26:36 -08:00
imxmmc.c imxmmc: Remove unnecessary semicolons 2009-07-31 12:28:46 +02:00
imxmmc.h imxmmc: use readl/writel 2008-12-16 14:58:17 +01:00
Kconfig mmc: bfin_sdh: drop redundant MMC depend string 2010-03-06 11:26:36 -08:00
Makefile ricoh_mmc: port from driver to pci quirk 2010-03-06 11:26:36 -08:00
mmc_spi.c spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
mmci.c ARM: 5940/2: ARM: MMCI: remove custom DBG macro and printk 2010-02-21 22:21:17 +00:00
mmci.h ARM: 5721/1: MMCI enable the use of a regulator 2009-09-22 20:49:05 +01:00
msm_sdcc.c HTC Dream: mmc compilation fixes 2009-12-10 10:14:34 -08:00
msm_sdcc.h mmc: msm_sdccc: driver for HTC Dream 2009-09-23 07:39:32 -07:00
mvsdio.c mvsdio: fix handling of partial word at the end of PIO transfer 2009-07-20 16:46:34 -07:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c mxcmmc: fix error path in mxcmci_probe 2009-12-15 08:53:34 -08:00
of_mmc_spi.c mmc: fix missing module license declaration in of_mmc_spi.c 2009-11-04 22:43:35 -07:00
omap.c mmci-omap: remove bogus check for host->iclk 2009-12-15 08:53:34 -08:00
omap_hsmmc.c omap_hsmmc: allow compile without regulator framework 2010-02-15 10:03:35 -08:00
pxamci.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
pxamci.h
s3cmci.c s3cmci: convert missed s3c2410_gpio calls to gpiolib calls 2009-12-15 08:53:35 -08:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-of-core.c sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-of-esdhc.c sdhci-of: reorganize driver to support additional hardware 2009-12-17 15:45:31 -08:00
sdhci-of-hlwd.c sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-of.h sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-pci.c sdhci: add support for the SysKonnect CardBus2SDIO adapter 2009-12-15 08:53:34 -08:00
sdhci-pltfm.c sdhci: platform driver for SDHCI 2009-06-13 22:42:59 +02:00
sdhci-s3c.c sdhci: Add SDHCI_QUIRK_NO_MULTIBLOCK quirk 2009-06-21 21:00:58 +02:00
sdhci.c sdhci: improve sdhci sdhci_set_adma_desc() code 2010-03-06 11:26:36 -08:00
sdhci.h sdhci: protect header file against multi inclusion 2009-12-17 15:45:31 -08:00
sdricoh_cs.c Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
tifm_sd.c mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-08 21:37:46 +01:00
tmio_mmc.c mfd: tmio_mmc hardware abstraction for CNF area 2010-01-18 12:30:27 +01:00
tmio_mmc.h mfd: tmio_mmc hardware abstraction for CNF area 2010-01-18 12:30:27 +01:00
via-sdmmc.c mmc: Add new via-sdmmc host controller driver 2009-06-21 21:00:59 +02:00
wbsd.c New mail address for Pierre Ossman 2009-04-08 20:14:54 +02:00
wbsd.h