X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/11132ea490f9e860744ee4f851c67e7fb4444231..2827b727d2910a3b48f9de7d67b3a67f59e256c7:/lincan/src/modparms.c diff --git a/lincan/src/modparms.c b/lincan/src/modparms.c index 96d66d5..9e8b20e 100644 --- a/lincan/src/modparms.c +++ b/lincan/src/modparms.c @@ -8,109 +8,29 @@ */ -#include - -#include ".supported_cards.h" - -#ifndef ENABLE_CARD_pip -#define ENABLE_CARD_pip 0 -#endif -#ifndef ENABLE_CARD_smartcan -#define ENABLE_CARD_smartcan 0 -#endif -#ifndef ENABLE_CARD_pccan -#define ENABLE_CARD_pccan 0 -#endif -#ifndef ENABLE_CARD_nsi -#define ENABLE_CARD_nsi 0 -#endif -#ifndef ENABLE_CARD_cc_can104 -#define ENABLE_CARD_cc_can104 0 -#endif -#ifndef ENABLE_CARD_aim104 -#define ENABLE_CARD_aim104 0 -#endif -#ifndef ENABLE_CARD_pc_i03 -#define ENABLE_CARD_pc_i03 0 -#endif -#ifndef ENABLE_CARD_pcm3680 -#define ENABLE_CARD_pcm3680 0 -#endif -#ifndef ENABLE_CARD_m437 -#define ENABLE_CARD_m437 0 -#endif -#ifndef ENABLE_CARD_pcccan -#define ENABLE_CARD_pcccan 0 -#endif -#ifndef ENABLE_CARD_ssv -#define ENABLE_CARD_ssv 0 -#endif -#ifndef ENABLE_CARD_bfadcan -#define ENABLE_CARD_bfadcan 0 -#endif -#ifndef ENABLE_CARD_pikronisa -#define ENABLE_CARD_pikronisa 0 -#endif -#ifndef ENABLE_CARD_template -#define ENABLE_CARD_template 0 -#endif - -#include -#include - +#include "../include/can.h" +#include "../include/can_sysdep.h" #include "../include/main.h" #include "../include/modparms.h" int parse_mod_parms(void) { int i=0,j=0,irq_needed=0,irq_supplied=0,io_needed=0,io_supplied=0,minor_needed=0,minor_supplied=0; + const struct boardtype_t *brp; - if ( (hw[0] == NULL) | (irq[0] == -1) | (io[0] == -1) ) { + if ( (hw[0] == NULL) | (io[0] == -1) ) { CANMSG("You must supply your type of hardware, interrupt numbers and io address.\n"); CANMSG("Example: # insmod can.o hw=pip5 irq=4 io=0x8000\n"); return -ENODEV; } while ( (hw[i] != NULL) && (i < MAX_HW_CARDS) ) { - if ( !strcmp(hw[i],"pip5") && ENABLE_CARD_pip ) - irq_needed++; - else if (!strcmp(hw[i],"pip6") && ENABLE_CARD_pip) - irq_needed++; - else if (!strcmp(hw[i],"smartcan") && ENABLE_CARD_smartcan) - irq_needed++; - else if (!strcmp(hw[i],"pccan-q") && ENABLE_CARD_pccan) - irq_needed=irq_needed+4; - else if (!strcmp(hw[i],"pccan-f") && ENABLE_CARD_pccan) - irq_needed++; - else if (!strcmp(hw[i],"pccan-s") && ENABLE_CARD_pccan) - irq_needed++; - else if (!strcmp(hw[i],"pccan-d") && ENABLE_CARD_pccan) - irq_needed=irq_needed+2; - else if (!strcmp(hw[i],"nsican") && ENABLE_CARD_nsi) - irq_needed++; - else if (!strcmp(hw[i],"cc104") && ENABLE_CARD_cc_can104) - irq_needed++; - else if (!strcmp(hw[i],"aim104") && ENABLE_CARD_aim104) - irq_needed++; - else if (!strcmp(hw[i],"pc-i03") && ENABLE_CARD_pc_i03) - irq_needed++; - else if (!strcmp(hw[i],"pcm3680") && ENABLE_CARD_pcm3680) - irq_needed=irq_needed+2; - else if (!strcmp(hw[i],"m437") && ENABLE_CARD_m437) - irq_needed++; - else if (!strcmp(hw[i],"pcccan") && ENABLE_CARD_pcccan) - irq_needed++; - else if (!strcmp(hw[i],"ssv") && ENABLE_CARD_ssv) - irq_needed=irq_needed+2; - else if (!strcmp(hw[i],"bfadcan") && ENABLE_CARD_bfadcan) - irq_needed++; - else if (!strcmp(hw[i],"pikronisa") && ENABLE_CARD_pikronisa) - irq_needed++; - else if (!strcmp(hw[i],"template") && ENABLE_CARD_template); - else { + brp = boardtype_find(hw[i]); + if(!brp) { CANMSG("Sorry, hardware \"%s\" is currently not supported.\n",hw[i]); return -EINVAL; } + irq_needed += brp->irqnum; i++; } @@ -128,7 +48,7 @@ int parse_mod_parms(void) while ( (irq[irq_supplied] != -1) & (irq_supplied