mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
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 <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
This commit is contained in:
parent
d5d568fad9
commit
36f1d7e817
3 changed files with 23 additions and 2 deletions
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue