Re: [PATCH 2/5] mmc: dw-mmc: ensure that the card is not busy when changing clock.

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

 



On Thu, Aug 23, 2012 at 12:31 PM, Jaehoon Chung <jh80.chung@xxxxxxxxxxx> wrote:
> To avoid glitches in the card clock output,
> need to check whether card is busy or not.
>
> Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
> ---
>  drivers/mmc/host/dw_mmc.c |   30 ++++++++++++++++++++++++------
>  drivers/mmc/host/dw_mmc.h |    1 +
>  2 files changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 36f98c0..8bef3c2 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -623,6 +623,27 @@ static void mci_send_cmd(struct dw_mci_slot *slot, u32 cmd, u32 arg)
>                 cmd, arg, cmd_status);
>  }
>
> +static void dw_mci_inform_ciu(struct dw_mci_slot *slot)
> +{
> +       struct dw_mci *host = slot->host;
> +       unsigned long timeout = jiffies + msecs_to_jiffies(500);

Is there a reason why this timeout value was chosen? It seems quite long.

> +       u32 ctrl, status;
> +
> +       do {
> +               status = mci_readl(host, STATUS);
> +               if (!(status & SDMMC_DATA_BUSY))
> +                       break;
> +               ctrl = mci_readl(host, CTRL);
> +               ctrl |= SDMMC_CTRL_RESET;
> +               mci_writel(host, CTRL, ctrl);
> +       } while (time_before(jiffies, timeout));
> +
> +       if (status & SDMMC_DATA_BUSY)
> +               dev_err(&slot->mmc->class_dev,"Card is busy..!\n");

The two periods in this message do not need to be there.
--
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