int mass_stor_configureNextDevice(void) { int i; XPRINTF("USBHDFSD: configuring devices... \n"); for (i = 0; i < NUM_DEVICES; ++i) { mass_dev *dev = &g_mass_device[i]; if (dev->devId != -1 && (dev->status & USBMASS_DEV_STAT_CONN) && !(dev->status & USBMASS_DEV_STAT_CONF)) { int ret; usb_set_configuration(dev, dev->configId); usb_set_interface(dev, dev->interfaceNumber, dev->interfaceAlt); dev->status |= USBMASS_DEV_STAT_CONF; ret = mass_stor_warmup(dev); if (ret < 0) { printf("USBHDFSD: Error - failed to warmup device %d\n", dev->devId); mass_stor_release(dev); continue; } dev->cache = scache_init(dev, dev->sectorSize); // modified by Hermes if (dev->cache == NULL) { printf("USBHDFSD: Error - scache_init failed \n" ); continue; } return part_connect(dev) >= 0; } } return 0; }
int mass_stor_configureNextDevice() { int i; // give the USB driver some time to detect the device //i = 10000; //while (wait_for_connect && (--i > 0)) //DelayThread(100); //wait_for_connect = 0; XPRINTF("USBHDFSD: configuring devices... \n"); for (i = 0; i < NUM_DEVICES; ++i) { mass_dev *dev = &g_mass_device[i]; if (dev->devId != -1 && (dev->status & DEVICE_DETECTED) && !(dev->status & DEVICE_CONFIGURED)) { int ret; usb_set_configuration(dev, dev->configId); usb_set_interface(dev, dev->interfaceNumber, dev->interfaceAlt); dev->status |= DEVICE_CONFIGURED; ret = mass_stor_warmup(dev); if (ret < 0) { printf("USBHDFSD: Error - failed to warmup device %d\n", dev->devId); mass_stor_release(dev); continue; } dev->cache = scache_init(dev, dev->sectorSize); // modified by Hermes if (dev->cache == NULL) { printf("USBHDFSD: Error - scache_init failed \n" ); continue; } return part_connect(dev) >= 0; } } return 0; }