1
linux/drivers/base
Tejun Heo 9ac7849e35 devres: device resource management
Implement device resource management, in short, devres.  A device
driver can allocate arbirary size of devres data which is associated
with a release function.  On driver detach, release function is
invoked on the devres data, then, devres data is freed.

devreses are typed by associated release functions.  Some devreses are
better represented by single instance of the type while others need
multiple instances sharing the same release function.  Both usages are
supported.

devreses can be grouped using devres group such that a device driver
can easily release acquired resources halfway through initialization
or selectively release resources (e.g. resources for port 1 out of 4
ports).

This patch adds devres core including documentation and the following
managed interfaces.

* alloc/free	: devm_kzalloc(), devm_kzfree()
* IO region	: devm_request_region(), devm_release_region()
* IRQ		: devm_request_irq(), devm_free_irq()
* DMA		: dmam_alloc_coherent(), dmam_free_coherent(),
		  dmam_declare_coherent_memory(), dmam_pool_create(),
		  dmam_pool_destroy()
* PCI		: pcim_enable_device(), pcim_pin_device(), pci_is_managed()
* iomap		: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),
		  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),
		  pcim_iomap(), pcim_iounmap()

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-09 17:39:36 -05:00
..
power Driver core: fix comments in drivers/base/power/resume.c 2006-09-25 21:08:39 -07:00
attribute_container.c [PATCH] Driver Core: remove unused exports 2006-06-21 12:40:48 -07:00
base.h devres: device resource management 2007-02-09 17:39:36 -05:00
bus.c CONFIG_SYSFS_DEPRECATED - bus symlinks 2006-12-01 14:51:58 -08:00
class.c driver core fixes: make_class_name() retval checks 2007-02-07 10:37:12 -08:00
core.c devres: device resource management 2007-02-09 17:39:36 -05:00
cpu.c [PATCH] i386: change the 'no_control' field to 'hotpluggable' in the struct cpu 2006-12-07 02:14:10 +01:00
dd.c devres: device resource management 2007-02-09 17:39:36 -05:00
devres.c devres: device resource management 2007-02-09 17:39:36 -05:00
dma-mapping.c devres: device resource management 2007-02-09 17:39:36 -05:00
dmapool.c devres: device resource management 2007-02-09 17:39:36 -05:00
driver.c Driver core: Remove unneeded routines from driver core 2006-09-25 21:08:40 -07:00
firmware_class.c Driver Core: Increase the default timeout value of the firmware subsystem 2007-02-07 10:37:14 -08:00
firmware.c [PATCH] drivers/base - fix sparse warnings 2005-10-28 09:52:55 -07:00
hypervisor.c [S390] hypfs comment cleanup. 2006-09-20 15:58:44 +02:00
init.c [PATCH] Driver Core: Add /sys/hypervisor when needed 2006-06-21 12:40:48 -07:00
isa.c [PATCH] Driver model: add ISA bus 2006-06-21 12:40:49 -07:00
Kconfig devres: device resource management 2007-02-09 17:39:36 -05:00
Makefile devres: device resource management 2007-02-09 17:39:36 -05:00
map.c [PATCH] kobj_map semaphore to mutex conversion 2006-03-20 13:42:58 -08:00
memory.c [PATCH] driver/base/memory.c: handle errors properly 2006-12-07 08:39:36 -08:00
node.c [PATCH] ZVC: Support NR_SLAB_RECLAIMABLE / NR_SLAB_UNRECLAIMABLE 2006-09-26 08:48:51 -07:00
platform.c driver core fixes: device_register() retval check in platform.c 2007-02-07 10:37:12 -08:00
sys.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
topology.c [PATCH] hotplug CPU: clean up hotcpu_notifier() use 2006-12-07 08:39:39 -08:00
transport_class.c