| /linux-6.15/drivers/clk/ |
| H A D | clk-devres.c | 139 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release() 150 if (!devres) in __devm_clk_bulk_get() 158 devres->clks = clks; in __devm_clk_bulk_get() 162 devres_free(devres); in __devm_clk_bulk_get() 186 clk_bulk_put_all(devres->num_clks, devres->clks); in devm_clk_bulk_release_all() 197 if (!devres) in devm_clk_bulk_get_all() 206 devres_free(devres); in devm_clk_bulk_get_all() 217 clk_bulk_disable_unprepare(devres->num_clks, devres->clks); in devm_clk_bulk_release_all_enable() 218 clk_bulk_put_all(devres->num_clks, devres->clks); in devm_clk_bulk_release_all_enable() 229 if (!devres) in devm_clk_bulk_get_all_enabled() [all …]
|
| /linux-6.15/drivers/base/ |
| H A D | devres.c | 26 struct devres { struct 114 struct devres *dr; 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() 260 struct devres *dr = container_of(node, struct devres, node); in find_dr() 732 devres->action(devres->data); in devm_action_release() 751 if (!devres) in __devm_add_action() 1133 free_pages(devres->addr, devres->order); in devm_pages_release() [all …]
|
| H A D | trace.h | 19 DECLARE_EVENT_CLASS(devres, 41 DEFINE_EVENT(devres, devres_log,
|
| H A D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
| H A 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
|
| /linux-6.15/drivers/interconnect/ |
| H A 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.15/drivers/regulator/ |
| H A D | devres.c | 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 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() 264 devres_add(dev, devres); in _devm_regulator_bulk_get() 266 devres_free(devres); in _devm_regulator_bulk_get() 406 struct regulator_bulk_devres *devres; in devm_regulator_bulk_get_enable() local 410 devres = devm_kmalloc(dev, sizeof(*devres), GFP_KERNEL); in devm_regulator_bulk_get_enable() 411 if (!devres) in devm_regulator_bulk_get_enable() [all …]
|
| /linux-6.15/Documentation/driver-api/driver-model/ |
| H A 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 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. 207 Lifetime of a devres entry begins on devres allocation and finishes 211 devres core guarantees atomicity to all basic devres operations and 212 has support for single-instance devres types (atomic 214 concurrent accesses to allocated devres data is caller's [all …]
|
| H A D | index.rst | 12 devres
|
| /linux-6.15/Documentation/translations/zh_CN/driver-api/phy/ |
| H A D | phy.rst | 120 获取 PHY 后使用 devres 将设备与 PHY 关联。在驱动程序分离时,将在 121 devres 数据上调用 release 函数并释放 devres 数据。当 phy 是可选 177 联的 devres。
|
| /linux-6.15/drivers/hwtracing/intel_th/ |
| H A 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() 866 struct resource *devres, unsigned int ndevres) in intel_th_alloc() argument 892 switch (devres[r].flags & IORESOURCE_TYPE_BITS) { in intel_th_alloc() 894 th->resource[nr_mmios++] = devres[r]; in intel_th_alloc() 897 err = devm_request_irq(dev, devres[r].start, in intel_th_alloc() 904 th->irq = devres[r].start; in intel_th_alloc() 909 devres[r].flags); in intel_th_alloc()
|
| /linux-6.15/drivers/iommu/riscv/ |
| H A D | iommu.c | 56 struct riscv_iommu_devres *devres = res; in riscv_iommu_devres_pages_release() local 58 iommu_free_pages(devres->addr, devres->order); in riscv_iommu_devres_pages_release() 63 struct riscv_iommu_devres *devres = res; in riscv_iommu_devres_pages_match() local 66 return devres->addr == target->addr; in riscv_iommu_devres_pages_match() 71 struct riscv_iommu_devres *devres; in riscv_iommu_get_pages() local 82 if (unlikely(!devres)) { in riscv_iommu_get_pages() 87 devres->addr = addr; in riscv_iommu_get_pages() 88 devres->order = order; in riscv_iommu_get_pages() 90 devres_add(iommu->dev, devres); in riscv_iommu_get_pages() 97 struct riscv_iommu_devres devres = { .addr = addr }; in riscv_iommu_free_pages() local [all …]
|
| /linux-6.15/drivers/input/ |
| H A D | input.c | 1970 struct input_devres *devres = res; in devm_input_device_match() local 1972 return devres->input == data; in devm_input_device_match() 1977 struct input_devres *devres = res; in devm_input_device_release() local 2006 struct input_devres *devres; in devm_input_allocate_device() local 2010 if (!devres) in devm_input_allocate_device() 2015 devres_free(devres); in devm_input_allocate_device() 2022 devres->input = input; in devm_input_allocate_device() 2023 devres_add(dev, devres); in devm_input_allocate_device() 2362 if (!devres) in input_register_device() 2365 devres->input = dev; in input_register_device() [all …]
|
| /linux-6.15/Documentation/driver-api/firmware/ |
| H A 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.15/drivers/reset/ |
| H A D | core.c | 1293 struct reset_control_bulk_devres *devres = res; in devm_reset_control_bulk_release() local 1295 reset_control_bulk_put(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release() 1300 struct reset_control_bulk_devres *devres = res; in devm_reset_control_bulk_release_deasserted() local 1302 reset_control_bulk_assert(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release_deasserted() 1303 reset_control_bulk_put(devres->num_rstcs, devres->rstcs); in devm_reset_control_bulk_release_deasserted()
|
| /linux-6.15/drivers/spmi/ |
| H A D | Makefile | 5 obj-$(CONFIG_SPMI) += spmi.o spmi-devres.o
|
| /linux-6.15/rust/kernel/ |
| H A D | pci.rs | 11 devres::Devres, 400 let devres = Devres::new(self.as_ref(), bar, GFP_KERNEL)?; in iomap_region_sized() localVariable 402 Ok(devres) in iomap_region_sized()
|
| /linux-6.15/Documentation/driver-api/phy/ |
| H A D | phy.rst | 122 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-6.15/Documentation/translations/zh_CN/driver-api/gpio/ |
| H A D | index.rst | 59 drivers/gpio/gpiolib-devres.c
|
| /linux-6.15/Documentation/driver-api/gpio/ |
| H A D | index.rst | 42 .. kernel-doc:: drivers/gpio/gpiolib-devres.c
|
| /linux-6.15/kernel/irq/ |
| H A D | Makefile | 3 obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o kexec.o
|
| /linux-6.15/drivers/hid/ |
| H A D | wacom_sys.c | 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 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() 1278 devres_free(devres); in __wacom_devm_sysfs_create_group() 1282 devres_add(&wacom->hdev->dev, devres); in __wacom_devm_sysfs_create_group() 1296 struct kfifo_rec_ptr_2 *devres = res; in wacom_devm_kfifo_release() local [all …]
|
| /linux-6.15/drivers/extcon/ |
| H A D | Makefile | 7 extcon-core-objs += extcon.o devres.o
|
| /linux-6.15/Documentation/driver-api/pci/ |
| H A D | pci.rst | 10 .. kernel-doc:: drivers/pci/devres.c
|
| /linux-6.15/drivers/pci/ |
| H A D | Makefile | 8 setup-bus.o vc.o mmap.o devres.o
|