/linux-6.1.9/drivers/clk/ |
D | clk-devres.c | 109 struct clk_bulk_devres *devres = res; in devm_clk_bulk_release() local 111 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release() 117 struct clk_bulk_devres *devres; in __devm_clk_bulk_get() local 120 devres = devres_alloc(devm_clk_bulk_release, in __devm_clk_bulk_get() 121 sizeof(*devres), GFP_KERNEL); in __devm_clk_bulk_get() 122 if (!devres) in __devm_clk_bulk_get() 130 devres->clks = clks; in __devm_clk_bulk_get() 131 devres->num_clks = num_clks; in __devm_clk_bulk_get() 132 devres_add(dev, devres); in __devm_clk_bulk_get() 134 devres_free(devres); in __devm_clk_bulk_get() [all …]
|
/linux-6.1.9/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() 122 memset(dr, 0, offsetof(struct devres, data)); in alloc_dr() 162 struct devres *dr; in __devres_alloc_node() 202 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res() 223 struct devres *dr = container_of(res, struct devres, data); in devres_free() 242 struct devres *dr = container_of(res, struct devres, data); in devres_add() 251 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 | 145 This option enables kernel parameter devres.log. If set to 146 non-zero, devres debug messages are printed. Select this if 147 you are having a problem with devres or want to debug 148 resource management for a managed device. devres.log can be
|
D | core.c | 2595 union device_attr_group_devres *devres = res; in devm_attr_group_remove() local 2596 const struct attribute_group *group = devres->group; in devm_attr_group_remove() 2604 union device_attr_group_devres *devres = res; in devm_attr_groups_remove() local 2605 const struct attribute_group **groups = devres->groups; in devm_attr_groups_remove() 2623 union device_attr_group_devres *devres; in devm_device_add_group() local 2626 devres = devres_alloc(devm_attr_group_remove, in devm_device_add_group() 2627 sizeof(*devres), GFP_KERNEL); in devm_device_add_group() 2628 if (!devres) in devm_device_add_group() 2633 devres_free(devres); in devm_device_add_group() 2637 devres->group = grp; in devm_device_add_group() [all …]
|
D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
/linux-6.1.9/drivers/interconnect/ |
D | bulk.c | 126 struct icc_bulk_devres *devres = res; in devm_icc_bulk_release() local 128 icc_bulk_put(devres->num_paths, devres->paths); in devm_icc_bulk_release() 141 struct icc_bulk_devres *devres; in devm_of_icc_bulk_get() local 144 devres = devres_alloc(devm_icc_bulk_release, sizeof(*devres), GFP_KERNEL); in devm_of_icc_bulk_get() 145 if (!devres) in devm_of_icc_bulk_get() 150 devres->paths = paths; in devm_of_icc_bulk_get() 151 devres->num_paths = num_paths; in devm_of_icc_bulk_get() 152 devres_add(dev, devres); in devm_of_icc_bulk_get() 154 devres_free(devres); in devm_of_icc_bulk_get()
|
/linux-6.1.9/drivers/regulator/ |
D | devres.c | 184 struct regulator_bulk_devres *devres = res; in devm_regulator_bulk_release() local 186 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release() 207 struct regulator_bulk_devres *devres; in devm_regulator_bulk_get() local 210 devres = devres_alloc(devm_regulator_bulk_release, in devm_regulator_bulk_get() 211 sizeof(*devres), GFP_KERNEL); in devm_regulator_bulk_get() 212 if (!devres) in devm_regulator_bulk_get() 217 devres->consumers = consumers; in devm_regulator_bulk_get() 218 devres->num_consumers = num_consumers; in devm_regulator_bulk_get() 219 devres_add(dev, devres); in devm_regulator_bulk_get() 221 devres_free(devres); in devm_regulator_bulk_get() [all …]
|
/linux-6.1.9/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-6.1.9/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-6.1.9/drivers/input/ |
D | input.c | 1968 struct input_devres *devres = res; in devm_input_device_match() local 1970 return devres->input == data; in devm_input_device_match() 1975 struct input_devres *devres = res; in devm_input_device_release() local 1976 struct input_dev *input = devres->input; in devm_input_device_release() 2004 struct input_devres *devres; in devm_input_allocate_device() local 2006 devres = devres_alloc(devm_input_device_release, in devm_input_allocate_device() 2007 sizeof(*devres), GFP_KERNEL); in devm_input_allocate_device() 2008 if (!devres) in devm_input_allocate_device() 2013 devres_free(devres); in devm_input_allocate_device() 2020 devres->input = input; in devm_input_allocate_device() [all …]
|
/linux-6.1.9/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-6.1.9/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-6.1.9/Documentation/translations/zh_CN/driver-api/gpio/ |
D | index.rst | 62 drivers/gpio/gpiolib-devres.c
|
/linux-6.1.9/Documentation/driver-api/gpio/ |
D | index.rst | 43 .. kernel-doc:: drivers/gpio/gpiolib-devres.c
|
/linux-6.1.9/kernel/irq/ |
D | Makefile | 3 obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o
|
/linux-6.1.9/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-6.1.9/drivers/extcon/ |
D | Makefile | 7 extcon-core-objs += extcon.o devres.o
|
/linux-6.1.9/drivers/hid/ |
D | wacom_sys.c | 1226 struct wacom_sysfs_group_devres *devres = res; in wacom_devm_sysfs_group_release() local 1227 struct kobject *kobj = devres->root; in wacom_devm_sysfs_group_release() 1230 __func__, devres->group->name); in wacom_devm_sysfs_group_release() 1231 sysfs_remove_group(kobj, devres->group); in wacom_devm_sysfs_group_release() 1238 struct wacom_sysfs_group_devres *devres; in __wacom_devm_sysfs_create_group() local 1241 devres = devres_alloc(wacom_devm_sysfs_group_release, in __wacom_devm_sysfs_create_group() 1244 if (!devres) in __wacom_devm_sysfs_create_group() 1247 devres->group = group; in __wacom_devm_sysfs_create_group() 1248 devres->root = root; in __wacom_devm_sysfs_create_group() 1250 error = sysfs_create_group(devres->root, group); in __wacom_devm_sysfs_create_group() [all …]
|
/linux-6.1.9/Documentation/hwmon/ |
D | submitting-patches.rst | 94 * Use devres functions whenever possible to allocate resources. For rationale 95 and supported functions, please see Documentation/driver-api/driver-model/devres.rst. 96 If a function is not supported by devres, consider using devm_add_action().
|
/linux-6.1.9/net/ |
D | Makefile | 9 obj-y := devres.o socket.o core/
|
/linux-6.1.9/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-6.1.9/Documentation/driver-api/ |
D | basics.rst | 113 .. kernel-doc:: drivers/base/devres.c
|
/linux-6.1.9/drivers/s390/crypto/ |
D | ap_bus.c | 815 int rc, card, queue, devres, drvres; in __ap_revise_reserved() local 821 devres = test_bit_inv(card, ap_perms.apm) && in __ap_revise_reserved() 826 if (!!devres != !!drvres) { in __ap_revise_reserved() 903 int card, queue, devres, drvres, rc = -ENODEV; in ap_device_probe() local 918 devres = test_bit_inv(card, ap_perms.apm) && in ap_device_probe() 922 if (!!devres != !!drvres) in ap_device_probe()
|