Interrupts Handling

#define IRQ_NO 11

static irqreturn_t irq_handler(int irq,void *dev_id) {
printk(KERN_INFO “Shared IRQ: Interrupt Occurred”);
return IRQ_HANDLED;
}
 

static int __init driver_init(void)
{

if (request_irq(IRQ_NO, irq_handler, IRQF_SHARED, “etx_device”, (void *)(irq_handler))) {
printk(KERN_INFO “my_device: cannot register IRQ “);
goto irq;
}

}

void __exit driver_exit(void)
{
free_irq(IRQ_NO,(void *)(irq_handler));

}

module_init(driver_init);
module_exit(driver_exit);

MODULE_LICENSE(“GPL”);