*
* File: src/usbcan.c
*/
-void usbcan_register_devs(struct canchip_t *chip,void *data){
+int usbcan_register_devs(struct canchip_t *chip,void *data){
struct usbcan_devs *usbdevs=(struct usbcan_devs *)data;
if (!usbdevs){
CANMSG("Bad structure given\n");
- return;
+ return -1;
}
if (chip->chip_idx>=usbdevs->count) {
CANMSG("Requested chip number is bigger than chip count\n");
- return;
+ return -1;
}
usbdevs->devs[chip->chip_idx]->chip=chip;
chip->chip_data=(void *)usbdevs->devs[chip->chip_idx];
+ return 0;
}
/**
/* save our data pointer in this interface device */
usb_set_intfdata(interface, usbdevs);
- if (!(usbdevs->candev=register_usbdev("usbcan",(void *) usbdevs, usbcan_register_devs)))
+ if (!(usbdevs->candev=register_hotplug_dev("usbcan", usbcan_register_devs,(void *) usbdevs)))
goto register_error;
/* let the user know what node this device is now attached to */
return 0;
register_error:
- cleanup_usbdev(usbdevs->candev);
+ cleanup_hotplug_dev(usbdevs->candev);
error:
if (usbdevs){
if (usbdevs->devs){
if (usbdevs->devs){
usb_put_dev((*usbdevs->devs)->udev);
}
- cleanup_usbdev(usbdevs->candev);
+ cleanup_hotplug_dev(usbdevs->candev);
if (usbdevs->devs){
for (j=0;j<usbdevs->count;j++){
if (!usbdevs->devs[j]) continue;