您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ usb_match_id函数代码示例

51自学网 2021-06-03 09:20:21
  C++
这篇教程C++ usb_match_id函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中usb_match_id函数的典型用法代码示例。如果您正苦于以下问题:C++ usb_match_id函数的具体用法?C++ usb_match_id怎么用?C++ usb_match_id使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了usb_match_id函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cdc_mbim_set_ctrlalt

/* Change the control interface altsetting and update the .driver_info * pointer if the matching entry after changing class codes points to * a different struct */static int cdc_mbim_set_ctrlalt(struct usbnet *dev, struct usb_interface *intf, u8 alt){	struct usb_driver *driver = to_usb_driver(intf->dev.driver);	const struct usb_device_id *id;	struct driver_info *info;	int ret;	ret = usb_set_interface(dev->udev,				intf->cur_altsetting->desc.bInterfaceNumber,				alt);	if (ret)		return ret;	id = usb_match_id(intf, driver->id_table);	if (!id)		return -ENODEV;	info = (struct driver_info *)id->driver_info;	if (info != dev->driver_info) {		dev_dbg(&intf->dev, "driver_info updated to '%s'/n",			info->description);		dev->driver_info = info;	}	return 0;}
开发者ID:OSPro,项目名称:wpj344_compatwireless,代码行数:29,


示例2: generic_probe

static int generic_probe(struct usb_interface *interface,			       const struct usb_device_id *id){	const struct usb_device_id *id_pattern;	id_pattern = usb_match_id(interface, generic_device_ids);	if (id_pattern != NULL)		return usb_serial_probe(interface, id);	return -ENODEV;}
开发者ID:philippedeswert,项目名称:linux-pandaboard,代码行数:10,


示例3: baseband_xmm_device_add_handler

static void baseband_xmm_device_add_handler(struct usb_device *udev){	struct usb_interface *intf = usb_ifnum_to_if(udev, 0);	const struct usb_device_id *id;	if (intf == NULL)		return;	id = usb_match_id(intf, xmm_pm_ids);	if (id) {		pr_debug("persist_enabled: %u/n", udev->persist_enabled);		pr_debug("Add device %d <%s %s>/n", udev->devnum, udev->manufacturer, udev->product);		usbdev = udev;		usb_enable_autosuspend(udev);		pr_debug("enable autosuspend/n");	}}
开发者ID:laufersteppenwolf,项目名称:OptimusPlay,代码行数:18,


示例4: btusb_probe

static int btusb_probe(struct usb_interface *intf,				const struct usb_device_id *id){	struct usb_endpoint_descriptor *ep_desc;	struct btusb_data *data;	struct hci_dev *hdev;	int i, err;	BT_DBG("intf %p id %p", intf, id);	/* interface numbers are hardcoded in the spec */	if (intf->cur_altsetting->desc.bInterfaceNumber != 0)		return -ENODEV;	if (!id->driver_info) {		const struct usb_device_id *match;		match = usb_match_id(intf, blacklist_table);		if (match)			id = match;	}	if (id->driver_info == BTUSB_IGNORE)		return -ENODEV;	if (ignore_dga && id->driver_info & BTUSB_DIGIANSWER)		return -ENODEV;	if (ignore_csr && id->driver_info & BTUSB_CSR)		return -ENODEV;	if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)		return -ENODEV;	if (id->driver_info & BTUSB_ATH3012) {		struct usb_device *udev = interface_to_usbdev(intf);		/* Old firmware would otherwise let ath3k driver load		 * patch and sysconfig files */		if (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x0001)			return -ENODEV;	}	data = kzalloc(sizeof(*data), GFP_KERNEL);	if (!data)		return -ENOMEM;	for (i = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) {		ep_desc = &intf->cur_altsetting->endpoint[i].desc;		if (!data->intr_ep && usb_endpoint_is_int_in(ep_desc)) {			data->intr_ep = ep_desc;			continue;		}		if (!data->bulk_tx_ep && usb_endpoint_is_bulk_out(ep_desc)) {			data->bulk_tx_ep = ep_desc;			continue;		}		if (!data->bulk_rx_ep && usb_endpoint_is_bulk_in(ep_desc)) {			data->bulk_rx_ep = ep_desc;			continue;		}	}	if (!data->intr_ep || !data->bulk_tx_ep || !data->bulk_rx_ep) {		kfree(data);		return -ENODEV;	}	data->cmdreq_type = USB_TYPE_CLASS;	data->udev = interface_to_usbdev(intf);	data->intf = intf;	spin_lock_init(&data->lock);	INIT_WORK(&data->work, btusb_work);	INIT_WORK(&data->waker, btusb_waker);	spin_lock_init(&data->txlock);	init_usb_anchor(&data->tx_anchor);	init_usb_anchor(&data->intr_anchor);	init_usb_anchor(&data->bulk_anchor);	init_usb_anchor(&data->isoc_anchor);	init_usb_anchor(&data->deferred);	hdev = hci_alloc_dev();	if (!hdev) {		kfree(data);		return -ENOMEM;	}	hdev->bus = HCI_USB;	hdev->driver_data = data;	data->hdev = hdev;	SET_HCIDEV_DEV(hdev, &intf->dev);//.........这里部分代码省略.........
开发者ID:Rukusx7,项目名称:Rockchip-GPL-Kernel,代码行数:101,


示例5: btusb_probe

static int btusb_probe(struct usb_interface *intf,				const struct usb_device_id *id){	struct usb_endpoint_descriptor *ep_desc;	struct btusb_data *data;	struct hci_dev *hdev;	int i, version, err;	BT_DBG("intf %p id %p", intf, id);	/* interface numbers are hardcoded in the spec */	if (intf->cur_altsetting->desc.bInterfaceNumber != 0)		return -ENODEV;	if (!id->driver_info) {		const struct usb_device_id *match;		match = usb_match_id(intf, blacklist_table);		if (match)			id = match;	}	if (id->driver_info == BTUSB_IGNORE)		return -ENODEV;	if (ignore_dga && id->driver_info & BTUSB_DIGIANSWER)		return -ENODEV;	if (ignore_csr && id->driver_info & BTUSB_CSR)		return -ENODEV;	if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)		return -ENODEV;	if (id->driver_info & BTUSB_ATH3012) {		struct usb_device *udev = interface_to_usbdev(intf);		version = get_rome_version(udev);		BT_INFO("Rome Version: 0x%x",  version);		/* Old firmware would otherwise let ath3k driver load		 * patch and sysconfig files */		if (version)			rome_download(udev);		else if (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x0001) {			BT_INFO("FW for ar3k is yet to be downloaded");			return -ENODEV;		}	}	data = devm_kzalloc(&intf->dev, sizeof(*data), GFP_KERNEL);	if (!data)		return -ENOMEM;	for (i = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) {		ep_desc = &intf->cur_altsetting->endpoint[i].desc;		if (!data->intr_ep && usb_endpoint_is_int_in(ep_desc)) {			data->intr_ep = ep_desc;			continue;		}		if (!data->bulk_tx_ep && usb_endpoint_is_bulk_out(ep_desc)) {			data->bulk_tx_ep = ep_desc;			continue;		}		if (!data->bulk_rx_ep && usb_endpoint_is_bulk_in(ep_desc)) {			data->bulk_rx_ep = ep_desc;			continue;		}	}	if (!data->intr_ep || !data->bulk_tx_ep || !data->bulk_rx_ep)		return -ENODEV;	data->cmdreq_type = USB_TYPE_CLASS;	data->udev = interface_to_usbdev(intf);	data->intf = intf;	spin_lock_init(&data->lock);	INIT_WORK(&data->work, btusb_work);	INIT_WORK(&data->waker, btusb_waker);	spin_lock_init(&data->txlock);	init_usb_anchor(&data->tx_anchor);	init_usb_anchor(&data->intr_anchor);	init_usb_anchor(&data->bulk_anchor);	init_usb_anchor(&data->isoc_anchor);	init_usb_anchor(&data->deferred);	hdev = hci_alloc_dev();	if (!hdev)		return -ENOMEM;	hdev->bus = HCI_USB;	hci_set_drvdata(hdev, data);	data->hdev = hdev;	SET_HCIDEV_DEV(hdev, &intf->dev);//.........这里部分代码省略.........
开发者ID:Skin1980,项目名称:bass-MM,代码行数:101,


示例6: ath3k_probe

static int ath3k_probe(struct usb_interface *intf,			const struct usb_device_id *id){	const struct firmware *firmware;	struct usb_device *udev = interface_to_usbdev(intf);	int ret;	struct ath3k_version version;	BT_DBG("intf %p id %p", intf, id);	if (intf->cur_altsetting->desc.bInterfaceNumber != 0)		return -ENODEV;	ret = get_rome_version(udev, &version);	if (!ret) {		BT_INFO("Rome detected, fw dnld will be triggered from btusb");		return -ENODEV;	}	/* match device ID in ath3k blacklist table */	if (!id->driver_info) {		const struct usb_device_id *match;		match = usb_match_id(intf, ath3k_blist_tbl);		if (match)			id = match;	}	/* load patch and sysconfig files for AR3012 */	if (id->driver_info & BTUSB_ATH3012) {		/* New firmware with patch and sysconfig files already loaded */		if (le16_to_cpu(udev->descriptor.bcdDevice) > 0x0001)			return -ENODEV;		ret = ath3k_load_patch(udev, &version);		if (ret < 0) {			BT_ERR("Loading patch file failed");			return ret;		}		ret = ath3k_load_syscfg(udev, &version);		if (ret < 0) {			BT_ERR("Loading sysconfig file failed");			return ret;		}		ret = ath3k_set_normal_mode(udev);		if (ret < 0) {			BT_ERR("Set normal mode failed");			return ret;		}		ath3k_switch_pid(udev);		return 0;	}	ret = request_firmware(&firmware, ATH3K_FIRMWARE, &udev->dev);	if (ret < 0) {		if (ret == -ENOENT)			BT_ERR("Firmware file /"%s/" not found",							ATH3K_FIRMWARE);		else			BT_ERR("Firmware file /"%s/" request failed (err=%d)",							ATH3K_FIRMWARE, ret);		return ret;	}	ret = ath3k_load_firmware(udev, firmware);	release_firmware(firmware);	return ret;}
开发者ID:CaptainThrowback,项目名称:android_kernel_htc_pme,代码行数:69,



注:本文中的usb_match_id函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ usb_maxpacket函数代码示例
C++ usb_mark_last_busy函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。