]> 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 fde7c00b5fd464662a1535ce9ea1669d11418688..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;
 }
 
 
@@ -759,8 +758,6 @@ int unican_init_hw_data(struct candevice_t *candev)
        return 0;
 }
 
-#define CHIP_TYPE "unican"
-
 /**
  * unican_init_chip_data - Initialize chips
  * @candev: Pointer to candevice/board structure
@@ -772,7 +769,7 @@ int unican_init_hw_data(struct candevice_t *candev)
 int unican_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        struct chip_t *chip = candev->chip[chipnr];
-       chip->chip_type = CHIP_TYPE;
+       chip->chip_type = "unican";
        chip->chip_base_addr = 0;
        chip->clock = 10000000;
        chip->int_clk_reg = 0x0;