| /linux/drivers/base/ |
| H A D | devres.c | 26 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 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
|
| H A D | Makefile | 6 cpu.o firmware.o init.o map.o devres.o \
|
| /linux/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/Documentation/translations/zh_CN/driver-api/phy/ |
| H A D | phy.rst | 120 获取 PHY 后使用 devres 将设备与 PHY 关联。在驱动程序分离时,将在 121 devres 数据上调用 release 函数并释放 devres 数据。当 phy 是可选 177 联的 devres。
|
| /linux/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() 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()
|
| H A D | intel_th.h | 231 struct resource *devres, unsigned int ndevres);
|
| /linux/drivers/input/ |
| H A D | input.c | 1936 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/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/drivers/reset/ |
| H A D | core.c | 1223 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/drivers/iommu/riscv/ |
| H A D | iommu.c | 57 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/pci/ |
| H A D | irq.rs | 10 devres, 159 devres::register(dev.as_ref(), irq_vecs, GFP_KERNEL)?; in register()
|
| /linux/drivers/spmi/ |
| H A D | Makefile | 5 obj-$(CONFIG_SPMI) += spmi.o spmi-devres.o
|
| /linux/Documentation/translations/zh_CN/driver-api/gpio/ |
| H A D | index.rst | 59 drivers/gpio/gpiolib-devres.c
|
| /linux/drivers/hid/ |
| H A D | wacom_sys.c | 1252 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/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/samples/rust/ |
| H A D | rust_i2c_client.rs | 73 devres::Devres,
|
| H A D | rust_driver_auxiliary.rs | 13 devres::Devres,
|
| H A D | rust_driver_pci.rs | 10 devres::Devres,
|
| /linux/sound/soc/ |
| H A D | Makefile | 3 snd-soc-core-y += soc-pcm.o soc-devres.o soc-ops.o soc-link.o soc-card.o
|
| /linux/rust/kernel/io/ |
| H A D | mem.rs | 12 devres::Devres,
|
| /linux/scripts/coccinelle/free/ |
| H A D | devm_free.cocci | 6 /// See Documentation/driver-api/driver-model/devres.rst for more information.
|
| /linux/drivers/clk/ |
| H A D | clk.c | 4887 struct clk_notifier_devres *devres = res; in devm_clk_notifier_release() local 4889 clk_notifier_unregister(devres->clk, devres->nb); in devm_clk_notifier_release() 4895 struct clk_notifier_devres *devres; in devm_clk_notifier_register() local 4898 devres = devres_alloc(devm_clk_notifier_release, in devm_clk_notifier_register() 4899 sizeof(*devres), GFP_KERNEL); in devm_clk_notifier_register() 4901 if (!devres) in devm_clk_notifier_register() 4906 devres->clk = clk; in devm_clk_notifier_register() 4907 devres->nb = nb; in devm_clk_notifier_register() 4908 devres_add(dev, devres); in devm_clk_notifier_register() 4910 devres_free(devres); in devm_clk_notifier_register()
|
| /linux/Documentation/sound/kernel-api/ |
| H A D | alsa-driver-api.rst | 101 .. kernel-doc:: sound/soc/soc-devres.c
|
| /linux/rust/kernel/ |
| H A D | lib.rs | 89 pub mod devres; module
|