ret = request_irq(irq, host_wake_isr, IRQF_TRIGGER_HIGH,"bt host_wake",NULL);if(ret) { pr_err("[BT] Request_host wake irq failed.\n");returnret; } ret =irq_set_irq_wake(irq,1);if(ret) { pr_err("[BT] Set_irq_wake failed.\n");returnret; }snprintf(bt_lpm.wake_lock_n...
(5)wake_depth是和电源管理中的wake up source相关。通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。 (6)irq_count、last_unhandled和irqs_unhandl...
通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。 (6)irq_count、last_unhandled和irqs_unhandled用于处理broken IRQ 的处理。所谓broken IRQ就是由于...
irq_set_irq_wake(hi->irq_btn,0); }#endif/* MM-RC-HEADSET-MULTIBUTTON-DETECT]* */switch_set_state(&hi->sdev, UNKNOWN_DEVICE);/* FIH-SW2-MM-AY-hsed_type-02 */}elseif(voltage >700|| voltage <400) {/* FIH-SW2-MM-AY-hsed_type-01 ] *//* SW-MM-RC-CTIA-TTY* */if(gpi...
调用了enable_irq_wake会影响系统suspend过程中的suspend_device_irqs处理,代码如下:static bool suspend_device_irq(struct irq_desc *desc){……if(irqd_is_wakeup_set(&desc->irq_data)) {irqd_set(&desc->irq_data, IRQD_WAKEUP_ARMED);return true;}省略Disable 中断的代码}也就是说,一旦调用enable_...
(5)wake_depth是和电源管理中的wake up source相关。通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。
(5)wake_depth是和电源管理中的wake up source相关。通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。
, .irq_mask = gic_mask_irq, .irq_unmask = gic_unmask_irq, .irq_eoi = gic_eoi_irq, .irq_set_type = gic_set_type, .irq_retrigger = gic_retrigger, #ifdef CONFIG_SMP .irq_set_affinity = gic_set_affinity, #endif .irq_set_wake = gic_set_wake, }; ... static void gic_eoi_...
int wake_count;void *status_reg_buf; unsigned int *main_status_buf; unsigned int *status_buf; unsigned int *mask_buf; unsigned int *mask_buf_def; @@ -326,6 +327,33 @@ static const struct irq_chip regmap_irq_chip = { .irq_set_wake = regmap_irq_set_wake, ...
irq_set_wake- 可选的 这些基元的意思是严格意义上的:ack是指ACK,masking是指对IRQ线的屏蔽,等等。这取决 于流处理器如何使用这些基本的低级功能单元。 __do_IRQ入口点 最初的实现__do_IRQ()是所有类型中断的替代入口点。它已经不存在了。 这个处理程序被证明不适合所有的...