2018-07-03 07:17:41

by Qing Xia

[permalink] [raw]
Subject: [PATCH v2] mmc: dw_mmc: fix card threshold control configuration

From: x00270170 <[email protected]>

Card write threshold control is supposed to be set since controller
version 2.80a for data write in HS400 mode and data read in
HS200/HS400/SDR104 mode. However the current code returns without
configuring it in the case of data writing in HS400 mode.
Meanwhile the patch fixes that the current code goes to
'disable' when doing data reading in HS400 mode.

Fixes: 7e4bf1bc9543 ("mmc: dw_mmc: add the card write threshold for HS400 mode")
Signed-off-by: Qing Xia <[email protected]>
---
drivers/mmc/host/dw_mmc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 29a1afa..3ee8f57 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1065,8 +1065,8 @@ 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))
- return;
+ host->timing != MMC_TIMING_MMC_HS400)
+ goto disable;

if (data->flags & MMC_DATA_WRITE)
enable = SDMMC_CARD_WR_THR_EN;
@@ -1074,7 +1074,8 @@ 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_UHS_SDR104)
+ host->timing != MMC_TIMING_UHS_SDR104 &&
+ host->timing != MMC_TIMING_MMC_HS400)
goto disable;

blksz_depth = blksz / (1 << host->data_shift);
--
2.8.1



2018-07-03 09:01:48

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH v2] mmc: dw_mmc: fix card threshold control configuration

On 3 July 2018 at 09:06, Qing Xia <[email protected]> wrote:
> From: x00270170 <[email protected]>
>
> Card write threshold control is supposed to be set since controller
> version 2.80a for data write in HS400 mode and data read in
> HS200/HS400/SDR104 mode. However the current code returns without
> configuring it in the case of data writing in HS400 mode.
> Meanwhile the patch fixes that the current code goes to
> 'disable' when doing data reading in HS400 mode.
>
> Fixes: 7e4bf1bc9543 ("mmc: dw_mmc: add the card write threshold for HS400 mode")
> Signed-off-by: Qing Xia <[email protected]>

Thanks, applied/moved to fixes for 4.18!

Kind regards
Uffe

> ---
> drivers/mmc/host/dw_mmc.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 29a1afa..3ee8f57 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1065,8 +1065,8 @@ 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))
> - return;
> + host->timing != MMC_TIMING_MMC_HS400)
> + goto disable;
>
> if (data->flags & MMC_DATA_WRITE)
> enable = SDMMC_CARD_WR_THR_EN;
> @@ -1074,7 +1074,8 @@ 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_UHS_SDR104)
> + host->timing != MMC_TIMING_UHS_SDR104 &&
> + host->timing != MMC_TIMING_MMC_HS400)
> goto disable;
>
> blksz_depth = blksz / (1 << host->data_shift);
> --
> 2.8.1
>

2018-07-15 20:32:32

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH v2] mmc: dw_mmc: fix card threshold control configuration

On Tue, Jul 3, 2018 at 2:00 AM Ulf Hansson <[email protected]> wrote:
>
> On 3 July 2018 at 09:06, Qing Xia <[email protected]> wrote:
> > From: x00270170 <[email protected]>
> >
> > Card write threshold control is supposed to be set since controller
>> [..]
> > Signed-off-by: Qing Xia <[email protected]>
>
> Thanks, applied/moved to fixes for 4.18!

.. and during making my 4.18-rc5 announcement, I saw the odd name in
the shortlog.

Now Qing Xia is forever attributed as "x00270170". Very odd.

Oh well.

Linus

2018-07-16 10:02:36

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH v2] mmc: dw_mmc: fix card threshold control configuration

On 15 July 2018 at 22:31, Linus Torvalds <[email protected]> wrote:
> On Tue, Jul 3, 2018 at 2:00 AM Ulf Hansson <[email protected]> wrote:
>>
>> On 3 July 2018 at 09:06, Qing Xia <[email protected]> wrote:
>> > From: x00270170 <[email protected]>
>> >
>> > Card write threshold control is supposed to be set since controller
>>> [..]
>> > Signed-off-by: Qing Xia <[email protected]>
>>
>> Thanks, applied/moved to fixes for 4.18!
>
> .. and during making my 4.18-rc5 announcement, I saw the odd name in
> the shortlog.
>
> Now Qing Xia is forever attributed as "x00270170". Very odd.
>
> Oh well.

Apologize, that slipped through, somehow. Will check more closely going forward.

Kind regards
Uffe