Lines Matching refs:config

198 int usb_add_function(struct usb_configuration *config,  in usb_add_function()  argument
203 DBG(config->cdev, "adding '%s'/%p to config '%s'/%p\n", in usb_add_function()
205 config->label, config); in usb_add_function()
210 function->config = config; in usb_add_function()
211 list_add_tail(&function->list, &config->functions); in usb_add_function()
221 value = function->bind(config, function); in usb_add_function()
224 function->config = NULL; in usb_add_function()
234 if (!config->fullspeed && function->fs_descriptors) in usb_add_function()
235 config->fullspeed = true; in usb_add_function()
236 if (!config->highspeed && function->hs_descriptors) in usb_add_function()
237 config->highspeed = true; in usb_add_function()
238 if (!config->superspeed && function->ss_descriptors) in usb_add_function()
239 config->superspeed = true; in usb_add_function()
243 DBG(config->cdev, "adding '%s'/%p --> %d\n", in usb_add_function()
282 struct usb_composite_dev *cdev = function->config->cdev; in usb_function_deactivate()
310 struct usb_composite_dev *cdev = function->config->cdev; in usb_function_activate()
352 int usb_interface_id(struct usb_configuration *config, in usb_interface_id() argument
355 unsigned id = config->next_interface_id; in usb_interface_id()
358 config->interface[id] = function; in usb_interface_id()
359 config->next_interface_id = id + 1; in usb_interface_id()
385 static int config_buf(struct usb_configuration *config, in config_buf() argument
400 c->bNumInterfaces = config->next_interface_id; in config_buf()
401 c->bConfigurationValue = config->bConfigurationValue; in config_buf()
402 c->iConfiguration = config->iConfiguration; in config_buf()
403 c->bmAttributes = USB_CONFIG_ATT_ONE | config->bmAttributes; in config_buf()
404 c->bMaxPower = encode_bMaxPower(speed, config); in config_buf()
407 if (config->descriptors) { in config_buf()
409 config->descriptors); in config_buf()
417 list_for_each_entry(f, &config->functions, list) { in config_buf()
628 list_for_each_entry(f, &cdev->config->functions, list) { in reset_config()
634 cdev->config = NULL; in reset_config()
655 if (cdev->config) in set_config()
664 if (cdev->config) in set_config()
677 cdev->config = c; in set_config()
746 struct usb_configuration *config) in usb_add_config_only() argument
750 if (!config->bConfigurationValue) in usb_add_config_only()
755 if (c->bConfigurationValue == config->bConfigurationValue) in usb_add_config_only()
759 config->cdev = cdev; in usb_add_config_only()
760 list_add_tail(&config->list, &cdev->configs); in usb_add_config_only()
762 INIT_LIST_HEAD(&config->functions); in usb_add_config_only()
763 config->next_interface_id = 0; in usb_add_config_only()
764 memset(config->interface, 0, sizeof(config->interface)); in usb_add_config_only()
786 struct usb_configuration *config, in usb_add_config() argument
795 config->bConfigurationValue, in usb_add_config()
796 config->label, config); in usb_add_config()
798 status = usb_add_config_only(cdev, config); in usb_add_config()
802 status = bind(config); in usb_add_config()
804 while (!list_empty(&config->functions)) { in usb_add_config()
807 f = list_first_entry(&config->functions, in usb_add_config()
813 f->unbind(config, f); in usb_add_config()
817 list_del(&config->list); in usb_add_config()
818 config->cdev = NULL; in usb_add_config()
823 config->bConfigurationValue, config, in usb_add_config()
824 config->superspeed ? " super" : "", in usb_add_config()
825 config->highspeed ? " high" : "", in usb_add_config()
826 config->fullspeed in usb_add_config()
833 struct usb_function *f = config->interface[i]; in usb_add_config()
847 DBG(cdev, "added config '%s'/%u --> %d\n", config->label, in usb_add_config()
848 config->bConfigurationValue, status); in usb_add_config()
854 struct usb_configuration *config) in remove_config() argument
856 while (!list_empty(&config->functions)) { in remove_config()
859 f = list_first_entry(&config->functions, in remove_config()
864 f->unbind(config, f); in remove_config()
868 list_del(&config->list); in remove_config()
869 if (config->unbind) { in remove_config()
870 DBG(cdev, "unbind config '%s'/%p\n", config->label, config); in remove_config()
871 config->unbind(config); in remove_config()
886 struct usb_configuration *config) in usb_remove_config() argument
892 if (cdev->config == config) in usb_remove_config()
897 remove_config(cdev, config); in usb_remove_config()
1546 struct usb_configuration *config; in composite_setup() local
1549 if (cdev->config) in composite_setup()
1550 config = cdev->config; in composite_setup()
1552 config = list_first_entry( in composite_setup()
1555 if (!config) in composite_setup()
1567 memcpy(req->buf, config->descriptors[0], value); in composite_setup()
1592 if (cdev->config) in composite_setup()
1593 *(u8 *)req->buf = cdev->config->bConfigurationValue; in composite_setup()
1605 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1607 f = cdev->config->interface[intf]; in composite_setup()
1625 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1627 f = cdev->config->interface[intf]; in composite_setup()
1652 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1654 f = cdev->config->interface[intf]; in composite_setup()
1675 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1677 f = cdev->config->interface[intf]; in composite_setup()
1794 if (cdev->config) { in composite_setup()
1795 list_for_each_entry(f, &cdev->config->functions, list) in composite_setup()
1803 if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) in composite_setup()
1805 f = cdev->config->interface[intf]; in composite_setup()
1810 list_for_each_entry(f, &cdev->config->functions, list) { in composite_setup()
1814 if (&f->list == &cdev->config->functions) in composite_setup()
1824 c = cdev->config; in composite_setup()
1877 if (cdev->config) in composite_disconnect()
1905 WARN_ON(cdev->config); in __composite_unbind()
2123 if (cdev->config) { in composite_suspend()
2124 list_for_each_entry(f, &cdev->config->functions, list) { in composite_suspend()
2149 if (cdev->config) { in composite_resume()
2150 list_for_each_entry(f, &cdev->config->functions, list) { in composite_resume()
2155 maxpower = cdev->config->MaxPower; in composite_resume()