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