]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/unican.c
First part of IRQ handling changes
[lincan.git] / lincan / src / unican.c
index f2c7ec60d1498d6b91c87a2f21ed6a116eee6f8c..957d5afd5aa49a773c538bd064d74b5eeaec7965 100644 (file)
@@ -570,9 +570,8 @@ void unican_irq_sync_activities(struct chip_t *chip, struct msgobj_t *obj)
  * message queues.
  * File: src/unican.c
  */
-can_irqreturn_t unican_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+int unican_irq_handler(int irq, struct chip_t *chip)
 {
-       struct chip_t *chip=(struct chip_t *)dev_id;
        sCAN_CARD *chipext = (sCAN_CARD *)chip->chip_data;
        struct msgobj_t *obj=chip->msgobj[0];
        __u16 status;
@@ -580,11 +579,11 @@ can_irqreturn_t unican_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
 
        if(!(chip->flags&CHIP_CONFIGURED)) {
                CANMSG("unican_irq_handler: called for non-configured device\n");
-               return CAN_IRQ_NONE;
+               return CANCHIP_IRQ_NONE;
        }
 
        if (cl2_get_status(chipext, &status) == CL2_NO_REQUEST)
-               return CAN_IRQ_NONE;
+               return CANCHIP_IRQ_NONE;
 
        cl2_clear_interrupt(chipext);
 
@@ -609,7 +608,7 @@ can_irqreturn_t unican_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
 
        cl2_gen_interrupt(chipext);
 
-       return CAN_IRQ_HANDLED;
+       return CANCHIP_IRQ_HANDLED;
 }