irq_set_irq_wake
时间: 2023-09-09 20:07:38 浏览: 109
irq_set_irq_wake函数的作用是设置一个中断来唤醒系统。它接收两个参数,一个是中断号irq,另一个是唤醒状态on。当on为1时,表示要使中断能够唤醒系统;当on为0时,表示要禁止中断唤醒系统。
在函数内部,它首先获取中断描述符irq_desc,并进行相应的处理。如果on为1,并且中断的唤醒深度(wake_depth)为0,那么它会调用set_irq_wake_real函数来设置中断的唤醒状态,并将wake_depth设置为0。同时,它还会使用irqd_set函数来设置中断数据结构中的IRQD_WAKEUP_STATE标志位,表示该中断可以唤醒系统。
如果on为0,并且中断的唤醒深度为0,那么它会打印警告信息,并且在wake_depth减少之后,调用set_irq_wake_real函数来禁止中断的唤醒状态。同时,它还会使用irqd_clear函数来清除中断数据结构中的IRQD_WAKEUP_STATE标志位,表示该中断不能唤醒系统。
总之,irq_set_irq_wake函数可以用于设置一个中断是否能够唤醒系统。这在中断处理函数中可能会使用到,当处理内容耗时较短且没有交互行为时,可以使用该函数来设置中断来唤醒系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [中断唤醒系统流程【转】](https://blog.csdn.net/weixin_34265814/article/details/90134135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Linux唤醒系统irq处理流程(2/2)](https://blog.csdn.net/hello_yj/article/details/125085435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文