Exemple #1
0
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);
}
Exemple #2
0
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;
}
Exemple #4
0
static int __init init(void)
{
	return usb_composite_probe(&acm_ms_driver);
}
Exemple #5
0
static int __init init(void)
{
	return usb_composite_probe(&eth_driver, eth_bind);
}
Exemple #6
0
static int __init init(void)
{
	return usb_composite_probe(&zero_driver, zero_bind);
}
Exemple #7
0
static int __init nokia_init(void)
{
	return usb_composite_probe(&nokia_driver, nokia_bind);
}
Exemple #8
0
static int __init multi_init(void)
{
	return usb_composite_probe(&multi_driver);
}
Exemple #9
0
static int __init msg_init(void)
{
	return usb_composite_probe(&msg_driver, msg_bind);
}
Exemple #10
0
static int __init init(void)
{
	return usb_composite_probe(&ncm_driver, gncm_bind);
}
Exemple #11
0
static int __init nokia_init(void)
{
	printk("nokia_init called!!!!\n");
	return usb_composite_probe(&nokia_driver, nokia_bind);
}
Exemple #12
0
static int __init
webcam_init(void)
{
	return usb_composite_probe(&webcam_driver, webcam_bind);
}
Exemple #13
0
static int __init init(void)
{
	return usb_composite_probe(&cdc_driver, cdc_bind);
}
Exemple #14
0
static int usbg_attach(struct usb_function_instance *f)
{
	return usb_composite_probe(&usbg_driver);
}