Linux3.10.x的USB学习笔记之HUB
2017-08-18 11:25
225 查看
入口函数usb_hub_init:
注册usb_driver
开启内核线程kthread_run()
卸载usb_driver //如果线程开启失败
出口函数usb_hub_cleanup:
停止线程:kthread_stop
usb_deregister(&hub_driver);
插入一个USB设备,产生一个中断
Hub_irq 断主控制器处理urb的结果状态,如是OK的,则继续处理。
Kick_khubd hub 加入到hub驱动队列hub_event_list中,唤醒hub守护进程wake_up(khubd_wait),开始解析hub
hub_thread 开启hub线程
hub_port_connect_change hub端口发生变化
分配内存
udev= usb_alloc_dev(hdev, hdev->bus, port1);
dev->dev.bus= &usb_bus_type;
初始化设备端口
hub_port_init
usb_get_device_descriptor(udev,8); // 获取设备描述符
retval= usb_get_device_descriptor(udev, USB_DT_DEVICE_SIZE);
usb_new_device(udev) //分配一个新的设备
err= usb_get_configuration(udev); // 把所有的描述符都读出来,并解析
usb_parse_configuration
device_add // 把device放入usb_bus_type的dev链表,
//从usb_bus_type的driver链表里取出usb_driver,
//把usb_interface和usb_driver的id_table比较
// 如果能匹配,调用usb_driver的probe
注册usb_driver
开启内核线程kthread_run()
卸载usb_driver //如果线程开启失败
出口函数usb_hub_cleanup:
停止线程:kthread_stop
usb_deregister(&hub_driver);
插入一个USB设备,产生一个中断
Hub_irq 断主控制器处理urb的结果状态,如是OK的,则继续处理。
Kick_khubd hub 加入到hub驱动队列hub_event_list中,唤醒hub守护进程wake_up(khubd_wait),开始解析hub
hub_thread 开启hub线程
hub_port_connect_change hub端口发生变化
分配内存
udev= usb_alloc_dev(hdev, hdev->bus, port1);
dev->dev.bus= &usb_bus_type;
初始化设备端口
hub_port_init
usb_get_device_descriptor(udev,8); // 获取设备描述符
retval= usb_get_device_descriptor(udev, USB_DT_DEVICE_SIZE);
usb_new_device(udev) //分配一个新的设备
err= usb_get_configuration(udev); // 把所有的描述符都读出来,并解析
usb_parse_configuration
device_add // 把device放入usb_bus_type的dev链表,
//从usb_bus_type的driver链表里取出usb_driver,
//把usb_interface和usb_driver的id_table比较
// 如果能匹配,调用usb_driver的probe
相关文章推荐
- 学习笔记 --- LINUX USB设备驱动的编写
- Linux下USB内核之学习笔记
- 学习笔记 --- LINUX USB总线驱动框架分析
- zynq-7000学习笔记(十二)——Linux下USB摄像头+VDMA+FAST corner+frame buffer测试
- linux驱动学习笔记:USB README
- ARM-LINUX学习笔记-(虚拟机linux串口终端以及USB程序下载,基于TQ2440)
- 使用u-boot的USB下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记06
- TQ2440 学习笔记—— 5、Linux烧写——USB
- linux学习笔记四:安装lsusb
- ARM2440学习笔记--Linux系统下串口调试和USB调试环境搭建
- Linux下USB内核之学习笔记(一)
- linux学习笔记
- rh9 linux服务配置学习笔记--------dns
- 写得蛮好的linux学习笔记
- 有关LINUX I/O 的一些学习笔记
- 写得蛮好的linux学习笔记
- 写得蛮好的linux学习笔记(linux目录架构)
- 写得蛮好的linux学习笔记(一些常用的基本命令)
- linux 学习笔记(系统管理篇#已整理完#)
- Linux基础知识学习笔记(一)--文件系统的权限管理