Re: [PATCH] mmc: sdhci: Fix sdhci_card_busy()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 23 June 2016 at 13:00, Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
> host->card_busy() was introduced for SD voltage switching which checks all
> 4 data lines.
>
> Increasingly, host->card_busy is being used to poll the the busy signal
> which is only data line 0 (DAT[0]).
>
> The current logic in sdhci_card_busy() does not work in that case because
> it returns false if any of the data lines is high.  It also ignores
> possibilities:
>         - data lines 1-3 are not connected and could show at any level
>         - data lines 1-2 can be used by SDIO for other purposes
>
> According to the SD specification, it is OK to check any of the data lines
> for voltage switching, so change to use DAT[0] only.
>
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> ---
>
>
>  It would probably be better for this patch to go before
>  "mmc: mmc: Use ->card_busy() to detect busy cards in __mmc_switch()"
>

Thanks, applied for next and prior the above mentioned patch!
Kind regards
Uffe

>
>  drivers/mmc/host/sdhci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index ec14b5d61fc6..15bdbcb99170 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1811,10 +1811,10 @@ static int sdhci_card_busy(struct mmc_host *mmc)
>         struct sdhci_host *host = mmc_priv(mmc);
>         u32 present_state;
>
> -       /* Check whether DAT[3:0] is 0000 */
> +       /* Check whether DAT[0] is 0 */
>         present_state = sdhci_readl(host, SDHCI_PRESENT_STATE);
>
> -       return !(present_state & SDHCI_DATA_LVL_MASK);
> +       return !(present_state & SDHCI_DATA_0_LVL_MASK);
>  }
>
>  static int sdhci_prepare_hs400_tuning(struct mmc_host *mmc, struct mmc_ios *ios)
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux