]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/sja1000p.c
First part of IRQ handling changes
[lincan.git] / lincan / src / sja1000p.c
index 3087db5d23690bb1fdbd178a49bb9a9149f3eec3..39dff690ddebe684fdc5abd999bdb254dcc5c2eb 100644 (file)
@@ -611,10 +611,9 @@ void sja1000p_irq_write_handler(struct chip_t *chip, struct msgobj_t *obj)
  * message queues.
  * File: src/sja1000p.c
  */
-can_irqreturn_t sja1000p_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+int sja1000p_irq_handler(int irq, struct chip_t *chip)
 {
        int irq_register, status, error_code;
-       struct chip_t *chip=(struct chip_t *)dev_id;
        struct msgobj_t *obj=chip->msgobj[0];
 
        irq_register=can_read_reg(chip,SJAIR);
@@ -623,11 +622,11 @@ can_irqreturn_t sja1000p_irq_handler(int irq, void *dev_id, struct pt_regs *regs
 //                                     can_read_reg(chip,SJASR));
 
        if ((irq_register & (sjaIR_BEI|sjaIR_EPI|sjaIR_DOI|sjaIR_EI|sjaIR_TI|sjaIR_RI)) == 0)
-               return CAN_IRQ_NONE;
+               return CANCHIP_IRQ_NONE;
 
        if(!(chip->flags&CHIP_CONFIGURED)) {
                CANMSG("sja1000p_irq_handler: called for non-configured device, irq_register 0x%02x\n", irq_register);
-               return CAN_IRQ_NONE;
+               return CANCHIP_IRQ_NONE;
        }
 
        if ((irq_register & sjaIR_RI) != 0) {
@@ -683,7 +682,7 @@ can_irqreturn_t sja1000p_irq_handler(int irq, void *dev_id, struct pt_regs *regs
                obj->tx_retry_cnt=0;
        }
 
-       return CAN_IRQ_HANDLED;
+       return CANCHIP_IRQ_HANDLED;
 }
 
 /**