来到这个接口函数,第一个问题就是:为何irq_set_chip接口函数使用irq_get_desc_lock来获取中断描述符,而irq_set_irq_type这个函数却需要irq_get_desc_buslock呢?其实也很简单,irq_set_chip不需要访问底层的irq chip(也就是interrupt controller),但是irq_set_irq_type需要。设定一个IRQ的trigger type最终要调用des...
irq_set_chip_data(chip->irq_base + pmirq, chip);#ifdefCONFIG_ARMset_irq_flags(chip->irq_base + pmirq, IRQF_VALID);#elseirq_set_noprobe(chip->irq_base + pmirq);#endif}irq_set_irq_type(devirq, pdata->irq_trigger_flag); irq_set_handler_data(devirq, chip); irq_set_chained_ha...
来到这个接口函数,第一个问题就是:为何irq_set_chip接口函数使用irq_get_desc_lock来获取中断描述符,而irq_set_irq_type这个函数却需要irq_get_desc_buslock呢?其实也很简单,irq_set_chip不需要访问底层的irq chip(也就是interrupt controller),但是irq_set_irq_type需要。设定一个IRQ的trigger type最终要调用des...
来到这个接口函数,第一个问题就是:为何irq_set_chip接口函数使用irq_get_desc_lock来获取中断描述符,而irq_set_irq_type这个函数却需要irq_get_desc_buslock呢?其实也很简单,irq_set_chip不需要访问底层的irq chip(也就是interrupt controller),但是irq_set_irq_type需要。设定一个IRQ的trigger type最终要调用des...
irq_set_irq_type(virq, type);---E return virq; } A:这里的代码主要是找到irq domain。这是根据传递进来的参数irq_data的np成员来寻找的,具体定义如下: struct of_phandle_args { struct device_node *np;---指向了外设对应的interrupt controller的device node int args_...
linux kernel的中断子系统之(三):IRQ number和中断描述符【转】,一、前言本文主要围绕IRQnumber和中断描述符(interruptdescriptor)这两个概念描述通用中断处理过程。第二章主要描述基本概念,包括什么是IRQnumber,什么是中断描述符等。第三章描述中断描述符数据
参照processors.wiki.ti.com/.../Linux_PSP_GPIO_Driver_Guide 当我使用 set_irq_type(irq_num, IRQ_TYPE_EDGE_RISING); 这个函数的时候, 报错如下:arch/arm/mach-omap2/board-am335xevm
系统处理 IRQ_EINT0 IRQ_EINT11 的过程 主要分析系统处理 IRQ_EINT0 IRQ_EINT11 的过程。2440处理器的中断组织成两层:主中断 和 次中断,一共可以处理60个中断源。主中断 和 次中断 经过中断构架的抽象之后,编写驱动程序时,我们不用考虑这两层中断,直接使用r
irq_set_type:设置中断触发类型 irq_set_wake:使能/禁止电源管理中的唤醒功能 irq_bus_lock:慢速芯片总线上的锁 irq_bus_sync_unlock:同步释放慢速总线芯片的锁 struct irq_domain与中断控制器对应,完成硬件中断号 hwirq 到 virq 的映射。 struct irq_domain { ...
__irq_do_set_handler(desc, handle, is_chained, name);irq_put_desc_busunlock(desc, flags); } 开发者ID:a2hojsjsjs,项目名称:linux,代码行数:13,代码来源:chip.c 示例5: irq_set_irq_type ▲点赞 1▼ /** * irq_set_type - set the irq trigger type for an irq ...