The failure referes to setup_irq :<br>
desc-&gt;chip == &amp;no_irq_chip is true<br>
<br>
What is irq_desc and how can I initialize it ?<br>
<br>
<br>
setup_irq(unsigned int irq, struct irqaction *new)<br>
{<br>
&nbsp;&nbsp;&nbsp; struct irq_desc *desc = irq_desc + irq;<br>
&nbsp;&nbsp;&nbsp; struct irqaction *old, **p;<br>
&nbsp;&nbsp;&nbsp; const char *old_name = NULL;<br>
&nbsp;&nbsp;&nbsp; unsigned long flags;<br>
&nbsp;&nbsp;&nbsp; int shared = 0;<br>
<br>
&nbsp;&nbsp;&nbsp; if (irq &gt;= NR_IRQS)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -EINVAL;<br>
<br>
&nbsp;&nbsp;&nbsp; printk(&quot;desc\n&quot;);<br>
&nbsp;&nbsp;&nbsp; if (desc-&gt;chip == &amp;no_irq_chip)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -ENOSYS;<br>
&nbsp;&nbsp;&nbsp; printk(&quot;desc2\n&quot;);<br><br><div><span class="gmail_quote">2008/9/3, Daniele Bosi &lt;<a href="mailto:d.bosi@selcomgroup.com">d.bosi@selcomgroup.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Try to set some flag into the third parameter of the request_irq()<br> function like:<br> <br> SA_SHIRQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interrupt is shared<br> <br> SA_INTERRUPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable local interrupts while processing<br> <br>
 SA_SAMPLE_RANDOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The interrupt can be used for entropy<br> <br> otherwise try to use the function install_irq_handler()<br> <br> <br> bye Daniele<br> <br> <br> <br> Sébastien Chrétien ha scritto:<br> <br>&gt; Hello,<br>
 &gt;<br> &gt; I am trying to register a function writh IRQ :<br> &gt;<br> &gt; static irqreturn_t uart_test (int irq , void *dev_id)<br> &gt; {<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp; printk(&quot;/!\\ Interruption : tx_empty\n&quot;);<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return IRQ_HANDLED;<br>
 &gt; }<br> &gt;<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp; req=request_irq(0x18,uart_test,NULL,&quot;uart_test&quot;,NULL);<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp; printk(&quot;Initialisation IRQ UART : %d \n&quot;, req);<br> &gt;<br> &gt; When I boot linux ppc, the req value is -38.<br>
 &gt; What is wrong ?<br> <br>&gt; ------------------------------------------------------------------------<br> &gt;<br> &gt; _______________________________________________<br> &gt; Linuxppc-dev mailing list<br> &gt; <a href="mailto:Linuxppc-dev@ozlabs.org">Linuxppc-dev@ozlabs.org</a><br>
 &gt; <a href="https://ozlabs.org/mailman/listinfo/linuxppc-dev">https://ozlabs.org/mailman/listinfo/linuxppc-dev</a><br> <br> --<br> <br> <br> ------------------------------------------------------------------------<br> <br>
 <br>&nbsp;&nbsp;Daniele Bosi<br> <br> *DIGITEK S.p.A.*<br> <br> Via L. Romagnoli 24,<br> 41033 Concordia sulla Secchia<br> Modena (MO), Italy<br> <br> *Tel*: +39-(0)53556942 Fax. +39-(0)53554550<br> <br> *Web:&nbsp;&nbsp;&nbsp;&nbsp;* <a href="http://www.digitek.it">http://www.digitek.it</a><br>
 <br> *Mail to:* <a href="mailto:d.bosi@selcomgroup.com">d.bosi@selcomgroup.com</a> &lt;mailto:<a href="mailto:d.bosi@selcomgroup.com">d.bosi@selcomgroup.com</a>&gt;<br> <br> </blockquote></div><br>