以下个人猜测:
第一次 irq_of_parse_and_map ,从设备树获取了 irq 数据,然后存储到内核。驱动如果修改了 irq 数据(与 DTS 描述不符),则再次调用 irq_of_parse_and_map 就会发生不匹配。 free_irq 并不会释放 irq 数据,因为有些中断信号可能是共享的,或可能被反复使用。 根因还是在设备树的中断方式与驱动中irq请求配置信息是否一致
按键中断解决irq_of_parse_and_map返回0的问题--Apple的学习笔记因为我要复习下linux驱动。实现一个五脏俱全的小麻雀。复习目标:1.驱动框架2.常用通过设备树获取信息的of函数3.驱动io模型(用一个常用的poll非阻塞,仅实现read...