On Thu, Sep 4, 2014 at 7:38 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Thu, 4 Sep 2014, Anjana V Kumar wrote: > >> >> We see that, the three configurations listed in serial driver (CDC >> >> ACM, CDC OBEX, generic serial) cannot be present together as per the >> >> current implementation. Is there a specific reason why the >> >> configuration values were set as 1, 2 and 3 instead of setting all to >> >> 1? >> > >> > well, setting configuration 0 means that you're not selecting any >> > configuration. Basically you go back to "Addressed" state, so you can't >> > use configuration 0 for anything, really. >> > >> >> Sorry for not being clear, I am not setting the configuration to 0. >> The question was, can we set all the three configuration values of CDC >> ACM, CDC OBEX, and generic serial to 1? >> Was there any specific reason as to why the configuration values were >> set as 1,2 and 3. We cannot have all three at the same time according >> to the current "if, elseif, else" implementation, > > No two configurations can have the same bConfigurationValue. If the > gadget has three different configs then it must have three different > config values. > I agree that no two configurations can have same bConfigurationValue, but in this case, the implementation is (drivers/usb/gadget/serial.c) 247 if (use_acm) { 248 serial_config_driver.label = "CDC ACM config"; 249 serial_config_driver.bConfigurationValue = 2; 250 ... 253 } else if (use_obex) { 254 serial_config_driver.label = "CDC OBEX config"; 255 serial_config_driver.bConfigurationValue = 3; 256 ... 259 } else { 260 serial_config_driver.label = "Generic Serial config"; 261 serial_config_driver.bConfigurationValue = 1; 262 ... 265 } In this case we cannot have the three configurations together. Hence I wanted to confirm if there was any other reason as to why different numbers were assigned. > Alan Stern > -- Anjana -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html