函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\manage.c Create Date:2022-07-27 11:09:28
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:设置中断触发方式

函数原型:int __irq_set_trigger(struct irq_desc *desc, unsigned long flags)

返回类型:int

参数:

类型参数名称
struct irq_desc *desc
unsigned longflags
751  chip等于中断控制器信息
752  unmask等于0
754  如果非chip或非设置中断类型
759  pr_debug("No set_type function for IRQ %d (%s)\n", irq_desc_get_irq(desc), chip ? (中断名 ? : "unknown") : "unknown")
762  返回:0
765  如果芯片专用标志按位与IRQCHIP_SET_TYPE_MASKED
766  如果非irqd_irq_masked( & irq_data)则mask_irq(desc)
768  如果非irqd_irq_disabled( & irq_data)则unmask等于1
773  flags与等于IRQ_TYPE_SENSE_MASK
774  ret等于设置中断类型( & irq_data, flags)
777  :ret恒等于IRQ_SET_MASK_OK
778  :ret恒等于IRQ_SET_MASK_OK_DONE
779  清除中断标志
780  设置中断标志
783  :ret恒等于IRQ_SET_MASK_OK_NOCOPY
784  flags等于irqd_get_trigger_type( & irq_data)
785  irq_settings_set_trigger_mask(desc, flags)
786  清除中断标志
787  irq_settings_clr_level(desc)
788  如果flags按位与IRQ_TYPE_LEVEL_MASK
793  ret等于0
794  退出
795  默认
796  打印错误信息("Setting trigger mode %lu for irq %u failed (%pS)\n", flags, irq_desc_get_irq(desc), 设置中断类型)
799  如果unmaskunmask_irq(desc)
801  返回:ret
调用者
名称描述
__setup_irq注册中断
enable_percpu_irq
irq_set_irq_typeq_set_type - set the irq trigger type for an irq*@irq: irq number*@type: IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h
__irq_do_set_handler