Kernel 驱动程序中使用了request_-irq(),为什么不使用request_-irq()?两者有什么区别?
我发布了这个帖子,讨论了关于请求的问题,但是我没有得到任何回复。所以我现在就把它贴出来 我正在为电容式触摸屏开发一款触摸屏驱动程序。它使用request\u threaded\u irq()调用而不是request\u irq()。我无法理解两者之间的基本区别。它说:- 名称 请求\u线程化\u irq-分配中断行 简介 int-request\u-threaded\u-irq(未签名的int-irq、irq\u-handler\u-t-handler、irq\u-handler\u-t-thread\fn、未签名的长irqflags、const-char*devname、void*dev\u-id) 参数Kernel 驱动程序中使用了request_-irq(),为什么不使用request_-irq()?两者有什么区别?,kernel,irq,Kernel,Irq,我发布了这个帖子,讨论了关于请求的问题,但是我没有得到任何回复。所以我现在就把它贴出来 我正在为电容式触摸屏开发一款触摸屏驱动程序。它使用request\u threaded\u irq()调用而不是request\u irq()。我无法理解两者之间的基本区别。它说:- 名称 请求\u线程化\u irq-分配中断行 简介 int-request\u-threaded\u-irq(未签名的int-irq、irq\u-handler\u-t-handler、irq\u-handler\u-t-thr
err = request_threaded_irq(client->irq, NULL, cy8ctmg110_irq_thread,
IRQF_TRIGGER_RISING, "touch_reset_key", ts);
通过为第二个参数“handler”传递NULL,当检测到中断时,将调用thread_fn的参数或函数cy8ctmg110_irq_thread()
对于您来说,选择哪个请求irq函数将取决于您的驱动程序在中断上下文中需要做什么。另一个重要方面:“如果要为设备设置线程化irq处理程序,则需要提供处理程序和线程\u fn。处理程序仍然在硬中断上下文中调用,并且必须检查中断是否源自设备。如果是,则需要禁用设备上的中断并返回IRQ\U WAKE\U THREAD,这将唤醒处理程序线程并运行THREAD\U fn
来源:Alan,如果在线程已经运行时中断再次发生,会发生什么?会启动线程的新实例吗?还是会忽略中断?