Changeset 717 for GPL/trunk/lib32/driver.c
- Timestamp:
- Aug 7, 2022, 6:11:12 PM (3 years ago)
- Location:
- GPL/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
- Property svn:mergeinfo changed
/GPL/branches/uniaud32-next merged: 710-716
- Property svn:mergeinfo changed
-
GPL/trunk/lib32/driver.c
r679 r717 26 26 #include "base.h" 27 27 28 #define devres_log(dev, node, op) do {} while (0)29 30 struct devres_node {31 struct list_head entry;32 dr_release_t release;33 #ifdef CONFIG_DEBUG_DEVRES34 const char *name;35 size_t size;36 #endif37 };38 39 struct devres {40 struct devres_node node;41 /* -- 3 pointers */42 unsigned long long data[1]; /* guarantee ull alignment */43 };44 45 46 28 /** 47 29 * dev_set_name - set a device name … … 60 42 } 61 43 62 static void add_dr(struct device *dev, struct devres_node *node) 63 { 64 devres_log(dev, node, "ADD"); 65 BUG_ON(!list_empty(&node->entry)); 66 list_add_tail(&node->entry, &dev->devres_head); 67 } 68 69 /** 70 * devres_add - Register device resource 71 * @dev: Device to add resource to 72 * @res: Resource to register 73 * 74 * Register devres @res to @dev. @res should have been allocated 75 * using devres_alloc(). On driver detach, the associated release 76 * function will be invoked and devres will be freed automatically. 77 */ 78 void devres_add(struct device *dev, void *res) 79 { 80 struct devres *dr = container_of(res, struct devres, data); 81 unsigned long flags; 82 83 spin_lock_irqsave(&dev->devres_lock, flags); 84 add_dr(dev, &dr->node); 85 spin_unlock_irqrestore(&dev->devres_lock, flags); 86 } 44 87 45 88 46 static struct device *next_device(struct klist_iter *i)
Note:
See TracChangeset
for help on using the changeset viewer.