X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/3c5bd05707c62c6a2486b3327e496da80c6031f5..258e4a224adc90317b3d11622a3076ba6d61b0d2:/lincan/src/ems_cpcpci.c diff --git a/lincan/src/ems_cpcpci.c b/lincan/src/ems_cpcpci.c index da82fd3..8938909 100644 --- a/lincan/src/ems_cpcpci.c +++ b/lincan/src/ems_cpcpci.c @@ -183,18 +183,16 @@ unsigned ems_cpcpci_read_register(unsigned long address) return readb(address); } -extern can_irqreturn_t sja1000p_irq_handler(int irq, void *dev_id, struct pt_regs *regs); - -can_irqreturn_t ems_cpcpci_irq_handler(int irq, void *dev_id, struct pt_regs *regs) +int ems_cpcpci_irq_handler(int irq, struct chip_t *chip) { - struct chip_t *chip=(struct chip_t *)dev_id; + //struct chip_t *chip=(struct chip_t *)dev_id; struct candevice_t *candev=chip->hostdevice; int i; unsigned long icr; int test_irq_again; icr=readl(candev->dev_base_addr + PITA2_ICR); - if(!(icr & PITA2_ICR_INT0)) return CAN_IRQ_NONE; + if(!(icr & PITA2_ICR_INT0)) return CANCHIP_IRQ_NONE; /* correct way to handle interrupts from all chips connected to the one PITA-2 */ do { @@ -204,12 +202,12 @@ can_irqreturn_t ems_cpcpci_irq_handler(int irq, void *dev_id, struct pt_regs *re chip=candev->chip[i]; if(!chip || !(chip->flags&CHIP_CONFIGURED)) continue; - if(sja1000p_irq_handler(irq, chip, regs)) + if(sja1000p_irq_handler(irq, chip)) test_irq_again=1; } icr=readl(candev->dev_base_addr + PITA2_ICR); } while((icr & PITA2_ICR_INT0)||test_irq_again); - return CAN_IRQ_HANDLED; + return CANCHIP_IRQ_HANDLED; } int ems_cpcpci_reset(struct candevice_t *candev)