<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 14.4px; border-collapse: collapse; ">Dear all,<br><br>Please help me solve this annoying warning messages.<br>This warning message happens when I enable the TCM support in my arm platform<br>

<br>drivers/input/keyboard/kpd.c:560: warning: passing argument 2 of &#39;request_irq&#39; from incompatible pointer type<br>include/linux/interrupt.h:78: note: expected &#39;irq_handler_t&#39; but argument is of type &#39;irqreturn_t (*)(int,  void *)&#39;<br>

<br>kpd.c<br>static irqreturn_t __tcmfunc kpd_irq_handler(int irq, void *dev_id) {<br>       disable_irq(KP_IRQ_LINE);<br>       ...<br>       return IRQ_HANDLED;<br>}<br><br>Other definitions:<br>typedef int irqreturn_t;<br>

#define __tcmfunc __attribute__((long_call)) __section(.tcm.text) noinline<br><br>Compiler seems to think “irqreturn_t” and “irqreturn_t __tcmfunc” are different types.<br>I try all different ways to add the __tcmfunc modifier, but the warning still shows up.<br>

Could you give some hint?<br>Thank.<br><br>Best Regards,<br>Keene Tsai 蔡承翰</span>