mmc: slot-gpio: Add a function to enable/disable card detect IRQ wakeup
Commit 03dbaa04a2
("mmc: slot-gpio: Add support to enable irq wake on
cd_irq") enabled wakeup at initialization. However drivers may wish to
enable and disable based on different criteria. Add a helper function
mmc_gpio_set_cd_wake() to make it easy for drivers to do that.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:

کامیت شده توسط
Ulf Hansson

والد
d5d568fad9
کامیت
36f1d7e817
@@ -2655,8 +2655,7 @@ void mmc_start_host(struct mmc_host *host)
|
||||
void mmc_stop_host(struct mmc_host *host)
|
||||
{
|
||||
if (host->slot.cd_irq >= 0) {
|
||||
if (host->slot.cd_wake_enabled)
|
||||
disable_irq_wake(host->slot.cd_irq);
|
||||
mmc_gpio_set_cd_wake(host, false);
|
||||
disable_irq(host->slot.cd_irq);
|
||||
}
|
||||
|
||||
|
@@ -154,6 +154,27 @@ void mmc_gpiod_request_cd_irq(struct mmc_host *host)
|
||||
}
|
||||
EXPORT_SYMBOL(mmc_gpiod_request_cd_irq);
|
||||
|
||||
int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!(host->caps & MMC_CAP_CD_WAKE) ||
|
||||
host->slot.cd_irq < 0 ||
|
||||
on == host->slot.cd_wake_enabled)
|
||||
return 0;
|
||||
|
||||
if (on) {
|
||||
ret = enable_irq_wake(host->slot.cd_irq);
|
||||
host->slot.cd_wake_enabled = !ret;
|
||||
} else {
|
||||
disable_irq_wake(host->slot.cd_irq);
|
||||
host->slot.cd_wake_enabled = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(mmc_gpio_set_cd_wake);
|
||||
|
||||
/* Register an alternate interrupt service routine for
|
||||
* the card-detect GPIO.
|
||||
*/
|
||||
|
مرجع در شماره جدید
Block a user