ret =irq_set_irq_wake(irq,1);if(ret) { pr_err("[BT] Set_irq_wake failed.\n");returnret; }snprintf(bt_lpm.wake_lock_name,sizeof(bt_lpm.wake_lock_name),"BTLowPower"); wake_lock_init(&bt_lpm.wake_lock, WAKE_LOCK_SUSPEND, bt_lpm.wake_lock_name);return0; } 开发者ID:Ante0...
这是中断处理的核心内容,__irq_set_handler就是设定high level handler的接口函数,不过一般不会直接调用,而是通过irq_set_chip_and_handler_name或者irq_set_chip_and_handler来进行设定。具体代码如下: void__irq_set_handler(unsignedintirq,irq_flow_handler_thandle,intis_chained,constchar*name){unsignedlongfl...
1) enable_irq_wake可以有两种途径,一是在driver的suspend函数中由驱动开发者主动调用;二是在driver的probe函数中调用dev_pm_set_wake_irq和device_init_wakeup。因为suspend的过程中会通过dev_pm_arm_wake_irq打开所有wakeup source的irq wake功能。我更推荐途径1,因为系统已经帮我们做了,何必重复造轮子呢! 2) ...
(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...
转自:http://www.wowotech.net/linux_kenrel/interrupt_descriptor.html 一、前言 本文主要围绕IRQ number和中断描述符(interrupt descriptor)这两个概念描述通用中断处理过程。第二章主要描述基本概念,包括什么是IR
(5)wake_depth是和电源管理中的wake up source相关。通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。
irq_set_irq_wake(hi->irq_btn,1); }#endif/* FIH-SW2-MM-AY-hsed_type-00 [ */if(isCTIAheadset) {/* FIH-SW2-MM-AY-hsed_type-03 */pmic_hsed_enable(PM_HSED_CONTROLLER_0, PM_HSED_ENABLE_ALWAYS); msleep(130); proc_comm_get_hsed_voltage(2, &voltage,0);//it will get the...
(5)wake_depth是和电源管理中的wake up source相关。通过irq_set_irq_wake接口可以enable或者disable一个IRQ中断是否可以把系统从suspend状态唤醒。同样的,对一个IRQ进行wakeup source的enable和disable的操作可以嵌套(当然一定要成对使用),wake_depth是描述嵌套深度的信息。
调用了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_...
irq_set_affinity:在 SMP 中设置 CPU 亲和力 irq_retrigger:重新发送中断到 CPU irq_set_type:设置中断触发类型 irq_set_wake:使能/禁止电源管理中的唤醒功能 irq_bus_lock:慢速芯片总线上的锁 irq_bus_sync_unlock:同步释放慢速总线芯片的锁 struct irq_domain与中断控制器对应,完成硬件中断号 hwirq 到 virq...