]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/main.c
Each (future) canchip associated to different usb endpoint, instead of whole device...
[lincan.git] / lincan / src / main.c
index dbedd0fcbacc2b2c69876a88e9dafe9aa6d50d83..b8edf46f5c37a3b7f59f1f91f36f5862bf1a645b 100644 (file)
@@ -417,7 +417,7 @@ int init_module(void)
 
 
 
-struct candevice_t* register_usbdev(const char *hwname,void *anydev){
+struct candevice_t* register_usbdev(const char *hwname,void *devdata,void (*chipdataregfnc)(struct canchip_t *ch,void *data)){
        int i=0, j, board=0;
        struct candevice_t *candev;
        struct canchip_t *chip;
@@ -450,7 +450,7 @@ struct candevice_t* register_usbdev(const char *hwname,void *anydev){
        candev=hardware_p->candevice[board];
 
        /* Adding link to usb device structure into can device */
-       candev->sysdevptr.anydev=anydev;
+       candev->sysdevptr.anydev=devdata;
 
        if (candev->hwspecops->request_io(candev))
                goto request_io_error;
@@ -463,6 +463,8 @@ struct candevice_t* register_usbdev(const char *hwname,void *anydev){
                if((chip=candev->chip[j])==NULL)
                        continue;
 
+               chipdataregfnc(chip,devdata);
+
                if(chip->chipspecops->attach_to_chip(chip)<0) {
                        CANMSG("Initial attach to the chip HW failed\n");
                        goto interrupt_error;