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

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

 



On Wed, May 7, 2014 at 1:35 AM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
> 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>

Ulf,
Is your ACK enough to get this to land upstream or does cjb need to
respond it's been accepted?

It doesn't appear to have landed in mmc-next branch yet:
    http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc.git/log/?h=mmc-next

apologies if it appears I am being impatient...but it's been almost a week now.

thanks,
grant

>
>> ---
>>  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