]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/i82527.c
First part of IRQ handling changes
[lincan.git] / lincan / src / i82527.c
index 682374a39942d3fc191fdfbba5ccd1bdc47d68b2..3aed30beb49af7f2def0b3c261781cf944ef6fd5 100644 (file)
@@ -611,13 +611,12 @@ void i82527_irq_sync_activities(struct chip_t *chip, struct msgobj_t *obj)
        }
 }
 
-can_irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+int i82527_irq_handler(int irq, struct chip_t *chip)
 {
        unsigned char msgcfg;
 
        unsigned irq_register;
        unsigned object;
-       struct chip_t *chip=(struct chip_t *)dev_id;
        struct msgobj_t *obj;
 
        /*put_reg=device->hwspecops->write_register;*/
@@ -627,7 +626,7 @@ can_irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
 
        if(!irq_register) {
                DEBUGMSG("i82527: spurious IRQ\n");
-               return CAN_IRQ_NONE;
+               return CANCHIP_IRQ_NONE;
        }
 
 
@@ -638,7 +637,7 @@ can_irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                if (irq_register == 0x01) {
                        DEBUGMSG("Status register: 0x%x\n",can_read_reg(chip, iSTAT));
                        continue;
-                       /*return CAN_IRQ_NONE;*/
+                       /*return CANCHIP_IRQ_NONE;*/
                }
                
                if (irq_register == 0x02)
@@ -646,7 +645,7 @@ can_irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                else if(irq_register < 14)
                        object = irq_register-3;
                else
-                       return CAN_IRQ_NONE;
+                       return CANCHIP_IRQ_NONE;
 
                obj=chip->msgobj[object];
                
@@ -664,7 +663,7 @@ can_irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
 
        } while((irq_register=i82527_seg_read_reg(chip, iIRQ)) != 0);
 
-       return CAN_IRQ_HANDLED;
+       return CANCHIP_IRQ_HANDLED;
 }
 
 void i82527_irq_rtr_handler(struct chip_t *chip, struct msgobj_t *obj,