]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/main.c
Embedded code and LinCAN driver now working
[lincan.git] / lincan / src / main.c
index fad1b6d495024d11aa27e2d360d7a25a3b13c434..f69009be9e7928f7799a1c3e9a3d2201609b962a 100644 (file)
@@ -74,7 +74,7 @@
 #include "../include/can_iortl.h"
 #endif /*CAN_WITH_RTL*/
 
-#if defined(CONFIG_OC_LINCAN_CARD_ul_usb1)
+#if defined(CONFIG_OC_LINCAN_CARD_usbcan)
        #include "../include/usbcan.h"
 #endif
 
@@ -414,13 +414,17 @@ int init_module(void)
 
 
 struct candevice_t* register_usbdev(const char *hwname,void *anydev){
-       int i=0, j, board;
+       int i=0, j, board=0;
        struct candevice_t *candev;
        struct canchip_t *chip;
        struct boardtype_t *brp;
 
        while ( (hw[board] != NULL) && (board < MAX_HW_CARDS) )
                board++;
+       if (board>=MAX_HW_CARDS){
+               CANMSG("Maximum number of devices has been reached, no space for new device");
+               return NULL;
+       }
        brp = boardtype_find(hwname);
        if(!brp) {
                CANMSG("Sorry, hardware \"%s\" is currently not supported.\n",hw[board]);
@@ -587,29 +591,15 @@ void cleanup_usbdev(struct candevice_t *dev)
        }
 #endif
 
-       for(i=0;i<MAX_TOT_MSGOBJS;i++) {
-               if(!objects_p[i]) continue;
-               if(objects_p[i]->hostchip->hostdevice != dev) continue;
-               //canqueue_ends_done_chip(objects_p[i]->qends);
-               //can_checked_free(objects_p[i]->qends);
-               //can_checked_free(objects_p[i]);
-               objects_p[i]=NULL;
-       }
-
        for(i=0;i<MAX_TOT_CHIPS;i++){
                if(!chips_p[i]) continue;
                if(chips_p[i]->hostdevice != dev) continue;
-               //can_checked_free(chips_p[i]->chipspecops);
-               //can_checked_free(chips_p[i]);
                chips_p[i]=NULL;
        }
 
        hardware_p->candevice[dev->candev_idx]=NULL;
        hardware_p->nr_boards--;
-       //kfree(hw[dev->candev_idx]);
        hw[dev->candev_idx]=NULL;
-       //can_checked_free(dev->hwspecops);
-       //can_checked_free(dev);
 
        candevice_done(dev);
        can_checked_free(dev);