mmc: slot-gpio: Allow non-sleeping GPIO ro
commit cc9432c4fb159a3913e0ce3173b8218cd5bad2e0 upstream.
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 52af318c93
("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
13b01aedb5
commit
2243781402
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue