request_irq return errno 38

Vijay Nikam vijay.t.nikam at gmail.com
Wed Feb 11 19:43:26 EST 2009


Hello All,

I have mpc8313erdb evaluation board and currently I am writing GPIO
driver. Actually it is just simple test driver.

I did the irq_request in the driver init function, as request_irq
returns zero (0) if successful, otherwise -1 on error and errno
indicates the error. But when I load or insert the module using insmod
request_irq return with Return Value -38. I checked in errno.h file in
asm-generic and 38 means ENOSYS - Function not implemented.
Following is irq_request code:
----------------------
ret = request_irq(74, interrupt_handler, SA_INTERRUPT | SA_SHIRQ ,
"gpio", &mydev);
if(ret)
    printk(KERN_INFO "Error in request_irq, value return = %d \n", ret);
----------------------
NOTE: 74 is the Interrupt ID Number for GPIO Interrupt. this
information is from Processor User Manual.

Following is the handler:
---------------------
static int interrupt_handler(int irqn, void *dev_id)
{
    printk(KERN_INFO "Enter in interrupt handler\n");
    return IRQ_HANDLED;
}
--------------------

Usually request_irq return EBUSY, EINVAL but in my case it returns
ENOSYS (errno 38). I tried to look information for this errno in
interrupt context but could not able to find anything useful or
understable. Could anyone please let me know why this specific errno
38 generated in request_irq ? ? ? and what are the possiblities for
resolving this error ? ?  ?

Kindly please acknowledge ... thank you ...

Kind Regards,
Vijay Nikam



More information about the Linuxppc-dev mailing list