USB子系统初始化的时候就会注册usb_generic_driver, 它的结构体类型是usb_device_driver,它是USB世界里唯一的一个USB设备驱动,区别于struct usb_driver USB驱动。 ·USB设备驱动(usb device driver)就只有一个,即usb_generice_driver这个对象,所有USB设备都要绑定到usb_generic_driver上,它的使命可以概括为:为USB设...
1 static int hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,int retry_counter) 2 { 3 ... ... 4 for (j = 0; j < SET_ADDRESS_TRIES; ++j) 5 { 6 retval = hub_set_address(udev); //(1)设置地址,告诉USB设备新的地址编号 7 8 if (retval >= 0) 9...
1. drivers/usb/core/hub.c的第2186行位于hub_port_init()函数里 它又是被谁调用的,如下图所示,我们搜索到它是通过hub_thread()函数调用的 hub_thread()函数如下: staticinthub_thread(void*__unused) {do{ hub_events();//执行一次hub事件函数wait_event_interruptible(khubd_wait,!list_empty(&hub_even...
然后会放在usb总线上usb_set_device_state(udev,USB_STATE_POWERED);//设置注册的USB设备的状态标志...choose_address(udev);//(2)给新的设备分配一个地址编号status=hub_port_init(hub,udev,port1,i);//(3)
drivers/usb/core/hub.c程序先放到一边,待会再来分析它。先尝试找一下USB控制器的驱动程序,在drivers\usb\host\Ohci-s3c2410.c找到了这个驱动程序, 它以平台设备驱动程序为框架,drivers\usb\host\Ohci-s3c2410.c属于driver层 staticstructplatform_driver ohci_hcd_s3c2410_driver ={ ...
USB device driver programming reference(USB 设备驱动程序编程参考) 编写USB 主控制器驱动程序 如果要开发不符合规范或开发自定义非 xHCI 硬件(如虚拟主机控制器)的 xHCI 主机控制器,则可以编写与 UCX 通信的主机控制器驱动程序。 例如,可以考虑支持 USB 设备的无线坞。 电脑通过无线坞与 USB 设备通信,使用基于 ...
hubbusif.h Include\km 定义由 USB 端口驱动程序导出并可供 USB 集线器驱动程序使用的服务。 usb.h Include\shared 定义USB 请求块的 URB 结构(URB,) 客户端驱动程序需要将请求发送到 USB 驱动程序堆栈。 usb100.h Include\shared 根据官方 USB 1.0 规范定义 USB 描述符。 usb200.h Include\shared usb10...
I(format_iface):前面带*号表示正在用这个接口,If#= 0 接口编号为0,Alt= 0 备用接口描述符编号为0 ,#EPs= 1 该接口使用的端点数,不包括端点0,Cls=09(hub ) Sub=00 ,接口类和接口子类 ,Prot=00 接口的协议 为0,Driver=hub 此接口使用的driver为hub ...
probe = driver_probe, .disconnect = driver_disconnect, }; 3.1.3 初始化USB Hub 初始化一个USB设备集线器,用来检测USB设备的连接和断开。 // linux-2.6.22.6/drivers/usb/core/usb.c retval = usb_hub_init(); if (retval) goto hub_init_failed; // linux-2.6.22.6/drivers/usb/core/hub.c int ...
[ERR]: [sunxi_udc_get_config_param:1751]: usbc0 usbd_driver_level fetch error! adbd service init successful msh />get device descriptor set address get device descriptor get configuration descriptor get string descriptor 2. get string descriptor 0. ...