forked from luck/tmp_suning_uos_patched
usb: composite: add bind_deactivated flag to usb_function
This patch introduces 'bind_deactivated' flag in struct usb_function. Functions which don't want to be activated automatically after bind should set this flag, and when they start to be ready to work they should call usb_function_activate(). When USB function sets 'bind_deactivated' flag, initial deactivation counter is incremented automatically, so there is no need to call usb_function_deactivate() in function bind. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
5601250bb1
commit
d5bb9b81db
@ -209,6 +209,12 @@ int usb_add_function(struct usb_configuration *config,
|
||||
function->config = config;
|
||||
list_add_tail(&function->list, &config->functions);
|
||||
|
||||
if (function->bind_deactivated) {
|
||||
value = usb_function_deactivate(function);
|
||||
if (value)
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* REVISIT *require* function->bind? */
|
||||
if (function->bind) {
|
||||
value = function->bind(config, function);
|
||||
|
@ -228,6 +228,8 @@ struct usb_function {
|
||||
struct list_head list;
|
||||
DECLARE_BITMAP(endpoints, 32);
|
||||
const struct usb_function_instance *fi;
|
||||
|
||||
unsigned int bind_deactivated:1;
|
||||
};
|
||||
|
||||
int usb_add_function(struct usb_configuration *, struct usb_function *);
|
||||
|
Loading…
Reference in New Issue
Block a user