request_irq always returns EINVAL
What am I doing wrong here ?
int mydrvr_open(struct inode *inode, struct file *filp)
{
int ret;
printk("<1> \nModule Opened!");
//disable_irq(4);
//free_irq(4, NULL);
ret = request_irq(4, &imr_interrupt_handler,IRQF_SHARED, "mediadeviceintr", NULL);
printk("<1>irqReturn=%d\n",ret);
if(ret>0) enable_irq(4);
return 0;
}
---------- Post updated at 10:54 PM ---------- Previous update was at 03:27 AM ----------
Ok, I figured it out... since this was a shared interrupt, I could not pass a NULL device ID, just one of reasons why it would return EINVAL or -22.