[RFC PATCH v8 0/10] Add external dma support for Synopsys MSHC

Shawn Lin shawn.lin at rock-chips.com
Mon Oct 5 02:56:00 PDT 2015


On 2015/10/5 9:36, Jaehoon Chung wrote:
> Hi, Shawn.
>
> On 10/02/2015 06:49 PM, Shawn Lin wrote:
>> On 2015/10/1 17:14, Jaehoon Chung wrote:
>>> Dear, All.
>>>
>>> I will apply patch 01-03 at my repository on today.
>>> But i don't know better how i do about other patches relevant to config file.
>>>
>>
>> Thanks, Jaehoon. :)
>>
>> I guess it would be acceptable to pick the config changes, already they were acked by the soc maintainers, via dw_mmc tree when ulf merge dw_mmc tree into his mmc-tree.
>
> Some patches didn't get the maintainer's acked-by.
> I will wait for that..until this week. How about?
>

No problem, take your time. :)

> Best Regards,
> Jaehoon Chung
>
>>
>>
>>> Best Regards,
>>> Jaehoon Chung
>>>
>>> On 09/16/2015 03:40 PM, Shawn Lin wrote:
>>>> Synopsys DesignWare mobile storage host controller supports three
>>>> types of transfer mode: pio, internal dma and external dma. However,
>>>> dw_mmc can only supports pio and internal dma now. Thus some platforms
>>>> using dw-mshc integrated with generic dma can't work in dma mode. So we
>>>> submit this patch to achieve it.
>>>>
>>>> And the config option, CONFIG_MMC_DW_IDMAC, was added by Will Newton
>>>> (commit:f95f3850) for the first version of dw_mmc and never be touched since
>>>> then. At that time dt-bindings hadn't been introduced into dw_mmc yet means
>>>> we should select CONFIG_MMC_DW_IDMAC to enable internal dma mode at compile
>>>> time. Nowadays, device-tree helps us to support a variety of boards with one
>>>> kernel. That's why we need to remove it and decide the transfer mode by reading
>>>> dw_mmc's HCON reg at runtime.
>>>>
>>>> This RFC patch needs lots of ACKs. I know it's hard, but it does need someone
>>>> to make the running.
>>>>
>>>> Patch does the following things:
>>>> - remove CONFIG_MMC_DW_IDMAC config option
>>>> - add bindings for edmac used by synopsys-dw-mshc
>>>>     at runtime
>>>> - add edmac support for synopsys-dw-mshc
>>>>
>>>> Patch is based on next of git://git.linaro.org/people/ulf.hansson/mmc
>>>>
>>>> Test emmc throughput on my platform with edmac support and without edmac support(pio only)
>>>> iozone -L64 -S32 -azecwI -+n -r4k -r64k -r128k -s1g -i0 -i1 -i2 -f datafile -Rb out.xls > /mnt/result.txt
>>>> (light cpu loading, Direct IO, fixed line size, all pattern recycle, 1GB data in total)
>>>>    ___________________________________________________________
>>>> |                   external dma mode                       |
>>>> |-----------------------------------------------------------|
>>>> |blksz | Random Read | Random Write | Seq Read   | Seq Write|
>>>> |-----------------------------------------------------------|
>>>> |4kB   |  13953kB/s  |    8602kB/s  | 13672kB/s  |  9785kB/s|
>>>> |-----------------------------------------------------------|
>>>> |64kB  |  46058kB/s  |   24794kB/s  | 48058kB/s  | 25418kB/s|
>>>> |-----------------------------------------------------------|
>>>> |128kB |  57026kB/s  |   35117kB/s  | 57375kB/s  | 35183kB/s|
>>>> |-----------------------------------------------------------|
>>>>                              VS
>>>>    ___________________________________________________________
>>>> |                          pio mode                         |
>>>> |-----------------------------------------------------------|
>>>> |blksz | Random Read  | Random Write | Seq Read  | Seq Write|
>>>> |-----------------------------------------------------------|
>>>> |4kB   |  11720kB/s   |    8644kB/s  | 11549kB/s |  9624kB/s|
>>>> |-----------------------------------------------------------|
>>>> |64kB  |  21869kB/s   |   24414kB/s  | 22031kB/s | 27986kB/s|
>>>> |-----------------------------------------------------------|
>>>> |128kB |  23718kB/s   |   34495kB/s  | 24698kB/s | 34637kB/s|
>>>> |-----------------------------------------------------------|
>>>>
>>>>
>>>> Changes in v8:
>>>> - remove trans_mode variable
>>>> - remove unnecessary dma_ops check
>>>> - remove unnecessary comment
>>>> - fix coding style based on latest ulf's next
>>>> - add Acked-by: Jaehoon Chung <jh80.chung at samsung.com>
>>>>     for HCON's changes
>>>>
>>>> Changes in v7:
>>>> - rebased on Ulf's next
>>>> - combine condition state
>>>> - elaborate more about DMA_INTERFACE
>>>> - define some macro for DMA_INERFACE value
>>>> - spilt HCON ops' changes into another patch
>>>>
>>>> Changes in v6:
>>>> - add trans_mode condition for IDMAC initialization
>>>>     suggested by Heiko
>>>> - re-test my patch on rk3188 platform and update commit msg
>>>> - update performance of pio vs edmac in cover letter
>>>>
>>>> Changes in v5:
>>>> - add the title of cover letter
>>>> - fix typo of comment
>>>> - add macro for reading HCON register
>>>> - add "Acked-by: Krzysztof Kozlowski <k.kozlowski at samsung.com>" for exynos_defconfig patch
>>>> - add "Acked-by: Vineet Gupta <vgupta at synopsys.com>" for axs10x_defconfig patch
>>>> - add "Acked-by: Govindraj Raja <govindraj.raja at imgtec.com>" and
>>>>     "Acked-by: Ralf Baechle <ralf at linux-mips.org>" for pistachio_defconfig patch
>>>> - add "Acked-by: Joachim Eastwood <manabian at gmail.com>" for lpc18xx_defconfig patch
>>>> - add "Acked-by: Wei Xu <xuwei5 at hisilicon.com>" for hisi_defconfig patch
>>>> - rebase on "https://github.com/jh80chung/dw-mmc.git tags/dw-mmc-for-ulf-v4.2" for merging easily
>>>>
>>>> Changes in v4:
>>>> - remove "host->trans_mode" and use "host->use_dma" to indicate
>>>>     transfer mode.
>>>> - remove all bt-bindings' changes since we don't need new properities.
>>>> - check transfer mode at runtime by reading HCON reg
>>>> - spilt defconfig changes for each sub-architecture
>>>> - fix the title of cover letter
>>>> - reuse some code for reducing code size
>>>>
>>>> Changes in v3:
>>>> - choose transfer mode at runtime
>>>> - remove all CONFIG_MMC_DW_IDMAC config option
>>>> - add supports-idmac property for some platforms
>>>>
>>>> Changes in v2:
>>>> - Fix typo of dev_info msg
>>>> - remove unused dmach from declaration of dw_mci_dma_slave
>>>>
>>>> Shawn Lin (10):
>>>>     mmc: dw_mmc: Add external dma interface support
>>>>     mmc: dw_mmc: use macro for HCON register operations
>>>>     Documentation: synopsys-dw-mshc: add bindings for idmac and edmac
>>>>     mips: pistachio_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arc: axs10x_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arm: exynos_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arm: hisi_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arm: lpc18xx_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arm: multi_v7_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>     arm: zx_defconfig: remove CONFIG_MMC_DW_IDMAC
>>>>
>>>>    .../devicetree/bindings/mmc/synopsys-dw-mshc.txt   |  25 ++
>>>>    arch/arc/configs/axs101_defconfig                  |   1 -
>>>>    arch/arc/configs/axs103_defconfig                  |   1 -
>>>>    arch/arc/configs/axs103_smp_defconfig              |   1 -
>>>>    arch/arm/configs/exynos_defconfig                  |   1 -
>>>>    arch/arm/configs/hisi_defconfig                    |   1 -
>>>>    arch/arm/configs/lpc18xx_defconfig                 |   1 -
>>>>    arch/arm/configs/multi_v7_defconfig                |   1 -
>>>>    arch/arm/configs/zx_defconfig                      |   1 -
>>>>    arch/mips/configs/pistachio_defconfig              |   1 -
>>>>    drivers/mmc/host/Kconfig                           |  11 +-
>>>>    drivers/mmc/host/dw_mmc-pltfm.c                    |   2 +
>>>>    drivers/mmc/host/dw_mmc.c                          | 272 +++++++++++++++++----
>>>>    drivers/mmc/host/dw_mmc.h                          |   9 +
>>>>    include/linux/mmc/dw_mmc.h                         |  23 +-
>>>>    15 files changed, 276 insertions(+), 75 deletions(-)
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>


-- 
Best Regards
Shawn Lin




More information about the Linux-rockchip mailing list