Source
58
58
*
59
59
* @klist_children - klist containing all children of this device
60
60
* @knode_parent - node in sibling list
61
61
* @knode_driver - node in driver list
62
62
* @knode_bus - node in bus list
63
63
* @knode_class - node in class list
64
64
* @deferred_probe - entry in deferred_probe_list which is used to retry the
65
65
* binding of drivers which were unable to get all the resources needed by
66
66
* the device; typically because it depends on another driver getting
67
67
* probed first.
68
+
* @async_driver - pointer to device driver awaiting probe via async_probe
68
69
* @device - pointer back to the struct device that this structure is
69
70
* associated with.
70
71
* @dead - This device is currently either in the process of or has been
71
72
* removed from the system. Any asynchronous events scheduled for this
72
73
* device should exit without taking any action.
73
74
*
74
75
* Nothing outside of the driver core should ever touch these fields.
75
76
*/
76
77
struct device_private {
77
78
struct klist klist_children;
78
79
struct klist_node knode_parent;
79
80
struct klist_node knode_driver;
80
81
struct klist_node knode_bus;
81
82
struct klist_node knode_class;
82
83
struct list_head deferred_probe;
84
+
struct device_driver *async_driver;
83
85
struct device *device;
84
86
u8 dead:1;
85
87
};
86
88
#define to_device_private_parent(obj) \
87
89
container_of(obj, struct device_private, knode_parent)
88
90
#define to_device_private_driver(obj) \
89
91
container_of(obj, struct device_private, knode_driver)
90
92
#define to_device_private_bus(obj) \
91
93
container_of(obj, struct device_private, knode_bus)
92
94
#define to_device_private_class(obj) \