[U-Boot] [PATCH 1/2] mmc: sdhci: set to INT_DATA_END when there are data

Lukasz Majewski
2016-07-12T12:55:14Z

Hi Jaehoon,

> There is no data, it doesn't needs to wait for completing data
> transfer. (It seems that it can be removed.)
> Almost all timeout error is occured from stop command without data.
> After applied this patch, I hope that we don't need to increase
> timeout value anymore.

This patch fixes issue (in a better way) for Odroid U3 write
performance (http://patchwork.ozlabs.org/patch/646932/) and hence
should be used.

>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> ---
> drivers/mmc/sdhci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index 604f18d..0a38a56 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -175,7 +175,8 @@ static int sdhci_send_command(struct mmc *mmc,
> struct mmc_cmd *cmd, flags = SDHCI_CMD_RESP_LONG;
> else if (cmd->resp_type & MMC_RSP_BUSY) {
> flags = SDHCI_CMD_RESP_SHORT_BUSY;
> - mask |= SDHCI_INT_DATA_END;
> + if (data)
> + mask |= SDHCI_INT_DATA_END;
> } else
> flags = SDHCI_CMD_RESP_SHORT;
>

Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>

Test HW: Odroid U3 (Exynos4):

Odroid # ext4load mmc 0:2 0x41000000 dat_31M.img
32505856 bytes read in 1471 ms (21.1 MiB/s)
Odroid # ext4write mmc 0:2 0x41000000 /dat_w55.img 0x1f00000
File System is consistent
update journal finished
32505856 bytes written in 3528 ms (8.8 MiB/s)

Performance improvement is even better than with previously proposed
patches.

Test HW: Odroid XU3 (Exynos5):

ODROID-XU3 # ext4load mmc 0:2 0x41000000 dat_31M.img
32505856 bytes read in 6309 ms (4.9 MiB/s)
ODROID-XU3 # ext4write mmc 0:2 0x41000000 /dat_w1.img 0x1f00000
File System is consistent
update journal finished
32505856 bytes written in 4884 ms (6.3 MiB/s)

--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group