Lines Matching refs:devres
2 * drivers/base/devres.c - device resource management
25 struct devres {
62 * Release functions for devres group. These callbacks are used only
84 static __always_inline struct devres * alloc_dr(dr_release_t release,
87 size_t tot_size = sizeof(struct devres) + size;
88 struct devres *dr;
111 struct devres *dr;
123 * @release: Release function devres will be associated with
127 * Allocate devres of @size bytes. The allocated area is zeroed, then
132 * Pointer to allocated devres on success, NULL on failure.
136 struct devres *dr;
148 * @res: Pointer to devres data to free
150 * Free devres created with devres_alloc().
155 struct devres *dr = container_of(res, struct devres, data);
168 * Register devres @res to @dev. @res should have been allocated
170 * function will be invoked and devres will be freed automatically.
174 struct devres *dr = container_of(res, struct devres, data);
183 static struct devres *find_dr(struct device *dev, dr_release_t release,
189 struct devres *dr = container_of(node, struct devres, node);
208 * Find the latest devres of @dev which is associated with @release
213 * Pointer to found devres, NULL if not found.
218 struct devres *dr;
232 * devres_get - Find devres, if non-existent, add one atomically
233 * @dev: Device to lookup or add devres for
234 * @new_res: Pointer to new initialized devres to add if not found
238 * Find the latest devres of @dev which has the same release function
243 * Pointer to found or added devres.
248 struct devres *new_dr = container_of(new_res, struct devres, data);
249 struct devres *dr;
273 * Find the latest devres of @dev associated with @release and for
279 * Pointer to removed devres on success, NULL if not found.
284 struct devres *dr;
308 * Find the latest devres of @dev associated with @release and for
313 * 0 if devres is found and freed, -ENOENT if not found.
336 /* First pass - move normal devres entries to @todo and clear
353 /* regular devres entry */
403 struct devres *dr, *tmp;
409 /* Release. Note that both devres and devres_group are
410 * handled as devres in the following loop. This is safe.
441 * devres_open_group - Open a new devres group
442 * @dev: Device to open devres group for
446 * Open a new devres group for @dev with @id. For @id, using a
479 /* Find devres group with ID @id. If @id is NULL, look for the latest. */
503 * devres_close_group - Close a devres group
504 * @dev: Device to close devres group for
528 * devres_remove_group - Remove a devres group
558 * devres_release_group - Release resources in a devres group
615 * automatically freed on driver detach. Like all other devres
623 struct devres *dr;