static __init int rndis_do_config(struct usb_configuration *c) { int ret; if (gadget_is_otg(c->cdev->gadget)) { c->descriptors = otg_desc; c->bmAttributes |= USB_CONFIG_ATT_WAKEUP; } ret = rndis_bind_config(c, host_mac, the_dev); if (ret < 0) return ret; f_acm_rndis = usb_get_function(fi_acm); if (IS_ERR(f_acm_rndis)) return PTR_ERR(f_acm_rndis); ret = usb_add_function(c, f_acm_rndis); if (ret) goto err_conf; ret = fsg_bind_config(c->cdev, c, &fsg_common); if (ret < 0) goto err_fsg; return 0; err_fsg: usb_remove_function(c, f_acm_rndis); err_conf: usb_put_function(f_acm_rndis); return ret; }
static int maemo_do_config(struct usb_configuration *c) { int ret; ret = rndis_bind_config(c, hostaddr); if (ret < 0) return ret; ret = diag_function_add(c); if (ret < 0) return ret; ret = gser_bind_config(c, 0); if (ret < 0) return ret; ret = gser_bind_config(c, 1); if (ret < 0) return ret; ret = rmnet_function_add(c); if (ret < 0) return ret; ret = fsg_add(c->cdev, c, fsg_common); if (ret < 0) return ret; return 0; }
/* * We may not have an RNDIS configuration, but if we do it needs to be * the first one present. That's to make Microsoft's drivers happy, * and to follow DOCSIS 1.0 (cable modem standard). */ static int __init rndis_do_config(struct usb_configuration *c) { /* FIXME alloc iConfiguration string, set it in c->strings */ if (gadget_is_otg(c->cdev->gadget)) { c->descriptors = otg_desc; c->bmAttributes |= USB_CONFIG_ATT_WAKEUP; } return rndis_bind_config(c, hostaddr, 0, manufacturer); }
static int __init rndis_do_config(struct usb_configuration *c) { if (gadget_is_otg(c->cdev->gadget)) { c->descriptors = otg_desc; c->bmAttributes |= USB_CONFIG_ATT_WAKEUP; } return rndis_bind_config(c, hostaddr); }
/* * We may not have an RNDIS configuration, but if we do it needs to be * the first one present. That's to make Microsoft's drivers happy, * and to follow DOCSIS 1.0 (cable modem standard). */ static int __init rndis_do_config(struct usb_configuration *c) { /* FIXME alloc iConfiguration string, set it in c->strings */ if (gadget_is_otg(c->cdev->gadget)) { c->descriptors = otg_desc; c->bmAttributes |= USB_CONFIG_ATT_WAKEUP; } return rndis_bind_config(c, hostaddr, cpu_to_le16(CDC_VENDOR_NUM), strings_dev[STRING_MANUFACTURER_IDX].s); }
static int __init rndis_do_config(struct usb_configuration *c) { int ret; if (gadget_is_otg(c->cdev->gadget)) { c->descriptors = otg_desc; c->bmAttributes |= USB_CONFIG_ATT_WAKEUP; } ret = rndis_bind_config(c, hostaddr); if (ret < 0) return ret; ret = acm_bind_config(c, 0); if (ret < 0) return ret; ret = fsg_add(c->cdev, c, fsg_common); if (ret < 0) return ret; return 0; }
/* * We may not have an RNDIS configuration, but if we do it needs to be * the first one present. That's to make Microsoft's drivers happy, * and to follow DOCSIS 1.0 (cable modem standard). */ static int __init rndis_do_config(struct usb_configuration *c) { /* FIXME alloc iConfiguration string, set it in c->strings */ return rndis_bind_config(c, hostaddr, device_desc.idVendor, manufacturer ); }