Linux中的enable_irq_wake函数是一个非常重要的函数,它用于启用中断唤醒功能。在Linux系统中,中断是用来处理外部设备事件的一种机制,通过中断可以让CPU在处理其他任务时立即响应外部事件。在某些应用场景下,我们需要让系统保持在低功耗状态,但又需要保持一些重要的中断能够唤醒系统,这时候就需要用到enable_irq_wake函数。
enable_irq_wake函数 在Android系统中,enable_irq_wake函数用于在中断发生时唤醒系统。这个函数的原型如下: voidenable_irq_wake(unsignedintirq); 1. 该函数接收一个无符号整数参数irq,用于指定需要唤醒系统的中断号。当某个外部设备发生中断时,如果该中断号被传递给enable_irq_wake函数,那么系统会被唤醒。 代码示例...
}#ifdefCONFIG_PM_SLEEPstaticintpmic8xxx_kp_suspend(struct device *dev){structplatform_device*pdev=to_platform_device(dev);structpmic8xxx_kp*kp=platform_get_drvdata(pdev);structinput_dev*input_dev=kp->input;if(device_may_wakeup(dev)) {enable_irq_wake(kp->key_sense_irq); }else{ mutex_...
enable_irq_wake(IRQ_EINT1); 该函数使中断IRQ_EINT1的产生将触发系统唤醒 enable_irq(IRQ_EINT1);该函数使能中断IRQ_EINT1
enable_irq_wake(IRQ_EINT1) 与 enable_irq(IRQ_EINT1)的区别 enable_irq_wake(IRQ_EINT1); 该函数使中断IRQ_EINT1的产生将触发系统唤醒 enable_irq(IRQ_EINT1);该函数使能中断IRQ_EINT1
Linux内核API完全参考手册(第2版)上QQ阅读APP,阅读体验更流畅 领看书特权 5.6 函数:enable_irq( ) 上QQ阅读看本书,第一时间看更新 登录订阅本章 > 5.7 函数:enable_irq_wake( ) 上QQ阅读看本书,第一时间看更新 登录订阅本章 >上翻页区 功能呼出区 下翻页区...
enable_irq_wake(irq);有嵌套层次,多次执行后如果去执行一次disable_irq_wake,结果不能够disable irq wake, 要enable和disable的次数相同 static inline int enable_irq_wake(unsigned int irq) { return set_irq_wake(irq, 1); } static inline int disable_irq_wake(unsigned int irq) ...
而可以从字面理解知道它是强调的意思,是逻辑标签,强调文档逻辑。 对于搜索引擎(SEO)来说,比重视...
irq_dispose_mapping(irq); } Expand All@@ -541,6 +552,14 @@ static int msm_msi_qgic_irq_setup(struct msm_msi *msi) goto free_irqs; } ret=enable_irq_wake(irq); if(ret) { dev_err(msi->dev, "MSI: Unable to set enable_irq_wake for interrupt: %d: %d\n", ...
struct wake_lock wlock; 1. 2. 3. 4. 初始化(一般放在probe或者register函数里): wake_lock_init(&wlock, WAKE_LOCK_SUSPEND, "wlock name"); 1. 判断是否已加锁,释放锁 if (wake_lock_active(&pon->wlock)) { wake_unlock(&pon->wlock); ...