[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPDyKFpi5tN__ue+j+QREp-KFEE_X6ib2MQY5oVm8q6m+sDwkA@mail.gmail.com>
Date: Mon, 2 Jul 2018 16:37:42 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: "Huanlin.Ke" <chgokhl@...il.com>
Cc: kehuanlin@...econe.net, zhangbo_a <zhangbo_a@...omi.com>,
Jaehoon Chung <jh80.chung@...sung.com>,
"open list:SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER"
<linux-mmc@...r.kernel.org>,
open list <linux-kernel@...r.kernel.org>,
Qing Xia <xiaqing17@...ilicon.com>
Subject: Re: [PATCH] mmc: dw_mmc: fix errors to use card read/write threshold
for HS400 mode
On 29 June 2018 at 15:59, Huanlin.Ke <chgokhl@...il.com> wrote:
> The card write threshold is applicable for HS400 mode only, so it should
> return back except HS400 timing mode.
>
> The card read threshold is also required for HS400 mode as the host
> controller incorrectly samples the data if the card clock stops within
> a block transfer.
>
> Signed-off-by: Huanlin.Ke <kehuanlin@...econe.net>
> Signed-off-by: zhangbo_a <zhangbo_a@...omi.com>
Thanks for your patch!
I have just applied an earlier version of the patch, posted by Qing
Xia from Hisilicon.
https://patchwork.kernel.org/patch/10434913/
If it works for you as well, I can add your tested by tags for it.
Also, can you perhaps point me to a commit which introduced the problem?
Kind regards
Uffe
> ---
> drivers/mmc/host/dw_mmc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 623f4d2..d4e6983 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1065,7 +1065,7 @@ static void dw_mci_ctrl_thld(struct dw_mci *host, struct mmc_data *data)
> * It's used when HS400 mode is enabled.
> */
> if (data->flags & MMC_DATA_WRITE &&
> - !(host->timing != MMC_TIMING_MMC_HS400))
> + (host->timing != MMC_TIMING_MMC_HS400))
> return;
>
> if (data->flags & MMC_DATA_WRITE)
> @@ -1074,6 +1074,7 @@ static void dw_mci_ctrl_thld(struct dw_mci *host, struct mmc_data *data)
> enable = SDMMC_CARD_RD_THR_EN;
>
> if (host->timing != MMC_TIMING_MMC_HS200 &&
> + host->timing != MMC_TIMING_MMC_HS400 &&
> host->timing != MMC_TIMING_UHS_SDR104)
> goto disable;
>
> --
> 2.7.4
>
Powered by blists - more mailing lists