summaryrefslogtreecommitdiffstats
path: root/include/linux/device.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2013-02-23 13:11:14 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2013-02-25 23:02:42 -0800
commitd6b0c58048d2c8c6f4955c37f670125b2792cd14 (patch)
treea22d3680ebcaca7681f647ac0ab050ef1f51c968 /include/linux/device.h
parent7241443f67bb352183bcfd7e3b807b87f2777b5d (diff)
devres: allow adding custom actions to the stack
Sometimes drivers need to execute one-off actions in their error handling or device teardown paths. An example would be toggling a GPIO line to reset the controlled device into predefined state. To allow performing such actions when using managed resources let's allow adding them to stack/group of devres resources. Acked-by: Tejun Heo <tj@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'include/linux/device.h')
-rw-r--r--include/linux/device.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 86ef6ab553b..854b247bf5f 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -567,6 +567,10 @@ extern void devm_kfree(struct device *dev, void *p);
void __iomem *devm_request_and_ioremap(struct device *dev,
struct resource *res);
+/* allows to add/remove a custom action to devres stack */
+int devm_add_action(struct device *dev, void (*action)(void *), void *data);
+void devm_remove_action(struct device *dev, void (*action)(void *), void *data);
+
struct device_dma_parameters {
/*
* a low level driver may set these to teach IOMMU code about