2013/8/9 Haijun Zhang <haijun.zh...@freescale.com>:
> When command with busy flags send and also data busy end interrupt
> will be generate, the command will be finished when data transfer
> complete or data busy state end, Sometimes this will expend more than
> 10*Hz time to finish this command, so we should wait longer to detect
> command complete timeout err.
>
> Signed-off-by: Haijun Zhang <haijun.zh...@freescale.com>
> ---
> changes for V2:
>         - Correct the timer
>
>  drivers/mmc/host/sdhci.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index a78bd4f..8888578 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -986,6 +986,7 @@ static void sdhci_send_command(struct sdhci_host *host, 
> struct mmc_command *cmd)
>         int flags;
>         u32 mask;
>         unsigned long timeout;
> +       u32 timer = 10;
>
>         WARN_ON(host->cmd);
>
> @@ -1014,7 +1015,18 @@ static void sdhci_send_command(struct sdhci_host 
> *host, struct mmc_command *cmd)
>                 mdelay(1);
>         }
>
> -       mod_timer(&host->timer, jiffies + 10 * HZ);
> +       /*
> +        * When send a commmand with busy state and also the data busy end
> +        * interrupt can be generate, the command will be finished when date
> +        * transfer complete or busy state end. Sometimes this will expend
> +        * more than 10*HZ, In this case whe should wait longer to detect
> +        * command complete timeout err.
> +        */
> +       if ((host->cmd->flags & MMC_RSP_BUSY) &&
> +                       !(host->quirks & SDHCI_QUIRK_NO_BUSY_IRQ))
> +               timer = 1000;
> +
> +       mod_timer(&host->timer, jiffies + timer * HZ);

haojun, do you mean we need to wait for 1 minutes and 40 seconds for
timeout? it seems it is too large for a kernel.

>
>         host->cmd = cmd;
>
> --
> 1.8.0
>

-barry
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to