Linux USB subsystem --- register generic usb driver
2012-03-26 21:38
337 查看
目的:对USB作深入学习,在此留下笔记。欢迎讨论。
[Linux 3.2] [driver/usb/core/driver.c]
函数:usb_register_device_driver
此过程是注册一个usb的通用程驱动。驱动注册的过程与usbfs驱动注册类似。其结果是:在/sys/bus/usb/drivers/下面创建usb目录。在usb目录下面创建如下属性文件。
bind uevent unbind
至此,整个usb core的初始化过程完成。
后面将进入到USB host controller的初始化。
[Linux 3.2] [driver/usb/core/driver.c]
函数:usb_register_device_driver
/** * usb_register_device_driver - register a USB device (not interface) driver * @new_udriver: USB operations for the device driver * @owner: module owner of this driver. * * Registers a USB device driver with the USB core. The list of * unattached devices will be rescanned whenever a new driver is * added, allowing the new driver to attach to any recognized devices. * Returns a negative error code on failure and 0 on success. */ int usb_register_device_driver(struct usb_device_driver *new_udriver, struct module *owner) { int retval = 0; if (usb_disabled()) return -ENODEV; new_udriver->drvwrap.for_devices = 1; new_udriver->drvwrap.driver.name = (char *) new_udriver->name; new_udriver->drvwrap.driver.bus = &usb_bus_type; new_udriver->drvwrap.driver.probe = usb_probe_device; new_udriver->drvwrap.driver.remove = usb_unbind_device; new_udriver->drvwrap.driver.owner = owner; retval = driver_register(&new_udriver->drvwrap.driver); if (!retval) { pr_info("%s: registered new device driver %s\n", usbcore_name, new_udriver->name); usbfs_update_special(); } else { printk(KERN_ERR "%s: error %d registering device " " driver %s\n", usbcore_name, retval, new_udriver->name); } return retval; } EXPORT_SYMBOL_GPL(usb_register_device_driver);
此过程是注册一个usb的通用程驱动。驱动注册的过程与usbfs驱动注册类似。其结果是:在/sys/bus/usb/drivers/下面创建usb目录。在usb目录下面创建如下属性文件。
bind uevent unbind
至此,整个usb core的初始化过程完成。
后面将进入到USB host controller的初始化。
相关文章推荐
- Linux USB subsystem --- register generic usb driver
- Linux USB subsystem --- USBFS driver registration
- Linux USB subsystem --- EHCI host controller register
- Linux USB subsystem --- EHCI host controller register
- Linux USB subsystem --- USBFS driver registration
- Linux Platform Device and Driver,platform_add_devices()->platform_driver_register()
- linux下设备device_register和驱动driver_register先后注册的影响和关系
- understanding linux usb ehci device driver(1)
- Linux Platform Device and Driver,platform_add_devices()->platform_driver_register()
- Linux USB subsystem --- USB create HCD
- 我对linux理解之driver_register
- Solaris USB设备驱动-USB Generic Driver
- 我对linux理解之driver_register
- Reading notes about Generic Time Subsystem implementation on linux
- Linux USB-Wifi Driver
- Linux gets first driver for USB 3.0
- Linux Platform Device and Driver : platform_add_devices()->platform_driver_register()
- understanding linux usb ehci device driver(1)
- Linux USB subsystem --- USB create HCD
- understanding linux usb ehci device driver(1)