| From c08148833f55ec2671887458ac89be68e8a5b742 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= <mirq-linux@rere.qmqm.pl> |
| Date: Sun, 15 Mar 2020 17:44:25 +0100 |
| Subject: [PATCH] mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2 |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit 53dd0a7cd65edc83b0c243d1c08377c8b876b2ee upstream. |
| |
| SAMA5D2x doesn't drive CMD line if GPIO is used as CD line (at least |
| SAMA5D27 doesn't). Fix this by forcing card-detect in the module |
| if module-controlled CD is not used. |
| |
| Fixed commit addresses the problem only for non-removable cards. This |
| amends it to also cover gpio-cd case. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: 7a1e3f143176 ("mmc: sdhci-of-at91: force card detect value for non removable devices") |
| Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> |
| Acked-by: Adrian Hunter <adrian.hunter@intel.com> |
| Link: https://lore.kernel.org/r/8d10950d9940468577daef4772b82a071b204716.1584290561.git.mirq-linux@rere.qmqm.pl |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/mmc/host/sdhci-of-at91.c b/drivers/mmc/host/sdhci-of-at91.c |
| index 9378d5dc86c8..881f8138e7de 100644 |
| --- a/drivers/mmc/host/sdhci-of-at91.c |
| +++ b/drivers/mmc/host/sdhci-of-at91.c |
| @@ -118,7 +118,8 @@ static void sdhci_at91_reset(struct sdhci_host *host, u8 mask) |
| { |
| sdhci_reset(host, mask); |
| |
| - if (host->mmc->caps & MMC_CAP_NONREMOVABLE) |
| + if ((host->mmc->caps & MMC_CAP_NONREMOVABLE) |
| + || mmc_gpio_get_cd(host->mmc) >= 0) |
| sdhci_at91_set_force_card_detect(host); |
| } |
| |
| @@ -397,8 +398,11 @@ static int sdhci_at91_probe(struct platform_device *pdev) |
| * detection procedure using the SDMCC_CD signal is bypassed. |
| * This bit is reset when a software reset for all command is performed |
| * so we need to implement our own reset function to set back this bit. |
| + * |
| + * WA: SAMA5D2 doesn't drive CMD if using CD GPIO line. |
| */ |
| - if (host->mmc->caps & MMC_CAP_NONREMOVABLE) |
| + if ((host->mmc->caps & MMC_CAP_NONREMOVABLE) |
| + || mmc_gpio_get_cd(host->mmc) >= 0) |
| sdhci_at91_set_force_card_detect(host); |
| |
| pm_runtime_put_autosuspend(&pdev->dev); |
| -- |
| 2.7.4 |
| |