Re: [PATCH mmc/next v3 0/4] mmc: renesas_sdhi: add support for R-Car Gen3 SDHI DMAC
On Tue, Jul 11, 2017 at 04:43:00PM +0200, Ulf Hansson wrote: > On 21 June 2017 at 16:00, Simon Hormanwrote: > > Hi, > > > > this series adds support for the internal DMAC used by r8a779[56] SoCs. > > This is achieved by adding a new variant of the SDHI driver for this > > DMA controller with compat strings for the r8a779[56] SoCs. > > Compat strings for these SoCs are also removed from the existing SYS DMAC > > variant of the SDHI driver. > > > > Based on mmc/next > > > > Headline performance boost: 9.5MB/s -> 39.7MB/s > > Details below. > > > > Simon Horman (3): > > mmc: tmio, renesas-sdhi: add dataend to DMA ops > > mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC > > mmc: renesas-sdhi: remove gen3 support from SYS-DMAC driver > > > > Yoshihiro Shimoda (1): > > mmc: tmio, renesas-sdhi: add max_{segs,blk_count} to tmio_mmc_data > > > > drivers/mmc/host/Kconfig | 19 ++ > > drivers/mmc/host/Makefile | 8 +- > > drivers/mmc/host/renesas_sdhi.h | 2 + > > drivers/mmc/host/renesas_sdhi_core.c | 2 + > > drivers/mmc/host/renesas_sdhi_internal_dmac.c | 271 > > ++ > > drivers/mmc/host/renesas_sdhi_sys_dmac.c | 29 +-- > > drivers/mmc/host/tmio_mmc.h | 2 + > > drivers/mmc/host/tmio_mmc_core.c | 16 +- > > include/linux/mfd/tmio.h | 2 + > > 9 files changed, 323 insertions(+), 28 deletions(-) > > create mode 100644 drivers/mmc/host/renesas_sdhi_internal_dmac.c > > Thanks, applied patch 1->3 for next! Great, thanks.
Re: [PATCH mmc/next v3 0/4] mmc: renesas_sdhi: add support for R-Car Gen3 SDHI DMAC
On 21 June 2017 at 16:00, Simon Hormanwrote: > Hi, > > this series adds support for the internal DMAC used by r8a779[56] SoCs. > This is achieved by adding a new variant of the SDHI driver for this > DMA controller with compat strings for the r8a779[56] SoCs. > Compat strings for these SoCs are also removed from the existing SYS DMAC > variant of the SDHI driver. > > Based on mmc/next > > Headline performance boost: 9.5MB/s -> 39.7MB/s > Details below. > > Simon Horman (3): > mmc: tmio, renesas-sdhi: add dataend to DMA ops > mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC > mmc: renesas-sdhi: remove gen3 support from SYS-DMAC driver > > Yoshihiro Shimoda (1): > mmc: tmio, renesas-sdhi: add max_{segs,blk_count} to tmio_mmc_data > > drivers/mmc/host/Kconfig | 19 ++ > drivers/mmc/host/Makefile | 8 +- > drivers/mmc/host/renesas_sdhi.h | 2 + > drivers/mmc/host/renesas_sdhi_core.c | 2 + > drivers/mmc/host/renesas_sdhi_internal_dmac.c | 271 > ++ > drivers/mmc/host/renesas_sdhi_sys_dmac.c | 29 +-- > drivers/mmc/host/tmio_mmc.h | 2 + > drivers/mmc/host/tmio_mmc_core.c | 16 +- > include/linux/mfd/tmio.h | 2 + > 9 files changed, 323 insertions(+), 28 deletions(-) > create mode 100644 drivers/mmc/host/renesas_sdhi_internal_dmac.c Thanks, applied patch 1->3 for next! [...] Kind regards Uffe
Re: [PATCH mmc/next v3 0/4] mmc: renesas_sdhi: add support for R-Car Gen3 SDHI DMAC
On Mon, Jun 26, 2017 at 10:16:50PM +0200, Wolfram Sang wrote: > > > this series adds support for the internal DMAC used by r8a779[56] SoCs. > > This is achieved by adding a new variant of the SDHI driver for this > > DMA controller with compat strings for the r8a779[56] SoCs. > > Compat strings for these SoCs are also removed from the existing SYS DMAC > > variant of the SDHI driver. > > Okay, I tested some more today. My conclusion is that the series works > so far. However, it quite often triggers a SDR50 retune with one card. > And that sends an explicit CMD12 which we don't handle well. I always > suspected the code to be imperfect, now I have a proof. So, that is a > good thing but seems unrelated to this series to me. > > Another card does not retune and works flawlessly. > > I will sleep over it, re-test tomorrow and if my findings will get > confirmed, then I'll give my Reviewed-by tags to this series. I could successfully move around big files on Lager/H2 and Salvator-X/M3-W with multiple cards. The md5sum of the files matched. The transfer speedups match Simon's numbers. On M3-W, one card has problems because it wants to retune and that causes problems independently of this DMA driver. M3-W works fine with other cards. The card in question works fine with H2. Tested-by: Wolfram Sangsignature.asc Description: PGP signature
Re: [PATCH mmc/next v3 0/4] mmc: renesas_sdhi: add support for R-Car Gen3 SDHI DMAC
> this series adds support for the internal DMAC used by r8a779[56] SoCs. > This is achieved by adding a new variant of the SDHI driver for this > DMA controller with compat strings for the r8a779[56] SoCs. > Compat strings for these SoCs are also removed from the existing SYS DMAC > variant of the SDHI driver. Okay, I tested some more today. My conclusion is that the series works so far. However, it quite often triggers a SDR50 retune with one card. And that sends an explicit CMD12 which we don't handle well. I always suspected the code to be imperfect, now I have a proof. So, that is a good thing but seems unrelated to this series to me. Another card does not retune and works flawlessly. I will sleep over it, re-test tomorrow and if my findings will get confirmed, then I'll give my Reviewed-by tags to this series. signature.asc Description: PGP signature
[PATCH mmc/next v3 0/4] mmc: renesas_sdhi: add support for R-Car Gen3 SDHI DMAC
Hi, this series adds support for the internal DMAC used by r8a779[56] SoCs. This is achieved by adding a new variant of the SDHI driver for this DMA controller with compat strings for the r8a779[56] SoCs. Compat strings for these SoCs are also removed from the existing SYS DMAC variant of the SDHI driver. Based on mmc/next Headline performance boost: 9.5MB/s -> 39.7MB/s Details below. Simon Horman (3): mmc: tmio, renesas-sdhi: add dataend to DMA ops mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC mmc: renesas-sdhi: remove gen3 support from SYS-DMAC driver Yoshihiro Shimoda (1): mmc: tmio, renesas-sdhi: add max_{segs,blk_count} to tmio_mmc_data drivers/mmc/host/Kconfig | 19 ++ drivers/mmc/host/Makefile | 8 +- drivers/mmc/host/renesas_sdhi.h | 2 + drivers/mmc/host/renesas_sdhi_core.c | 2 + drivers/mmc/host/renesas_sdhi_internal_dmac.c | 271 ++ drivers/mmc/host/renesas_sdhi_sys_dmac.c | 29 +-- drivers/mmc/host/tmio_mmc.h | 2 + drivers/mmc/host/tmio_mmc_core.c | 16 +- include/linux/mfd/tmio.h | 2 + 9 files changed, 323 insertions(+), 28 deletions(-) create mode 100644 drivers/mmc/host/renesas_sdhi_internal_dmac.c -- 2.1.4 Salvator-X/M3-W ES1.0 = With Gen3 DMA Patches - 97ac7011f8d3 (topic/sdhi-gen3-dma-2017-v3) mmc: renesas-sdhi: remove gen3 support from SYS-DMAC driver # dmesg | egrep '(sd|mmc)' [1.419150] sdhci: Secure Digital Host Controller Interface driver [1.425367] sdhci: Copyright(c) Pierre Ossman [1.430237] renesas_sdhi_internal_dmac ee10.sd: Got CD GPIO [1.436224] renesas_sdhi_internal_dmac ee10.sd: Got WP GPIO [1.564915] renesas_sdhi_internal_dmac ee14.sd: mmc0 base at 0xee14 max clock rate 200 MHz [1.574277] renesas_sdhi_internal_dmac ee16.sd: Got CD GPIO [1.580250] renesas_sdhi_internal_dmac ee16.sd: Got WP GPIO [1.595002] sdhci-pltfm: SDHCI platform and OF driver helper [1.643641] renesas_sdhi_internal_dmac ee10.sd: Got CD GPIO [1.649678] renesas_sdhi_internal_dmac ee10.sd: Got WP GPIO [1.780987] renesas_sdhi_internal_dmac ee10.sd: mmc1 base at 0xee10 max clock rate 200 MHz [1.791301] renesas_sdhi_internal_dmac ee16.sd: Got CD GPIO [1.797269] renesas_sdhi_internal_dmac ee16.sd: Got WP GPIO [1.830209] mmc0: new high speed MMC card at address 0001 [1.836044] mmcblk0: mmc0:0001 eMMC 28.8 GiB [1.844818] mmcblk0boot0: mmc0:0001 eMMC partition 1 4.00 MiB [1.854940] mmcblk0boot1: mmc0:0001 eMMC partition 2 4.00 MiB [1.866738] mmcblk0rpmb: mmc0:0001 eMMC partition 3 4.00 MiB [1.877064] mmcblk0: p1 [1.933007] renesas_sdhi_internal_dmac ee16.sd: mmc2 base at 0xee16 max clock rate 200 MHz [2.080957] mmc1: new ultra high speed SDR50 SDHC card at address e624 [2.087962] mmcblk1: mmc1:e624 SU08G 7.40 GiB [2.103240] mmcblk1: p1 [2.188956] mmc2: new ultra high speed SDR50 SDHC card at address 0001 [2.195833] mmcblk2: mmc2:0001 0 29.8 GiB [2.20] mmcblk2: p1 # grep sd /proc/interrupts 100:396 0 GIC-0 197 Level ee10.sd 101:676 0 GIC-0 199 Level ee14.sd 102:394 0 GIC-0 200 Level ee16.sd 178: 0 0 e6053000.gpio 12 Edge ee10.sd cd 197: 0 0 e6054000.gpio 15 Edge ee16.sd cd # cat /sys/devices/platform/soc/ee10.sd/mmc_host/mmc1/mmc1:*/cid 035344535530384780b1b8a11200d300 # dd if=/dev/mmcblk1 of=/dev/null bs=1M count=512 iflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 13.4726 s, 39.8 MB/s # dd if=/dev/urandom of=/dev/mmcblk1 bs=1M count=512 oflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 25.1835 s, 21.3 MB/s # dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=512 oflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 20.9813 s, 25.6 MB/s # cat /sys/devices/platform/soc/ee16.sd/mmc_host/mmc2/mmc2:*/cid 1b534d3030303030103916141700f600 # dd if=/dev/mmcblk2 of=/dev/null bs=1M count=512 iflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 17.4752 s, 30.7 MB/s # dd if=/dev/urandom of=/dev/mmcblk2 bs=1M count=512 oflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 25.9727 s, 20.7 MB/s # dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=512 oflag=direct 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 21.4667 s, 25.0 MB/s # grep sd /proc/interrupts 100: 90886 0 GIC-0 197 Level ee10.sd 101:676 0 GIC-0 199 Level ee14.sd 102: 90884 0 GIC-0 200 Level ee16.sd 178: 0 0 e6053000.gpio 12 Edge ee10.sd cd