X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/b5ac7e6f7e0d1af9dbb4bdb56921ab04de4e1ade..a2eb4407e9772cf1057e7ea093250d5d38245c1d:/lincan/src/ems_cpcpci.c diff --git a/lincan/src/ems_cpcpci.c b/lincan/src/ems_cpcpci.c index da82fd3..d20e281 100644 --- a/lincan/src/ems_cpcpci.c +++ b/lincan/src/ems_cpcpci.c @@ -123,7 +123,7 @@ int ems_cpcpci_request_io(struct candevice_t *candev) * can change when resources are temporarily released */ for(i=0;inr_all_chips;i++) { - struct chip_t *chip=candev->chip[i]; + struct canchip_t *chip=candev->chip[i]; if(!chip) continue; chip->chip_base_addr = candev->io_addr+ 0x400 + i*EMS_CPCPCI_BYTES_PER_CIRCUIT; @@ -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 canchip_t *chip) { - struct chip_t *chip=(struct chip_t *)dev_id; + //struct canchip_t *chip=(struct canchip_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,18 +202,18 @@ 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) { int i=0,chip_nr; - struct chip_t *chip; + struct canchip_t *chip; unsigned cdr; DEBUGMSG("Resetting EMS_CPCPCI hardware ...\n"); @@ -345,7 +343,7 @@ int ems_cpcpci_init_chip_data(struct candevice_t *candev, int chipnr) return 0; } -int ems_cpcpci_init_obj_data(struct chip_t *chip, int objnr) +int ems_cpcpci_init_obj_data(struct canchip_t *chip, int objnr) { chip->msgobj[objnr]->obj_base_addr=chip->chip_base_addr; return 0;