- if ( iCfg < 2) { // put device in unconfigured state or set configuration 1 ( no else)
- usb_udev_ack_setup( udev);
- pdiSetEndpointEnable( 0); // USBInitUnconfig();
- if ( iCfg) {
- pdiSetEndpointEnable( PDI_EPEN_ENABLE); //USBInitConfig();
- udev->flags |= USB_FLAG_CONFIGURED;
- } else {
- udev->flags &= ~USB_FLAG_CONFIGURED;
+ while (1) { // put device in unconfigured state or set configuration 1 ( no else)
+ const USB_DEVICE_CONFIGURATION_ENTRY *pcd = udev->devdes_table->pConfigurations;
+ if(iCfg) {
+ unsigned char i = udev->devdes_table->bNumConfigurations;
+ for(; i && (pcd->pConfigDescription->bConfigurationValue != iCfg); i--, pcd++);
+ if(!i)
+ break;