/Linux-v4.19/drivers/base/ |
D | devres.c | 25 struct devres { struct 84 static __always_inline struct devres * alloc_dr(dr_release_t release, in alloc_dr() 88 struct devres *dr; in alloc_dr() 91 if (unlikely(check_add_overflow(sizeof(struct devres), size, in alloc_dr() 99 memset(dr, 0, offsetof(struct devres, data)); in alloc_dr() 117 struct devres *dr; in __devres_alloc_node() 143 struct devres *dr; in devres_alloc_node() 183 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res() 204 struct devres *dr = container_of(res, struct devres, data); in devres_free() 223 struct devres *dr = container_of(res, struct devres, data); in devres_add() [all …]
|
D | core.c | 1133 union device_attr_group_devres *devres = res; in devm_attr_group_remove() local 1134 const struct attribute_group *group = devres->group; in devm_attr_group_remove() 1142 union device_attr_group_devres *devres = res; in devm_attr_groups_remove() local 1143 const struct attribute_group **groups = devres->groups; in devm_attr_groups_remove() 1161 union device_attr_group_devres *devres; in devm_device_add_group() local 1164 devres = devres_alloc(devm_attr_group_remove, in devm_device_add_group() 1165 sizeof(*devres), GFP_KERNEL); in devm_device_add_group() 1166 if (!devres) in devm_device_add_group() 1171 devres_free(devres); in devm_device_add_group() 1175 devres->group = grp; in devm_device_add_group() [all …]
|
D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
D | Kconfig | 132 This option enables kernel parameter devres.log. If set to 133 non-zero, devres debug messages are printed. Select this if 134 you are having a problem with devres or want to debug 135 resource management for a managed device. devres.log can be
|
/Linux-v4.19/drivers/input/ |
D | input-polldev.c | 184 struct input_polled_devres *devres = res; in devm_input_polldev_match() local 186 return devres->polldev == data; in devm_input_polldev_match() 191 struct input_polled_devres *devres = res; in devm_input_polldev_release() local 192 struct input_polled_dev *polldev = devres->polldev; in devm_input_polldev_release() 203 struct input_polled_devres *devres = res; in devm_input_polldev_unregister() local 204 struct input_polled_dev *polldev = devres->polldev; in devm_input_polldev_unregister() 240 struct input_polled_devres *devres; in devm_input_allocate_polled_device() local 242 devres = devres_alloc(devm_input_polldev_release, sizeof(*devres), in devm_input_allocate_polled_device() 244 if (!devres) in devm_input_allocate_polled_device() 249 devres_free(devres); in devm_input_allocate_polled_device() [all …]
|
D | input.c | 1815 struct input_devres *devres = res; in devm_input_device_match() local 1817 return devres->input == data; in devm_input_device_match() 1822 struct input_devres *devres = res; in devm_input_device_release() local 1823 struct input_dev *input = devres->input; in devm_input_device_release() 1851 struct input_devres *devres; in devm_input_allocate_device() local 1853 devres = devres_alloc(devm_input_device_release, in devm_input_allocate_device() 1854 sizeof(*devres), GFP_KERNEL); in devm_input_allocate_device() 1855 if (!devres) in devm_input_allocate_device() 1860 devres_free(devres); in devm_input_allocate_device() 1867 devres->input = input; in devm_input_allocate_device() [all …]
|
/Linux-v4.19/drivers/clk/ |
D | clk-devres.c | 44 struct clk_bulk_devres *devres = res; in devm_clk_bulk_release() local 46 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release() 52 struct clk_bulk_devres *devres; in devm_clk_bulk_get() local 55 devres = devres_alloc(devm_clk_bulk_release, in devm_clk_bulk_get() 56 sizeof(*devres), GFP_KERNEL); in devm_clk_bulk_get() 57 if (!devres) in devm_clk_bulk_get() 62 devres->clks = clks; in devm_clk_bulk_get() 63 devres->num_clks = num_clks; in devm_clk_bulk_get() 64 devres_add(dev, devres); in devm_clk_bulk_get() 66 devres_free(devres); in devm_clk_bulk_get()
|
D | Makefile | 3 obj-$(CONFIG_HAVE_CLK) += clk-devres.o clk-bulk.o
|
/Linux-v4.19/Documentation/driver-model/ |
D | devres.txt | 11 3. Devres Group : Group devres'es and release them together 20 devres came up while trying to convert libata to use iomap. Each 48 devres is basically linked list of arbitrarily sized memory areas 49 associated with a struct device. Each devres entry is associated with 50 a release function. A devres can be released in several ways. No 51 matter what, all devres entries are released on driver detach. On 53 devres entry is freed. 56 drivers using devres. For example, coherent DMA memory is acquired 131 devres. Complexity is shifted from less maintained low level drivers 139 Devres entries can be grouped using devres group. When a group is [all …]
|
/Linux-v4.19/drivers/regulator/ |
D | devres.c | 130 struct regulator_bulk_devres *devres = res; in devm_regulator_bulk_release() local 132 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release() 153 struct regulator_bulk_devres *devres; in devm_regulator_bulk_get() local 156 devres = devres_alloc(devm_regulator_bulk_release, in devm_regulator_bulk_get() 157 sizeof(*devres), GFP_KERNEL); in devm_regulator_bulk_get() 158 if (!devres) in devm_regulator_bulk_get() 163 devres->consumers = consumers; in devm_regulator_bulk_get() 164 devres->num_consumers = num_consumers; in devm_regulator_bulk_get() 165 devres_add(dev, devres); in devm_regulator_bulk_get() 167 devres_free(devres); in devm_regulator_bulk_get()
|
/Linux-v4.19/drivers/reset/ |
D | core.c | 777 struct reset_control **devres; in devm_reset_control_array_get() local 780 devres = devres_alloc(devm_reset_control_release, sizeof(*devres), in devm_reset_control_array_get() 782 if (!devres) in devm_reset_control_array_get() 787 devres_free(devres); in devm_reset_control_array_get() 791 *devres = rstc; in devm_reset_control_array_get() 792 devres_add(dev, devres); in devm_reset_control_array_get()
|
/Linux-v4.19/drivers/hwtracing/intel_th/ |
D | core.c | 604 struct resource *devres = th->resource; in intel_th_subdevice_alloc() local 617 res[r].end = resource_size(&devres[bar]) - 1; in intel_th_subdevice_alloc() 621 res[r].start += devres[bar].start; in intel_th_subdevice_alloc() 622 res[r].end += devres[bar].start; in intel_th_subdevice_alloc() 817 struct resource *devres, unsigned int ndevres, int irq) in intel_th_alloc() argument 824 if (devres[r].flags & IORESOURCE_IRQ) { in intel_th_alloc() 825 irq = devres[r].start; in intel_th_alloc() 848 th->resource = devres; in intel_th_alloc()
|
D | intel_th.h | 216 struct resource *devres, unsigned int ndevres, int irq);
|
/Linux-v4.19/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-v4.19/Documentation/ |
D | phy.txt | 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-v4.19/Documentation/driver-api/gpio/ |
D | index.rst | 41 .. kernel-doc:: drivers/gpio/devres.c
|
/Linux-v4.19/kernel/irq/ |
D | Makefile | 3 obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o
|
/Linux-v4.19/drivers/extcon/ |
D | Makefile | 7 extcon-core-objs += extcon.o devres.o
|
/Linux-v4.19/drivers/s390/crypto/ |
D | ap_bus.c | 691 int rc, card, queue, devres, drvres; in __ap_revise_reserved() local 697 devres = test_bit_inv(card, ap_perms.apm) in __ap_revise_reserved() 702 if (!!devres != !!drvres) { in __ap_revise_reserved() 761 int card, queue, devres, drvres, rc; in ap_device_probe() local 773 devres = test_bit_inv(card, ap_perms.apm) in ap_device_probe() 777 if (!!devres != !!drvres) in ap_device_probe()
|
/Linux-v4.19/Documentation/hwmon/ |
D | submitting-patches | 90 * Use devres functions whenever possible to allocate resources. For rationale 91 and supported functions, please see Documentation/driver-model/devres.txt. 92 If a function is not supported by devres, consider using devm_add_action().
|
/Linux-v4.19/drivers/hid/ |
D | wacom_sys.c | 1194 struct wacom_sysfs_group_devres *devres = res; in wacom_devm_sysfs_group_release() local 1195 struct kobject *kobj = devres->root; in wacom_devm_sysfs_group_release() 1198 __func__, devres->group->name); in wacom_devm_sysfs_group_release() 1199 sysfs_remove_group(kobj, devres->group); in wacom_devm_sysfs_group_release() 1206 struct wacom_sysfs_group_devres *devres; in __wacom_devm_sysfs_create_group() local 1209 devres = devres_alloc(wacom_devm_sysfs_group_release, in __wacom_devm_sysfs_create_group() 1212 if (!devres) in __wacom_devm_sysfs_create_group() 1215 devres->group = group; in __wacom_devm_sysfs_create_group() 1216 devres->root = root; in __wacom_devm_sysfs_create_group() 1218 error = sysfs_create_group(devres->root, group); in __wacom_devm_sysfs_create_group() [all …]
|
/Linux-v4.19/sound/soc/ |
D | Makefile | 3 snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o
|
/Linux-v4.19/Documentation/driver-api/ |
D | basics.rst | 127 .. kernel-doc:: drivers/base/devres.c
|
/Linux-v4.19/scripts/coccinelle/free/ |
D | devm_free.cocci | 5 /// See Documentation/driver-model/devres.txt for more information.
|
/Linux-v4.19/Documentation/sound/kernel-api/ |
D | alsa-driver-api.rst | 101 .. kernel-doc:: sound/soc/soc-devres.c
|