Lines Matching refs:config
197 int usb_add_function(struct usb_configuration *config, in usb_add_function() argument
202 DBG(config->cdev, "adding '%s'/%p to config '%s'/%p\n", in usb_add_function()
204 config->label, config); in usb_add_function()
209 function->config = config; in usb_add_function()
210 list_add_tail(&function->list, &config->functions); in usb_add_function()
214 value = function->bind(config, function); in usb_add_function()
217 function->config = NULL; in usb_add_function()
227 if (!config->fullspeed && function->fs_descriptors) in usb_add_function()
228 config->fullspeed = true; in usb_add_function()
229 if (!config->highspeed && function->hs_descriptors) in usb_add_function()
230 config->highspeed = true; in usb_add_function()
231 if (!config->superspeed && function->ss_descriptors) in usb_add_function()
232 config->superspeed = true; in usb_add_function()
236 DBG(config->cdev, "adding '%s'/%p --> %d\n", in usb_add_function()
275 struct usb_composite_dev *cdev = function->config->cdev; in usb_function_deactivate()
303 struct usb_composite_dev *cdev = function->config->cdev; in usb_function_activate()
345 int usb_interface_id(struct usb_configuration *config, in usb_interface_id() argument
348 unsigned id = config->next_interface_id; in usb_interface_id()
351 config->interface[id] = function; in usb_interface_id()
352 config->next_interface_id = id + 1; in usb_interface_id()
378 static int config_buf(struct usb_configuration *config, in config_buf() argument
393 c->bNumInterfaces = config->next_interface_id; in config_buf()
394 c->bConfigurationValue = config->bConfigurationValue; in config_buf()
395 c->iConfiguration = config->iConfiguration; in config_buf()
396 c->bmAttributes = USB_CONFIG_ATT_ONE | config->bmAttributes; in config_buf()
397 c->bMaxPower = encode_bMaxPower(speed, config); in config_buf()
400 if (config->descriptors) { in config_buf()
402 config->descriptors); in config_buf()
410 list_for_each_entry(f, &config->functions, list) { in config_buf()
621 list_for_each_entry(f, &cdev->config->functions, list) { in reset_config()
627 cdev->config = NULL; in reset_config()
648 if (cdev->config) in set_config()
657 if (cdev->config) in set_config()
670 cdev->config = c; in set_config()
739 struct usb_configuration *config) in usb_add_config_only() argument
743 if (!config->bConfigurationValue) in usb_add_config_only()
748 if (c->bConfigurationValue == config->bConfigurationValue) in usb_add_config_only()
752 config->cdev = cdev; in usb_add_config_only()
753 list_add_tail(&config->list, &cdev->configs); in usb_add_config_only()
755 INIT_LIST_HEAD(&config->functions); in usb_add_config_only()
756 config->next_interface_id = 0; in usb_add_config_only()
757 memset(config->interface, 0, sizeof(config->interface)); in usb_add_config_only()
779 struct usb_configuration *config, in usb_add_config() argument
788 config->bConfigurationValue, in usb_add_config()
789 config->label, config); in usb_add_config()
791 status = usb_add_config_only(cdev, config); in usb_add_config()
795 status = bind(config); in usb_add_config()
797 while (!list_empty(&config->functions)) { in usb_add_config()
800 f = list_first_entry(&config->functions, in usb_add_config()
806 f->unbind(config, f); in usb_add_config()
810 list_del(&config->list); in usb_add_config()
811 config->cdev = NULL; in usb_add_config()
816 config->bConfigurationValue, config, in usb_add_config()
817 config->superspeed ? " super" : "", in usb_add_config()
818 config->highspeed ? " high" : "", in usb_add_config()
819 config->fullspeed in usb_add_config()
826 struct usb_function *f = config->interface[i]; in usb_add_config()
842 DBG(cdev, "added config '%s'/%u --> %d\n", config->label, in usb_add_config()
843 config->bConfigurationValue, status); in usb_add_config()
849 struct usb_configuration *config) in remove_config() argument
851 while (!list_empty(&config->functions)) { in remove_config()
854 f = list_first_entry(&config->functions, in remove_config()
859 f->unbind(config, f); in remove_config()
863 list_del(&config->list); in remove_config()
864 if (config->unbind) { in remove_config()
865 DBG(cdev, "unbind config '%s'/%p\n", config->label, config); in remove_config()
866 config->unbind(config); in remove_config()
881 struct usb_configuration *config) in usb_remove_config() argument
887 if (cdev->config == config) in usb_remove_config()
892 remove_config(cdev, config); in usb_remove_config()
1559 if (cdev->config) in composite_setup()
1560 *(u8 *)req->buf = cdev->config->bConfigurationValue; in composite_setup()
1572 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1574 f = cdev->config->interface[intf]; in composite_setup()
1592 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1594 f = cdev->config->interface[intf]; in composite_setup()
1619 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1621 f = cdev->config->interface[intf]; in composite_setup()
1642 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1644 f = cdev->config->interface[intf]; in composite_setup()
1761 if (cdev->config) { in composite_setup()
1762 list_for_each_entry(f, &cdev->config->functions, list) in composite_setup()
1770 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1772 f = cdev->config->interface[intf]; in composite_setup()
1777 list_for_each_entry(f, &cdev->config->functions, list) { in composite_setup()
1781 if (&f->list == &cdev->config->functions) in composite_setup()
1791 c = cdev->config; in composite_setup()
1844 if (cdev->config) in composite_disconnect()
1872 WARN_ON(cdev->config); in __composite_unbind()
2090 if (cdev->config) { in composite_suspend()
2091 list_for_each_entry(f, &cdev->config->functions, list) { in composite_suspend()
2116 if (cdev->config) { in composite_resume()
2117 list_for_each_entry(f, &cdev->config->functions, list) { in composite_resume()
2122 maxpower = cdev->config->MaxPower; in composite_resume()