platform_driver_register(struct platform_driver *drv)注册后如何找到驱动匹配的设备
来源:互联网 发布:送巧克力知乎 编辑:程序博客网 时间:2024/05/23 17:46
platform_driver_register(struct platform_driver *drv)注册后如何找到驱动匹配的设备
struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*suspend_late)(struct platform_device *, pm_message_t state);
int (*resume_early)(struct platform_device *);
int (*resume)(struct platform_device *);
struct device_driver driver;
};
struct platform_driver 的结构成员如上,那么注册了一个struct platform_driver *drv,内核怎么知道那个设备是该驱动想驱动的呢,在什么条件下才会调用该platform_driver *drv的PROBE函数呢?struct device_driver {
const char * name;
struct bus_type * bus;
struct kobject kobj;
struct klist klist_devices;
struct klist_node knode_bus;
struct module * owner;
const char * mod_name; /* used for built-in modules */
struct module_kobject * mkobj;
int (*probe) (struct device * dev);
int (*remove) (struct device * dev);
void (*shutdown) (struct device * dev);
int (*suspend) (struct device * dev, pm_message_t state);
int (*resume) (struct device * dev);
};
struct device_driver 里的name成员是设备的名字还是改设备DRIVER的名字?这里有两个PROBE函数,是不是先调用struct device_driver 里的PROBE,然后在调用struct platform_driver里的PROBE函数
struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*suspend_late)(struct platform_device *, pm_message_t state);
int (*resume_early)(struct platform_device *);
int (*resume)(struct platform_device *);
struct device_driver driver;
};
struct platform_driver 的结构成员如上,那么注册了一个struct platform_driver *drv,内核怎么知道那个设备是该驱动想驱动的呢,在什么条件下才会调用该platform_driver *drv的PROBE函数呢?struct device_driver {
const char * name;
struct bus_type * bus;
struct kobject kobj;
struct klist klist_devices;
struct klist_node knode_bus;
struct module * owner;
const char * mod_name; /* used for built-in modules */
struct module_kobject * mkobj;
int (*probe) (struct device * dev);
int (*remove) (struct device * dev);
void (*shutdown) (struct device * dev);
int (*suspend) (struct device * dev, pm_message_t state);
int (*resume) (struct device * dev);
};
struct device_driver 里的name成员是设备的名字还是改设备DRIVER的名字?这里有两个PROBE函数,是不是先调用struct device_driver 里的PROBE,然后在调用struct platform_driver里的PROBE函数
- platform_driver_register(struct platform_driver *drv)注册后如何找到驱动匹配的设备
- platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备
- platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备
- int platform_driver_register(struct platform_driver *drv)
- 平台设备与平台驱动注册过程platform_driver_register与platform_device_register
- 驱动注册platform_driver
- [驱动注册]platform_driver_register()与platform_device_register()
- [驱动注册]platform_driver_register()与platform_device_register()
- [驱动注册]platform_driver_register()与platform_device_register()
- [驱动注册]platform_driver_register()与platform_device_register()
- [驱动注册]platform_driver_register()与platform_device_register()
- platform总线注册过程及platform_driver与platform_device的匹配
- platform总线注册过程及platform_driver与platform_device的匹配
- platform总线注册过程及platform_driver与platform_device的匹配
- platform总线注册过程及platform_driver与platform_device的匹配
- 平台设备注册流程 platform_add_devices() platform_driver_register()
- 平台设备注册流程 platform_add_devices() platform_driver_register()
- platform_driver平台设备驱动模型
- platform_device与驱动的联系
- LINUX修炼之路
- C++学习 (3)--多重继承类对象的构造函数参数的传递方法
- oracle临时表的用法总结
- NSString和NSMutableString常用方法+NSArray常用代码
- platform_driver_register(struct platform_driver *drv)注册后如何找到驱动匹配的设备
- FileIcon
- 羌笛声声胡笳怨,此心长寄天涯远
- cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
- IconImageProvider
- 3pcc
- poj 3335 Rotating Scoreboard(多边形的核存在性)
- Ubuntu 12.04 LTS下访问Windows域共享
- ListView用法