Home
last modified time | relevance | path

Searched refs:devres (Results 1 – 25 of 62) sorted by relevance

123

/linux/drivers/clk/
H A Dclk-devres.c137 struct clk_bulk_devres *devres = res; in devm_clk_bulk_release() local
139 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release()
145 struct clk_bulk_devres *devres; in __devm_clk_bulk_get() local
148 devres = devres_alloc(devm_clk_bulk_release, in __devm_clk_bulk_get()
149 sizeof(*devres), GFP_KERNEL); in __devm_clk_bulk_get()
150 if (!devres) in __devm_clk_bulk_get()
158 devres->clks = clks; in __devm_clk_bulk_get()
159 devres->num_clks = num_clks; in __devm_clk_bulk_get()
160 devres_add(dev, devres); in __devm_clk_bulk_get()
162 devres_free(devres); in __devm_clk_bulk_get()
[all …]
/linux/drivers/base/
H A Ddevres.c26 struct devres { struct
100 if (unlikely(check_add_overflow(sizeof(struct devres), in check_dr_size()
110 static __always_inline struct devres *alloc_dr(dr_release_t release, in alloc_dr()
114 struct devres *dr; in alloc_dr()
125 memset(dr, 0, offsetof(struct devres, data)); in alloc_dr()
165 struct devres *dr; in __devres_alloc_node()
205 struct devres *dr = container_of(node, struct devres, node); in devres_for_each_res()
226 struct devres *dr = container_of(res, struct devres, data); in devres_free()
245 struct devres *dr = container_of(res, struct devres, data); in devres_add()
254 static struct devres *find_dr(struct device *dev, dr_release_t release, in find_dr()
[all …]
H A Dtrace.h19 DECLARE_EVENT_CLASS(devres,
41 DEFINE_EVENT(devres, devres_log,
H A DKconfig145 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
H A DMakefile6 cpu.o firmware.o init.o map.o devres.o \
/linux/drivers/interconnect/
H A Dbulk.c126 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/drivers/regulator/
H A Ddevres.c243 struct regulator_bulk_devres *devres = res; in devm_regulator_bulk_release() local
245 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release()
252 struct regulator_bulk_devres *devres; in _devm_regulator_bulk_get() local
255 devres = devres_alloc(devm_regulator_bulk_release, in _devm_regulator_bulk_get()
256 sizeof(*devres), GFP_KERNEL); in _devm_regulator_bulk_get()
257 if (!devres) in _devm_regulator_bulk_get()
262 devres->consumers = consumers; in _devm_regulator_bulk_get()
263 devres->num_consumers = num_consumers; in _devm_regulator_bulk_get()
264 devres_add(dev, devres); in _devm_regulator_bulk_get()
266 devres_free(devres); in _devm_regulator_bulk_get()
[all …]
/linux/Documentation/driver-api/driver-model/
H A Ddevres.rst13 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 …]
H A Dindex.rst12 devres
/linux/Documentation/translations/zh_CN/driver-api/phy/
H A Dphy.rst120 获取 PHY 后使用 devres 将设备与 PHY 关联。在驱动程序分离时,将在
121 devres 数据上调用 release 函数并释放 devres 数据。当 phy 是可选
177 联的 devres
/linux/drivers/hwtracing/intel_th/
H A Dcore.c635 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()
889 struct resource *devres, unsigned int ndevres) in intel_th_alloc() argument
915 switch (devres[r].flags & IORESOURCE_TYPE_BITS) { in intel_th_alloc()
917 th->resource[nr_mmios++] = devres[r]; in intel_th_alloc()
920 err = devm_request_irq(dev, devres[r].start, in intel_th_alloc()
927 th->irq = devres[r].start; in intel_th_alloc()
932 devres[r].flags); in intel_th_alloc()
/linux/drivers/input/
H A Dinput.c1936 struct input_devres *devres = res; in devm_input_device_match() local
1938 return devres->input == data; in devm_input_device_match()
1943 struct input_devres *devres = res; in devm_input_device_release() local
1944 struct input_dev *input = devres->input; in devm_input_device_release()
1972 struct input_devres *devres; in devm_input_allocate_device() local
1974 devres = devres_alloc(devm_input_device_release, in devm_input_allocate_device()
1975 sizeof(*devres), GFP_KERNEL); in devm_input_allocate_device()
1976 if (!devres) in devm_input_allocate_device()
1981 devres_free(devres); in devm_input_allocate_device()
1988 devres->input = input; in devm_input_allocate_device()
[all …]
/linux/drivers/reset/
H A Dcore.c1223 struct reset_control_bulk_devres *devres = res; in devm_reset_control_bulk_release() local
1225 reset_control_bulk_put(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release()
1230 struct reset_control_bulk_devres *devres = res; in devm_reset_control_bulk_release_deasserted() local
1232 reset_control_bulk_assert(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release_deasserted()
1233 reset_control_bulk_put(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release_deasserted()
/linux/Documentation/driver-api/firmware/
H A Dfirmware_cache.rst26 * 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/drivers/iommu/riscv/
H A Diommu.c57 struct riscv_iommu_devres *devres = res; in riscv_iommu_devres_pages_release() local
59 iommu_free_pages(devres->addr); in riscv_iommu_devres_pages_release()
64 struct riscv_iommu_devres *devres = res; in riscv_iommu_devres_pages_match() local
67 return devres->addr == target->addr; in riscv_iommu_devres_pages_match()
73 struct riscv_iommu_devres *devres; in riscv_iommu_get_pages() local
81 devres = devres_alloc(riscv_iommu_devres_pages_release, in riscv_iommu_get_pages()
84 if (unlikely(!devres)) { in riscv_iommu_get_pages()
89 devres->addr = addr; in riscv_iommu_get_pages()
91 devres_add(iommu->dev, devres); in riscv_iommu_get_pages()
98 struct riscv_iommu_devres devres = { .addr = addr }; in riscv_iommu_free_pages() local
[all …]
/linux/rust/kernel/drm/
H A Ddriver.rs8 bindings, device, devres, drm,
133 /// Ownership of the [`Registration`] object is passed to [`devres::register`].
148 devres::register(dev, reg, GFP_KERNEL) in new_foreign_owned()
/linux/rust/kernel/pci/
H A Dirq.rs10 devres,
159 devres::register(dev.as_ref(), irq_vecs, GFP_KERNEL)?; in register()
/linux/Documentation/driver-api/phy/
H A Dphy.rst122 devm_phy_get associates the device with the PHY using devres on
124 the devres data and devres data is freed.
173 destroys the devres associated with this PHY.
184 Both these APIs destroy the PHY and devm_phy_destroy destroys the devres
/linux/drivers/spmi/
H A DMakefile5 obj-$(CONFIG_SPMI) += spmi.o spmi-devres.o
/linux/drivers/hid/
H A Dwacom_sys.c1252 struct wacom_sysfs_group_devres *devres = res; in wacom_devm_sysfs_group_release() local
1253 struct kobject *kobj = devres->root; in wacom_devm_sysfs_group_release()
1256 __func__, devres->group->name); in wacom_devm_sysfs_group_release()
1257 sysfs_remove_group(kobj, devres->group); in wacom_devm_sysfs_group_release()
1264 struct wacom_sysfs_group_devres *devres; in __wacom_devm_sysfs_create_group() local
1267 devres = devres_alloc(wacom_devm_sysfs_group_release, in __wacom_devm_sysfs_create_group()
1270 if (!devres) in __wacom_devm_sysfs_create_group()
1273 devres->group = group; in __wacom_devm_sysfs_create_group()
1274 devres->root = root; in __wacom_devm_sysfs_create_group()
1276 error = sysfs_create_group(devres->root, group); in __wacom_devm_sysfs_create_group()
[all …]
/linux/Documentation/translations/zh_CN/driver-api/gpio/
H A Dindex.rst59 drivers/gpio/gpiolib-devres.c
/linux/Documentation/driver-api/gpio/
H A Dindex.rst44 .. kernel-doc:: drivers/gpio/gpiolib-devres.c
/linux/kernel/irq/
H A DMakefile3 obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o kexec.o
/linux/drivers/pwm/
H A Dpwm_th1520.rs27 devres,
98 iomem: devres::Devres<IoMem<TH1520_PWM_REG_SIZE>>,
/linux/samples/rust/
H A Drust_i2c_client.rs73 devres::Devres,

123