/Linux-v5.15/drivers/clk/ |
D | clk-devres.c | 50 struct clk_bulk_devres *devres = res; in devm_clk_bulk_release() local 52 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release() 58 struct clk_bulk_devres *devres; in __devm_clk_bulk_get() local 61 devres = devres_alloc(devm_clk_bulk_release, in __devm_clk_bulk_get() 62 sizeof(*devres), GFP_KERNEL); in __devm_clk_bulk_get() 63 if (!devres) in __devm_clk_bulk_get() 71 devres->clks = clks; in __devm_clk_bulk_get() 72 devres->num_clks = num_clks; in __devm_clk_bulk_get() 73 devres_add(dev, devres); in __devm_clk_bulk_get() 75 devres_free(devres); in __devm_clk_bulk_get() [all …]
|
/Linux-v5.15/drivers/base/ |
D | devres.c | 26 struct devres { struct 100 if (unlikely(check_add_overflow(sizeof(struct devres), in check_dr_size() 107 static __always_inline struct devres * alloc_dr(dr_release_t release, in alloc_dr() 111 struct devres *dr; in alloc_dr() 120 memset(dr, 0, offsetof(struct devres, data)); in alloc_dr() 160 struct devres *dr; in __devres_alloc_node() 200 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res() 221 struct devres *dr = container_of(res, struct devres, data); in devres_free() 240 struct devres *dr = container_of(res, struct devres, data); in devres_add() 249 static struct devres *find_dr(struct device *dev, dr_release_t release, in find_dr() [all …]
|
D | trace.h | 19 DECLARE_EVENT_CLASS(devres, 41 DEFINE_EVENT(devres, devres_log,
|
D | Kconfig | 134 This option enables kernel parameter devres.log. If set to 135 non-zero, devres debug messages are printed. Select this if 136 you are having a problem with devres or want to debug 137 resource management for a managed device. devres.log can be
|
D | core.c | 2498 union device_attr_group_devres *devres = res; in devm_attr_group_remove() local 2499 const struct attribute_group *group = devres->group; in devm_attr_group_remove() 2507 union device_attr_group_devres *devres = res; in devm_attr_groups_remove() local 2508 const struct attribute_group **groups = devres->groups; in devm_attr_groups_remove() 2526 union device_attr_group_devres *devres; in devm_device_add_group() local 2529 devres = devres_alloc(devm_attr_group_remove, in devm_device_add_group() 2530 sizeof(*devres), GFP_KERNEL); in devm_device_add_group() 2531 if (!devres) in devm_device_add_group() 2536 devres_free(devres); in devm_device_add_group() 2540 devres->group = grp; in devm_device_add_group() [all …]
|
D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
/Linux-v5.15/Documentation/driver-api/driver-model/ |
D | devres.rst | 13 3. Devres Group : Group devres'es and release them together 22 devres came up while trying to convert libata to use iomap. Each 50 devres is basically linked list of arbitrarily sized memory areas 51 associated with a struct device. Each devres entry is associated with 52 a release function. A devres can be released in several ways. No 53 matter what, all devres entries are released on driver detach. On 55 devres entry is freed. 58 drivers using devres. For example, coherent DMA memory is acquired 133 devres. Complexity is shifted from less maintained low level drivers 148 Devres entries can be grouped using devres group. When a group is [all …]
|
D | index.rst | 12 devres
|
/Linux-v5.15/drivers/regulator/ |
D | devres.c | 125 struct regulator_bulk_devres *devres = res; in devm_regulator_bulk_release() local 127 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release() 148 struct regulator_bulk_devres *devres; in devm_regulator_bulk_get() local 151 devres = devres_alloc(devm_regulator_bulk_release, in devm_regulator_bulk_get() 152 sizeof(*devres), GFP_KERNEL); in devm_regulator_bulk_get() 153 if (!devres) in devm_regulator_bulk_get() 158 devres->consumers = consumers; in devm_regulator_bulk_get() 159 devres->num_consumers = num_consumers; in devm_regulator_bulk_get() 160 devres_add(dev, devres); in devm_regulator_bulk_get() 162 devres_free(devres); in devm_regulator_bulk_get()
|
/Linux-v5.15/drivers/hwtracing/intel_th/ |
D | core.c | 635 struct resource *devres = th->resource; in intel_th_subdevice_alloc() local 649 res[r].end = resource_size(&devres[bar]) - 1; in intel_th_subdevice_alloc() 653 res[r].start += devres[bar].start; in intel_th_subdevice_alloc() 654 res[r].end += devres[bar].start; in intel_th_subdevice_alloc() 865 struct resource *devres, unsigned int ndevres) in intel_th_alloc() argument 891 switch (devres[r].flags & IORESOURCE_TYPE_BITS) { in intel_th_alloc() 893 th->resource[nr_mmios++] = devres[r]; in intel_th_alloc() 896 err = devm_request_irq(dev, devres[r].start, in intel_th_alloc() 903 th->irq = devres[r].start; in intel_th_alloc() 908 devres[r].flags); in intel_th_alloc()
|
/Linux-v5.15/drivers/input/ |
D | input.c | 1940 struct input_devres *devres = res; in devm_input_device_match() local 1942 return devres->input == data; in devm_input_device_match() 1947 struct input_devres *devres = res; in devm_input_device_release() local 1948 struct input_dev *input = devres->input; in devm_input_device_release() 1976 struct input_devres *devres; in devm_input_allocate_device() local 1978 devres = devres_alloc(devm_input_device_release, in devm_input_allocate_device() 1979 sizeof(*devres), GFP_KERNEL); in devm_input_allocate_device() 1980 if (!devres) in devm_input_allocate_device() 1985 devres_free(devres); in devm_input_allocate_device() 1992 devres->input = input; in devm_input_allocate_device() [all …]
|
/Linux-v5.15/Documentation/driver-api/firmware/ |
D | firmware_cache.rst | 26 * The firmware cache is setup by adding a devres entry for each device that 36 criteria the firmware cache is setup by adding a devres entry for the 39 * The firmware devres entry is maintained throughout the lifetime of the
|
/Linux-v5.15/Documentation/driver-api/phy/ |
D | phy.rst | 117 devm_phy_get associates the device with the PHY using devres on 119 the devres data and devres data is freed. phy_optional_get and 146 destroys the devres associated with this PHY. 157 Both these APIs destroy the PHY and devm_phy_destroy destroys the devres
|
/Linux-v5.15/Documentation/driver-api/gpio/ |
D | index.rst | 43 .. kernel-doc:: drivers/gpio/gpiolib-devres.c
|
/Linux-v5.15/kernel/irq/ |
D | Makefile | 3 obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o
|
/Linux-v5.15/drivers/gpio/ |
D | gpiolib-devres.c | 110 struct devres *dres; in devm_gpiod_get_index() 165 struct devres *dres; in devm_gpiod_get_from_of_node()
|
/Linux-v5.15/drivers/extcon/ |
D | Makefile | 7 extcon-core-objs += extcon.o devres.o
|
/Linux-v5.15/drivers/hid/ |
D | wacom_sys.c | 1231 struct wacom_sysfs_group_devres *devres = res; in wacom_devm_sysfs_group_release() local 1232 struct kobject *kobj = devres->root; in wacom_devm_sysfs_group_release() 1235 __func__, devres->group->name); in wacom_devm_sysfs_group_release() 1236 sysfs_remove_group(kobj, devres->group); in wacom_devm_sysfs_group_release() 1243 struct wacom_sysfs_group_devres *devres; in __wacom_devm_sysfs_create_group() local 1246 devres = devres_alloc(wacom_devm_sysfs_group_release, in __wacom_devm_sysfs_create_group() 1249 if (!devres) in __wacom_devm_sysfs_create_group() 1252 devres->group = group; in __wacom_devm_sysfs_create_group() 1253 devres->root = root; in __wacom_devm_sysfs_create_group() 1255 error = sysfs_create_group(devres->root, group); in __wacom_devm_sysfs_create_group() [all …]
|
/Linux-v5.15/sound/soc/ |
D | Makefile | 3 snd-soc-core-objs += soc-pcm.o soc-devres.o soc-ops.o soc-link.o soc-card.o
|
/Linux-v5.15/net/ |
D | Makefile | 9 obj-y := devres.o socket.o core/
|
/Linux-v5.15/Documentation/hwmon/ |
D | submitting-patches.rst | 95 * Use devres functions whenever possible to allocate resources. For rationale 96 and supported functions, please see Documentation/driver-api/driver-model/devres.rst. 97 If a function is not supported by devres, consider using devm_add_action().
|
/Linux-v5.15/drivers/s390/crypto/ |
D | ap_bus.c | 777 int rc, card, queue, devres, drvres; in __ap_revise_reserved() local 783 devres = test_bit_inv(card, ap_perms.apm) in __ap_revise_reserved() 788 if (!!devres != !!drvres) { in __ap_revise_reserved() 847 int card, queue, devres, drvres, rc = -ENODEV; in ap_device_probe() local 862 devres = test_bit_inv(card, ap_perms.apm) in ap_device_probe() 866 if (!!devres != !!drvres) in ap_device_probe()
|
/Linux-v5.15/Documentation/driver-api/ |
D | basics.rst | 116 .. kernel-doc:: drivers/base/devres.c
|
/Linux-v5.15/drivers/reset/ |
D | core.c | 1064 struct reset_control_bulk_devres *devres = res; in devm_reset_control_bulk_release() local 1066 reset_control_bulk_put(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release()
|
/Linux-v5.15/scripts/coccinelle/free/ |
D | devm_free.cocci | 6 /// See Documentation/driver-api/driver-model/devres.rst for more information.
|