diff options
author | 2024-02-06 09:39:12 +0100 | |
---|---|---|
committer | 2024-02-06 12:35:44 +0100 | |
commit | cc9432c4fb159a3913e0ce3173b8218cd5bad2e0 (patch) | |
tree | a383fdbc3a10637535af0d94f0891e07f32238ac | |
parent | mmc: sdhci-pci-o2micro: Fix a warm reboot issue that disk can't be detected by BIOS (diff) | |
download | wireguard-linux-cc9432c4fb159a3913e0ce3173b8218cd5bad2e0.tar.xz wireguard-linux-cc9432c4fb159a3913e0ce3173b8218cd5bad2e0.zip |
mmc: slot-gpio: Allow non-sleeping GPIO ro
This change uses the appropriate _cansleep or non-sleeping API for
reading GPIO read-only state. This allows users with GPIOs that
never sleepbeing called in atomic context.
Implement the same mechanism as in commit 52af318c93e97 ("mmc: Allow
non-sleeping GPIO cd").
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240206083912.2543142-1-alexander.stein@ew.tq-group.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/mmc/core/slot-gpio.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c index 2a2d949a9344..39f45c2b6de8 100644 --- a/drivers/mmc/core/slot-gpio.c +++ b/drivers/mmc/core/slot-gpio.c @@ -75,11 +75,15 @@ EXPORT_SYMBOL(mmc_gpio_set_cd_irq); int mmc_gpio_get_ro(struct mmc_host *host) { struct mmc_gpio *ctx = host->slot.handler_priv; + int cansleep; if (!ctx || !ctx->ro_gpio) return -ENOSYS; - return gpiod_get_value_cansleep(ctx->ro_gpio); + cansleep = gpiod_cansleep(ctx->ro_gpio); + return cansleep ? + gpiod_get_value_cansleep(ctx->ro_gpio) : + gpiod_get_value(ctx->ro_gpio); } EXPORT_SYMBOL(mmc_gpio_get_ro); |