Re: [PATCH] mmc: sdhci: remove mdelay in eMMC tuning

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

 



On 7 May 2014 03:52, Nick Sanders <nsanders@xxxxxxxxxxxx> wrote:
> This patch removes an unneccesary 1ms mdelay in the HS200 tuning
> loop, called 40 times per retuning. Currently this causes a latency
> of >40ms on any emmc accesses triggering wake from runtime PM,
> which can occur for a significant portion of reads on a mostly idle system.

Aha, so you are actually using "MMC_CAP_RUNTIME_RESUME" here - cool :-).

I suppose those patches that enables the "cap" has not reached
mainline yet. Any plans on sending them?

>
> The delay is left in place for SD Cards, which use
> MMC_SEND_TUNING_BLOCK rather than MMC_SEND_TUNING_BLOCK_HS200.
> I'm not able to find evidence that this is required for SD in the
> specs I have access to, however this delay has been present from
> initial checkin for SD so I have preserved the original behavior for
> compatibility.
>
> This has been verified to fix observed glitching on local audio
> playback and recording on apps with inbuilt assumptions on storage
> latency.
>
> Signed-off-by: Nick Sanders <nsanders@xxxxxxxxxxxx>
> Reviewed-by: Grant Grundler <grundler@xxxxxxxxxxxx>
> Reviewed-by: Doug Anderson <dianders@xxxxxxxxxxxx>

Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>

> ---
>  drivers/mmc/host/sdhci.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index df6d85a..05ffac2 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1987,7 +1987,10 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
>                 ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
>                 tuning_loop_counter--;
>                 timeout--;
> -               mdelay(1);
> +
> +               /* eMMC spec does not require a delay between tuning cycles */
> +               if (opcode == MMC_SEND_TUNING_BLOCK)
> +                       mdelay(1);
>         } while (ctrl & SDHCI_CTRL_EXEC_TUNING);
>
>         /*
> --
> 1.9.1.423.g4596e3a
>
--
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