Here is my RFC to support DMA with the i2c-sh_mobile core. DMA works nicely with my tests so far and we save 1 interrupt per transferred byte, yay! DMA is opt-in, so if setting it up fails, we will fall back to PIO. The threshold for selecting DMA is still under test, but probably good enough already. The major issue currently: This driver uses subsys_initcall() but at that time DMA is not available, and there is no deferred probe for DMA. So, switching to module_init() makes DMA work, but this may cause side-effects for older boards which rely on I2C being available early (to control some PMIC, for example). This needs some more investigation. Also, the driver (like all I2C DMA drivers currently) assumes that i2c message buffers are DMA capable. This is not always true and might need some assistance from the I2C core. Other than that, please test, review, comment. The series is based on renesas-devel-20141030-v3.18-rc2 with Laurent's series "[PATCH v4 0/5] R-Car Gen2 DMA Controller driver" on top of it. A git tree can be found here: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/i2c-shmobile-dma-experimental Thanks, Wolfram Wolfram Sang (3): i2c: sh_mobile: add DMA support ARM: shmobile: r8a7790: add DMA nodes for IIC ARM: shmobile: r8a7791: add DMA nodes for IIC .../devicetree/bindings/i2c/i2c-sh_mobile.txt | 5 + arch/arm/boot/dts/r8a7790.dtsi | 8 + arch/arm/boot/dts/r8a7791.dtsi | 6 + drivers/i2c/busses/i2c-sh_mobile.c | 203 +++++++++++++++++++-- 4 files changed, 203 insertions(+), 19 deletions(-) -- 2.0.0 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html