usb_add_hcd函数:一个usb主机控制器对应一条usb总线,集成一个root_hub,对应一个usb_hcd。 int usb_add_hcd(struct usb_hcd *hcd, unsigned int irqnum, unsigned long irqflags) { // 初始化缓存池 if ((retval = hcd_buffer_create(hcd)) != 0) { dev_dbg(hcd->self.controller, "pool alloc fa...
先清除设备的状态 if (dev->state != USB_STATE_ADDRESS) usb_disable_device(dev, 1); /* Skip ep0 */ //确定我们有足够带宽提供这个配置 ret = usb_hcd_alloc_bandwidth(dev, cp, NULL, NULL); ...
先清除设备的状态 if (dev->state != USB_STATE_ADDRESS) usb_disable_device(dev, 1); /* Skip ep0 */ //确定我们有足够带宽提供这个配置 ret = usb_hcd_alloc_bandwidth(dev, cp, NULL, NULL); ...
usb_add_hcd函数:一个usb主机控制器对应一条usb总线,集成一个root_hub,对应一个usb_hcd。 int usb_add_hcd(struct usb_hcd *hcd, unsigned int irqnum, unsigned long irqflags) { // 初始化缓存池 if ((retval = hcd_buffer_create(hcd)) != 0) { dev_dbg(hcd->self.controller, "pool alloc fa...
usb_hcd xhci_hcd usb_bus usb_device usb_interface usb_device_driver和usb_driver usb_hub和usb_port 总结 2 USB子系统的设备模型 1 主要的数据结构 usb_hcd usb_hcd是所有的主机控制共同抽象出来的一个数据结构,他有着所有主机控制对于USB Core所必须的属性和方法,包括中断的管理和更上层不同ip核的usb...
IOCTL_GET_HCD_DRIVERKEY_NAME IOCTL IOCTL_USB_DIAGNOSTIC_MODE_OFF IOCTL IOCTL_USB_DIAGNOSTIC_MODE_ON IOCTL IOCTL_USB_GET_ROOT_HUB_NAME IOCTL IOCTL_USB_USER_REQUEST IOCTL USB_BANDWIDTH_INFO structure USB_BUS_STATISTICS_0 structure USB_CLOSE_RAW_DEVICE_PARAMETERS structure ...
B(format_bandwidth):root_hub专有的一个带宽利用的一个展示,这个是实时更新的。Alloc = 0/800,表示在单位时间内(1000)为周期性(intr/iso 中断传输和同步传输)申请的预留的时间为0,最多是800。意思是最多有80%的带宽分给中断传输和同步传输,应为这些是周期性的一直在的直到设备移除,为其通信传输如 控制传输...
CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=m CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_OTG=y # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_...
uhci_alloc_td在td_pool中分配一个td结构所需要的内存大小 uhci_alloc_td在drivers/usb/host/uhci-q.c中 static struct uhci_td *uhci_alloc_td(struct uhci_hcd *uhci) { dma_addr_t dma_handle; struct uhci_td *td; //dma_handle保存的 是分配的dma缓冲区起始地址 ...
转一篇别人总结的usbd 转一篇别人总结的usbd 详细分析USB内核(USBD)提供的功能 主要有四类功能:客户端驱动管理,USB设备的配置和管理,主机控制器的管理,协议控制命令集和数据传输的管理 (1) 客户端驱动管理 USB内核通过一个双向链表usb_driver_list来管理所有客户端驱动,具体管理功能为安装和卸载两部分,对应...