void mmc_wimax_enable_host_wakeup(int on) { if (mmc_wimax_get_status()) { if (on) { if (!mmc_wimax_get_gpio_irq_enabled()) { if (printk_ratelimit()) printk("set PMIC GPIO%d as wakeup source on IRQ %d\n", RIDER_WIMAX_HOST_WAKEUP+1,mmc_wimax_get_hostwakeup_IRQ_ID()); enable_irq(mmc_wimax_get_hostwakeup_IRQ_ID()); enable_irq_wake(mmc_wimax_get_hostwakeup_IRQ_ID()); mmc_wimax_set_gpio_irq_enabled(1); } } else { if (mmc_wimax_get_gpio_irq_enabled()) { if (printk_ratelimit()) printk("disable PMIC GPIO%d wakeup source\n", RIDER_WIMAX_HOST_WAKEUP+1); disable_irq_wake(mmc_wimax_get_hostwakeup_IRQ_ID()); disable_irq_nosync(mmc_wimax_get_hostwakeup_IRQ_ID()); mmc_wimax_set_gpio_irq_enabled(0); } } } else { printk("%s mmc_wimax_sdio_status is OFF\n", __func__); } }
void mmc_wimax_enable_host_wakeup(int on) { if (mmc_wimax_get_status()) { if (on) { if (!mmc_wimax_get_gpio_irq_enabled()) { printk("set GPIO%d as wakeup source on IRQ %d\n", mmc_wimax_get_hostwakeup_gpio(),mmc_wimax_get_hostwakeup_IRQ_ID()); enable_irq(mmc_wimax_get_hostwakeup_IRQ_ID()); enable_irq_wake(mmc_wimax_get_hostwakeup_IRQ_ID()); mmc_wimax_set_gpio_irq_enabled(1); } } else { if (mmc_wimax_get_gpio_irq_enabled()) { printk("disable GPIO%d wakeup source\n", mmc_wimax_get_hostwakeup_gpio()); disable_irq_wake(mmc_wimax_get_hostwakeup_IRQ_ID()); disable_irq_nosync(mmc_wimax_get_hostwakeup_IRQ_ID()); mmc_wimax_set_gpio_irq_enabled(0); } } } else { printk("%s mmc_wimax_sdio_status is OFF\n", __func__); } }