static int __init init(void) { /* We *could* export two configs; that'd be much cleaner... * but neither of these product IDs was defined that way. */ if (use_acm) { serial_config_driver.label = "CDC ACM config"; serial_config_driver.bConfigurationValue = 2; device_desc.bDeviceClass = USB_CLASS_COMM; device_desc.idProduct = cpu_to_le16(GS_CDC_PRODUCT_ID); } else if (use_obex) { serial_config_driver.label = "CDC OBEX config"; serial_config_driver.bConfigurationValue = 3; device_desc.bDeviceClass = USB_CLASS_COMM; device_desc.idProduct = cpu_to_le16(GS_CDC_OBEX_PRODUCT_ID); } else { serial_config_driver.label = "Generic Serial config"; serial_config_driver.bConfigurationValue = 1; device_desc.bDeviceClass = USB_CLASS_VENDOR_SPEC; device_desc.idProduct = cpu_to_le16(GS_PRODUCT_ID); } strings_dev[STRING_DESCRIPTION_IDX].s = serial_config_driver.label; return usb_composite_probe(&gserial_driver); }
int usb_serial_register(struct usb_serial_pdata *pdata) { /* We *could* export two configs; that'd be much cleaner... * but neither of these product IDs was defined that way. */ use_acm = pdata->acm; /* * PXA CPU suffer a silicon bug which prevents them from being a * compound device, forbiding the ACM configurations. */ if (IS_ENABLED(CONFIG_ARCH_PXA2XX)) use_acm = 0; if (use_acm) { serial_config_driver.label = "CDC ACM config"; serial_config_driver.bConfigurationValue = 2; device_desc.bDeviceClass = USB_CLASS_COMM; } else { serial_config_driver.label = "Generic Serial config"; serial_config_driver.bConfigurationValue = 1; device_desc.bDeviceClass = USB_CLASS_VENDOR_SPEC; } return usb_composite_probe(&gserial_driver); }
static int usbg_attach_cb(bool connect) { int ret = 0; if (connect) ret = usb_composite_probe(&usbg_driver, usb_target_bind); else usb_composite_unregister(&usbg_driver); return ret; }
static int __init init(void) { return usb_composite_probe(&acm_ms_driver); }
static int __init init(void) { return usb_composite_probe(ð_driver, eth_bind); }
static int __init init(void) { return usb_composite_probe(&zero_driver, zero_bind); }
static int __init nokia_init(void) { return usb_composite_probe(&nokia_driver, nokia_bind); }
static int __init multi_init(void) { return usb_composite_probe(&multi_driver); }
static int __init msg_init(void) { return usb_composite_probe(&msg_driver, msg_bind); }
static int __init init(void) { return usb_composite_probe(&ncm_driver, gncm_bind); }
static int __init nokia_init(void) { printk("nokia_init called!!!!\n"); return usb_composite_probe(&nokia_driver, nokia_bind); }
static int __init webcam_init(void) { return usb_composite_probe(&webcam_driver, webcam_bind); }
static int __init init(void) { return usb_composite_probe(&cdc_driver, cdc_bind); }
static int usbg_attach(struct usb_function_instance *f) { return usb_composite_probe(&usbg_driver); }