2020-03-13 01:12:38

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 3/3] mmc: tegra: Enable host capability MMC_CAP2_LONG_WAIT_HW_BUSY

Some mmc operations take longer than maximum HW busy detection and
mmc core driver converts R1B type to R1 type response for these
operations based on host max busy timeout and command operation time
and uses SW poll for busy.

Tegra host support long HW busy detection where host waits forever
till the card is busy.

This patch enables MMC_CAP2_LONG_WAIT_HW_BUSY capability for Tegra
host.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
drivers/mmc/host/sdhci-tegra.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 40a221d..9d0f371 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -1583,6 +1583,7 @@ static int sdhci_tegra_probe(struct platform_device *pdev)
if (tegra_host->soc_data->nvquirks & NVQUIRK_ENABLE_DDR50)
host->mmc->caps |= MMC_CAP_1_8V_DDR;

+ host->mmc->caps2 |= MMC_CAP2_LONG_WAIT_HW_BUSY;
tegra_sdhci_parse_dt(host);

tegra_host->power_gpio = devm_gpiod_get_optional(&pdev->dev, "power",
--
2.7.4


2020-03-17 09:54:08

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH v1 3/3] mmc: tegra: Enable host capability MMC_CAP2_LONG_WAIT_HW_BUSY

On 10/03/20 2:13 am, Sowjanya Komatineni wrote:
> Some mmc operations take longer than maximum HW busy detection and
> mmc core driver converts R1B type to R1 type response for these
> operations based on host max busy timeout and command operation time
> and uses SW poll for busy.
>
> Tegra host support long HW busy detection where host waits forever
> till the card is busy.
>
> This patch enables MMC_CAP2_LONG_WAIT_HW_BUSY capability for Tegra
> host.
>
> Signed-off-by: Sowjanya Komatineni <[email protected]>

Acked-by: Adrian Hunter <[email protected]>

> ---
> drivers/mmc/host/sdhci-tegra.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
> index 40a221d..9d0f371 100644
> --- a/drivers/mmc/host/sdhci-tegra.c
> +++ b/drivers/mmc/host/sdhci-tegra.c
> @@ -1583,6 +1583,7 @@ static int sdhci_tegra_probe(struct platform_device *pdev)
> if (tegra_host->soc_data->nvquirks & NVQUIRK_ENABLE_DDR50)
> host->mmc->caps |= MMC_CAP_1_8V_DDR;
>
> + host->mmc->caps2 |= MMC_CAP2_LONG_WAIT_HW_BUSY;
> tegra_sdhci_parse_dt(host);
>
> tegra_host->power_gpio = devm_gpiod_get_optional(&pdev->dev, "power",
>