X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/446346b22245a238d8d70390797b9749eac03788..5282a3d5b5624f59a4a11b061368e523934fe5f0:/lincan/src/main.c diff --git a/lincan/src/main.c b/lincan/src/main.c index 60eb6e6..dac9620 100644 --- a/lincan/src/main.c +++ b/lincan/src/main.c @@ -229,15 +229,25 @@ int init_module(void) for(j=0; jnr_all_chips; j++) { if((chip=candev->chip[j])==NULL) continue; + + if(chip->chipspecops->attach_to_chip(chip)<0) { + CANMSG("Initial attach to the chip HW failed\n"); + goto interrupt_error; + } + + chip->flags |= CHIP_ATTACHED; + if(can_chip_setup_irq(chip)<0) { - CANMSG("IRQ setup failed\n"); + CANMSG("Error to setup chip IRQ\n"); goto interrupt_error; } } - + if (candev->flags & CANDEV_PROGRAMMABLE_IRQ) - if (candev->hwspecops->program_irq(candev)) + if (candev->hwspecops->program_irq(candev)){ + CANMSG("Error to program board interrupt\n"); goto interrupt_error; + } } #ifdef CONFIG_PROC_FS @@ -275,7 +285,6 @@ int init_module(void) #endif interrupt_error: ; - CANMSG("Error registering interrupt line.\n"); goto memory_error; reset_error: ;