/Linux-v5.4/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.4/drivers/base/ |
D | devres.c | 27 struct devres { struct 92 static __always_inline struct devres * alloc_dr(dr_release_t release, in alloc_dr() 96 struct devres *dr; in alloc_dr() 99 if (unlikely(check_add_overflow(sizeof(struct devres), size, in alloc_dr() 107 memset(dr, 0, offsetof(struct devres, data)); in alloc_dr() 125 struct devres *dr; in __devres_alloc_node() 151 struct devres *dr; in devres_alloc_node() 191 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res() 212 struct devres *dr = container_of(res, struct devres, data); in devres_free() 231 struct devres *dr = container_of(res, struct devres, data); in devres_add() [all …]
|
D | core.c | 1348 union device_attr_group_devres *devres = res; in devm_attr_group_remove() local 1349 const struct attribute_group *group = devres->group; in devm_attr_group_remove() 1357 union device_attr_group_devres *devres = res; in devm_attr_groups_remove() local 1358 const struct attribute_group **groups = devres->groups; in devm_attr_groups_remove() 1376 union device_attr_group_devres *devres; in devm_device_add_group() local 1379 devres = devres_alloc(devm_attr_group_remove, in devm_device_add_group() 1380 sizeof(*devres), GFP_KERNEL); in devm_device_add_group() 1381 if (!devres) in devm_device_add_group() 1386 devres_free(devres); in devm_device_add_group() 1390 devres->group = grp; in devm_device_add_group() [all …]
|
D | Kconfig | 131 This option enables kernel parameter devres.log. If set to 132 non-zero, devres debug messages are printed. Select this if 133 you are having a problem with devres or want to debug 134 resource management for a managed device. devres.log can be
|
D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
/Linux-v5.4/drivers/input/ |
D | input-polldev.c | 181 struct input_polled_devres *devres = res; in devm_input_polldev_match() local 183 return devres->polldev == data; in devm_input_polldev_match() 188 struct input_polled_devres *devres = res; in devm_input_polldev_release() local 189 struct input_polled_dev *polldev = devres->polldev; in devm_input_polldev_release() 200 struct input_polled_devres *devres = res; in devm_input_polldev_unregister() local 201 struct input_polled_dev *polldev = devres->polldev; in devm_input_polldev_unregister() 237 struct input_polled_devres *devres; in devm_input_allocate_polled_device() local 239 devres = devres_alloc(devm_input_polldev_release, sizeof(*devres), in devm_input_allocate_polled_device() 241 if (!devres) in devm_input_allocate_polled_device() 246 devres_free(devres); in devm_input_allocate_polled_device() [all …]
|
D | input.c | 1837 struct input_devres *devres = res; in devm_input_device_match() local 1839 return devres->input == data; in devm_input_device_match() 1844 struct input_devres *devres = res; in devm_input_device_release() local 1845 struct input_dev *input = devres->input; in devm_input_device_release() 1873 struct input_devres *devres; in devm_input_allocate_device() local 1875 devres = devres_alloc(devm_input_device_release, in devm_input_allocate_device() 1876 sizeof(*devres), GFP_KERNEL); in devm_input_allocate_device() 1877 if (!devres) in devm_input_allocate_device() 1882 devres_free(devres); in devm_input_allocate_device() 1889 devres->input = input; in devm_input_allocate_device() [all …]
|
/Linux-v5.4/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 | 13 devres
|
/Linux-v5.4/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.4/drivers/hwtracing/intel_th/ |
D | core.c | 618 struct resource *devres = th->resource; in intel_th_subdevice_alloc() local 632 res[r].end = resource_size(&devres[bar]) - 1; in intel_th_subdevice_alloc() 636 res[r].start += devres[bar].start; in intel_th_subdevice_alloc() 637 res[r].end += devres[bar].start; in intel_th_subdevice_alloc() 855 struct resource *devres, unsigned int ndevres) in intel_th_alloc() argument 881 switch (devres[r].flags & IORESOURCE_TYPE_BITS) { in intel_th_alloc() 883 th->resource[nr_mmios++] = devres[r]; in intel_th_alloc() 886 err = devm_request_irq(dev, devres[r].start, in intel_th_alloc() 893 th->irq = devres[r].start; in intel_th_alloc() 897 devres[r].flags); in intel_th_alloc()
|
D | intel_th.h | 226 struct resource *devres, unsigned int ndevres);
|
/Linux-v5.4/drivers/reset/ |
D | core.c | 924 struct reset_control **devres; in devm_reset_control_array_get() local 927 devres = devres_alloc(devm_reset_control_release, sizeof(*devres), in devm_reset_control_array_get() 929 if (!devres) in devm_reset_control_array_get() 934 devres_free(devres); in devm_reset_control_array_get() 938 *devres = rstc; in devm_reset_control_array_get() 939 devres_add(dev, devres); in devm_reset_control_array_get()
|
/Linux-v5.4/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.4/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.4/Documentation/driver-api/gpio/ |
D | index.rst | 41 .. kernel-doc:: drivers/gpio/gpiolib-devres.c
|
/Linux-v5.4/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.4/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.4/drivers/extcon/ |
D | Makefile | 7 extcon-core-objs += extcon.o devres.o
|
/Linux-v5.4/drivers/s390/crypto/ |
D | ap_bus.c | 708 int rc, card, queue, devres, drvres; in __ap_revise_reserved() local 714 devres = test_bit_inv(card, ap_perms.apm) in __ap_revise_reserved() 719 if (!!devres != !!drvres) { in __ap_revise_reserved() 778 int card, queue, devres, drvres, rc; in ap_device_probe() local 790 devres = test_bit_inv(card, ap_perms.apm) in ap_device_probe() 794 if (!!devres != !!drvres) in ap_device_probe()
|
/Linux-v5.4/drivers/hid/ |
D | wacom_sys.c | 1229 struct wacom_sysfs_group_devres *devres = res; in wacom_devm_sysfs_group_release() local 1230 struct kobject *kobj = devres->root; in wacom_devm_sysfs_group_release() 1233 __func__, devres->group->name); in wacom_devm_sysfs_group_release() 1234 sysfs_remove_group(kobj, devres->group); in wacom_devm_sysfs_group_release() 1241 struct wacom_sysfs_group_devres *devres; in __wacom_devm_sysfs_create_group() local 1244 devres = devres_alloc(wacom_devm_sysfs_group_release, in __wacom_devm_sysfs_create_group() 1247 if (!devres) in __wacom_devm_sysfs_create_group() 1250 devres->group = group; in __wacom_devm_sysfs_create_group() 1251 devres->root = root; in __wacom_devm_sysfs_create_group() 1253 error = sysfs_create_group(devres->root, group); in __wacom_devm_sysfs_create_group() [all …]
|
/Linux-v5.4/sound/soc/ |
D | Makefile | 3 snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o
|
/Linux-v5.4/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.4/Documentation/driver-api/ |
D | basics.rst | 127 .. kernel-doc:: drivers/base/devres.c
|
/Linux-v5.4/scripts/coccinelle/free/ |
D | devm_free.cocci | 6 /// See Documentation/driver-api/driver-model/devres.rst for more information.
|