#define IRQ_TYPE_EDGE_BOTH (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING) //边沿触发 #define IRQ_TYPE_LEVEL_HIGH 0x00000004 /* Level high type */ //高电平触发 #define IRQ_TYPE_LEVEL_LOW 0x00000008 /* Level low type */ //低电平触发 #define IRQ_TYPE_SENSE_MASK 0x0000000f /* Mask...
(1)handle_irq就是highlevel irq-events handler,何谓high level?站在高处自然看不到细节。我认为high level是和specific相对,specific handler处理具体的事务,例如处理一个按键中断、处理一个磁盘中断。而high level则是对处理各种中断交互过程的一个抽象,根据下列硬件的不同: (a)中断控制器 (b)IRQ trigger type ...
3、调用该IRQ number对应的high level irq event handler,在这个high level的handler中,会通过和interupt controller交互,进行中断处理的flow control(处理中断的嵌套、抢占等),当然最终会遍历该中断描述符的IRQ action list,调用外设的specific handler来处理该中断 4、具体CPU architecture相关的模块会进行现场恢复。 上...
bad irq中断错误 这个错误和上面的nobody care错误很相似,区别就是:nobody care错误没设置high level handler,而bad irq错误设置了。 做个实验,在中断init时候,增加一个irq_set_chip_and_handler,这里注意里面填充的中断号没有驱动在使用的且不超出范围的。然后在中断映射时候,把某一个特定的中断映射过来。你就能...
For a single queue device, a typical RPS configuration would be to set the rps_cpus to the CPUs in the same memory domain of the interrupting CPU. If NUMA locality is not an issue, this could also be all CPUs in the system. At high interrupt rate, it might be wise to exclude the ...
#define IRQ_TYPE_LEVEL_HIGH 0x00000004 /* Level high type */ //高电平触发 #define IRQ_TYPE_LEVEL_LOW 0x00000008 /* Level low type */ //低电平触发 #define IRQ_TYPE_SENSE_MASK 0x0000000f /* Mask of the above */ // #define IRQ_TYPE_PROBE 0x00000010 /* Probing in progress */ /...
(2)该中断描述符对应的irq trigger type (3)high level handler 在过去,系统中各个IRQ number是固定分配的,各个IRQ对应的中断控制器、触发类型等也都是清楚的,因此,一般都是在machine driver初始化的时候一次性的进行设定。machine driver的初始化过程会包括中断系统的初始化,在machine driver的中断初始化函数中,会...
(2)设定该IRQ number对应的中断描述符的highlevel irq-events handler (3)设定该IRQ number对应的中断描述符的 irq chip data 这些设定不适合由具体的硬件驱动来设定,因此在Interrupt controller,也就是irq domain的callback函数中设定。 2、irq domain
(2)设定该IRQ number对应的中断描述符的highlevel irq-events handler (3)设定该IRQ number对应的中断描述符的 irq chip data 这些设定不适合由具体的硬件驱动来设定,因此在Interrupt controller,也就是irq domain的callback函数中设定。 2、irq domain