linux/drivers/mfd
Micky Ching c42deffd5b mmc: rtsx: add support for pre_req and post_req
Add support for non-blocking request, pre_req() runs dma_map_sg() and
post_req() runs dma_unmap_sg(). This patch can increase card read/write
speed, especially for high speed card and slow CPU(for some embedded
platform).

Users can get a great benefit from this patch. if CPU frequency is 800MHz,
SDR104 or DDR50 card read/write speed may increase more than 15%.

test results:
intel i3(800MHz - 2.3GHz), SD card clock 208MHz

performance mode(2.3GHz):
Before:
dd if=/dev/mmcblk0p1 of=/dev/null bs=64k count=1024
67108864 bytes (67 MB) copied, 1.18191 s, 56.8 MB/s
After:
 dd if=/dev/mmcblk0p1 of=/dev/null bs=64k count=1024
67108864 bytes (67 MB) copied, 1.09276 s, 61.4 MB/s

powersave mode(800MHz):
Before:
dd if=/dev/mmcblk0p1 of=/dev/null bs=64k count=1024
67108864 bytes (67 MB) copied, 1.29569 s, 51.8 MB/s
After:
dd if=/dev/mmcblk0p1 of=/dev/null bs=64k count=1024
67108864 bytes (67 MB) copied, 1.11218 s, 60.3 MB/s

Signed-off-by: Micky Ching <micky_ching@realsil.com.cn>
Signed-off-by: Chris Ball <chris@printf.net>
2014-02-22 13:34:20 -05:00
..
88pm80x.c mfd: 88pm80x: Change chip id definition and detection 2013-06-18 09:41:10 +02:00
88pm800.c mfd: marvell: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
88pm805.c mfd: marvell: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
88pm860x-core.c mfd: 88pm860x: Remove redundant of_match_ptr 2013-10-23 16:21:53 +01:00
88pm860x-i2c.c
aat2870-core.c mfd: aat2870: Fix sparse error 2013-10-23 16:20:44 +01:00
ab3100-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ab3100-otp.c mfd: ab3100-otp: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
ab8500-core.c mfd: ab8500: Use irqdomain to map interrupts 2014-01-21 08:27:49 +00:00
ab8500-debugfs.c mfd: ab8500-debugfs: Move dereference after check for NULL 2014-01-06 09:13:17 +00:00
ab8500-gpadc.c mfd: ab8500-gpadc: Add CONFIG_PM_SLEEP to suspend/resume 2013-08-14 18:52:51 +01:00
ab8500-sysctrl.c mfd: ab8500-sysctrl: Let sysctrl driver work without pdata 2013-05-21 23:23:21 +02:00
abx500-core.c mfd: abx500-core: Convert to managed resources for allocating memory 2013-06-13 12:11:41 +02:00
adp5520.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
arizona-core.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
arizona-i2c.c mfd: arizona: Include linux/of.h header 2013-10-23 16:22:06 +01:00
arizona-irq.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
arizona-spi.c mfd: arizona: Include linux/of.h header 2013-10-23 16:22:06 +01:00
arizona.h mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
as3711.c mfd: as3711: Include linux/of.h header 2013-10-23 16:22:03 +01:00
as3722.c mfd: as3722: Add watchdog support 2014-01-06 09:13:30 +00:00
asic3.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
cros_ec_i2c.c mfd: cros ec: i2c: Use consistent function names 2014-01-21 08:13:35 +00:00
cros_ec_spi.c mfd: cros ec: spi: Add delay for raising CS 2014-01-21 08:28:06 +00:00
cros_ec.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
cs5535-mfd.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
da903x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
da9052-core.c mfd: dialog: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
da9052-i2c.c mfd: da9052: Avoid multiwrite mode due to silicon errata 2013-10-23 16:20:32 +01:00
da9052-irq.c mfd: da9052: Introduce da9052-irq.c 2012-11-20 12:21:10 +01:00
da9052-spi.c mfd: da9052: Use spi_get_drvdata() and spi_set_drvdata() 2013-04-09 12:18:16 +02:00
da9055-core.c mfd: dialog: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
da9055-i2c.c mfd: Update DA9055 i2c device id name 2013-07-31 02:02:54 +02:00
da9063-core.c mfd: dialog: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
da9063-i2c.c mfd: da9063: Add Dialog DA9063 core driver 2013-08-20 03:15:52 +02:00
da9063-irq.c mfd: da9063: Add IRQ support 2013-08-20 03:16:00 +02:00
davinci_voicecodec.c mfd: davinci_voicecodec: Provide a regmap for register I/O 2013-09-02 10:27:49 +02:00
db8500-prcmu.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
dbx500-prcmu-regs.h mfd: dbx500: Remove any mention of the BML8580CLK 2013-09-26 11:04:16 +02:00
dm355evm_msp.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ezx-pcap.c mfd: ezx-pcap: Drop devm_free_irq of devm_ allocated irq 2013-10-23 16:21:17 +01:00
htc-egpio.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
htc-i2cpld.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
htc-pasic3.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
intel_msic.c mfd: intel: Constify struct mfd_cell where possible 2014-01-06 09:13:28 +00:00
janz-cmodio.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
jz4740-adc.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
Kconfig mfd: mc13xxx: Remove useless symbol MFD_MC13783 2014-01-21 08:28:09 +00:00
kempld-core.c mfd: Add support for COMe-bHL6 and COMe-cTH6 to Kontron PLD driver 2013-08-14 18:53:19 +01:00
lm3533-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
lm3533-ctrlbank.c
lp3943.c mfd: Add LP3943 MFD driver 2014-01-21 08:27:59 +00:00
lp8788-irq.c
lp8788.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
lpc_ich.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
lpc_sch.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
Makefile mfd: Add LP3943 MFD driver 2014-01-21 08:27:59 +00:00
max8907.c mfd: maxim: Constify struct mfd_cell where possible 2014-01-06 09:13:27 +00:00
max8925-core.c mfd: maxim: Constify struct mfd_cell where possible 2014-01-06 09:13:27 +00:00
max8925-i2c.c mfd: max8925: Remove redundant of_match_ptr 2013-10-23 16:21:49 +01:00
max8997-irq.c
max8997.c mfd: max8997: Use "IS_ENABLED(CONFIG_OF)" for DT code. 2014-01-21 08:28:58 +00:00
max8998-irq.c mfd: max8998: Add irq domain support 2013-06-30 23:29:44 +02:00
max8998.c drivers/mfd/max8998.c: fix pointer-integer size mismatch warning in max8998_i2c_get_driver_data() 2014-01-23 16:36:55 -08:00
max14577.c mfd: max14577: Remove redundant of_match_ptr helper 2014-01-21 08:28:56 +00:00
max77686-irq.c
max77686.c mfd: max77686: Fix regmap resource leak on driver remove 2014-01-21 08:28:13 +00:00
max77693-irq.c mfd: max77693: Fix up bug of wrong interrupt number 2013-11-04 09:41:19 +01:00
max77693.c mfd: max77693: Set proper maximum register for MUIC regmap 2014-01-21 08:28:13 +00:00
mc13xxx-core.c mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mc13xxx-i2c.c mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mc13xxx-spi.c mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mc13xxx.h mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mcp-core.c
mcp-sa11x0.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
menelaus.c mfd: menelaus: Use devm_*() functions 2013-08-20 08:51:32 +01:00
mfd-core.c mfd: Revert "mfd: Always assign of_node in mfd_add_device()" 2014-01-21 08:28:14 +00:00
omap-usb-host.c mfd: omap-usb-host: Raw read and write endian fix 2014-01-06 09:13:22 +00:00
omap-usb-tll.c mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync() 2014-01-21 08:29:01 +00:00
omap-usb.h mfd: omap-usb-tll: Move configuration code to omap_tll_init() 2013-04-09 09:46:23 +02:00
palmas.c mfd: palmas: Remove redundant of_match_ptr 2013-10-23 16:22:01 +01:00
pcf50633-adc.c mfd: pcf50633-adc: Use devm_*() functions 2013-08-20 09:27:35 +01:00
pcf50633-core.c mfd: pcf50633: Correct device name for pcf50633 regulator 2013-12-02 17:58:58 +00:00
pcf50633-gpio.c
pcf50633-irq.c
pm8xxx-irq.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
pm8921-core.c mfd: pm8921: Potential NULL dereference in pm8921_remove() 2013-11-11 11:22:19 +00:00
rc5t583-irq.c mfd: rc5t583: Fix array subscript is above array bounds 2012-11-26 12:10:51 +01:00
rc5t583.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
rdc321x-southbridge.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
retu-mfd.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
rtl8411.c mfd: rtsx: Fix sparse non static symbol warning 2014-01-21 08:28:14 +00:00
rts5209.c mfd: mmc: rtsx: Change default tx phase 2013-08-30 14:24:07 +02:00
rts5227.c For the 3.12 merge window we have one new driver for the DA9063 PMIC 2013-09-07 20:14:19 -07:00
rts5229.c mfd: mmc: rtsx: Change default tx phase 2013-08-30 14:24:07 +02:00
rts5249.c mfd: rtsx: Modify rts5249_optimize_phy 2013-10-23 16:20:59 +01:00
rtsx_pcr.c mmc: rtsx: add support for pre_req and post_req 2014-02-22 13:34:20 -05:00
rtsx_pcr.h mfd: rtsx: Add support for card reader rtl8402 2014-01-21 08:28:11 +00:00
sec-core.c regulator: Updates for v3.14 2014-01-25 13:19:10 -08:00
sec-irq.c mfd: sec: Constify regmap configs and regmap irqs 2014-01-21 08:13:37 +00:00
si476x-cmd.c mfd: si476x: Use get_unaligned_be16() for unaligned be16 loads 2013-05-16 19:15:07 +02:00
si476x-i2c.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
si476x-prop.c mfd: si476x: Add chip properties handling code 2013-04-19 18:37:59 +02:00
sm501.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
smsc-ece1099.c
ssbi.c mfd: ssbi: Mark match table const 2014-01-21 08:28:08 +00:00
sta2x11-mfd.c mfd: sta2x11-mfd: Use named constants for pci_power_t values 2014-01-21 08:29:00 +00:00
stmpe-i2c.c mfd: support stmpe1801 18 bits enhanced port expander 2013-04-09 14:15:58 +02:00
stmpe-spi.c mfd: stmpe: Use spi_get_drvdata() 2013-04-09 12:18:16 +02:00
stmpe.c mfd: stmicro: Constify struct mfd_cell where possible 2014-01-06 09:13:24 +00:00
stmpe.h mfd: stmicro: Constify struct mfd_cell where possible 2014-01-06 09:13:24 +00:00
stw481x.c mfd: Add STw481x driver 2013-10-23 16:21:12 +01:00
syscon.c For the 3.12 merge window we have one new driver for the DA9063 PMIC 2013-09-07 20:14:19 -07:00
t7l66xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tc3589x.c mfd: toshiba: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
tc6387xb.c mfd: toshiba: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
tc6393xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ti_am335x_tscadc.c mfd: input: iio: ti_amm335x: Rework TSC/ADC synchronization 2014-01-07 08:45:00 +00:00
ti-ssp.c mfd: ti-ssp: Fix build 2013-11-27 09:35:11 +01:00
timberdale.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
timberdale.h
tmio_core.c
tps6105x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tps6507x.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps6586x.c mfd: tps6586x: Add version detection 2014-01-21 08:28:01 +00:00
tps65010.c mfd: tps65010: Use devm_*() functions 2013-08-20 08:51:48 +01:00
tps65090.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps65217.c drivers/mfd/tps65217.c: fix pointer-integer size mismatch warning in tps65217_probe() 2014-01-23 16:36:55 -08:00
tps65910.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps65911-comparator.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
tps65912-core.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps65912-i2c.c mfd: tps65912: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
tps65912-irq.c
tps65912-spi.c mfd: tps65912: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
tps80031.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
twl4030-audio.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-irq.c For the 3.11 merge we only have one new MFD driver for the Kontron PLD. 2013-07-10 11:10:27 -07:00
twl4030-madc.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-power.c mfd: twl4030-power: Staticize local functions 2013-08-01 09:55:33 +01:00
twl6030-irq.c mfd: twl6030: Fix endianness problem in IRQ handler 2014-01-21 08:28:57 +00:00
twl6040.c mfd: twl6040: Fix sparse non static symbol warning 2014-01-21 08:28:56 +00:00
twl-core.c Immutable branch between MFD and ASoC due for the v3.14 merge window 2014-01-21 08:26:12 +00:00
twl-core.h
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00-core: Fix error return code in ucb1x00_probe() 2013-10-23 16:20:49 +01:00
ucb1x00-ts.c
ucb1400_core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
vexpress-config.c mfd: vexpress: Handle pending config transactions 2013-04-26 16:10:03 +02:00
vexpress-sysreg.c mfd: vexpress: Make the driver optional for arm and arm64 2013-06-19 11:32:00 +02:00
viperboard.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
vx855.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
wl1273-core.c mfd: wl1273: Use devm_*() functions 2013-08-20 08:51:58 +01:00
wm831x-auxadc.c
wm831x-core.c mfd: wolfson: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
wm831x-i2c.c mfd: wm831x: Use PM ops for shutdown 2014-01-21 08:27:51 +00:00
wm831x-irq.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm831x-otp.c
wm831x-spi.c mfd: wm831x: Use PM ops for shutdown 2014-01-21 08:27:51 +00:00
wm5102-tables.c mfd: arizona: Mark missing AOD registers as volatile 2013-10-23 16:21:46 +01:00
wm5110-tables.c MFD changes due for the v3.14 merge window 2014-01-21 10:58:17 -08:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8994-core.c mfd: wolfson: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
wm8994-irq.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8994-regmap.c
wm8994.h
wm8997-tables.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00