diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-02-23 13:11:14 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-02-25 23:02:42 -0800 |
commit | d6b0c58048d2c8c6f4955c37f670125b2792cd14 (patch) | |
tree | a22d3680ebcaca7681f647ac0ab050ef1f51c968 /include/linux/device.h | |
parent | 7241443f67bb352183bcfd7e3b807b87f2777b5d (diff) | |
download | linux-d6b0c58048d2c8c6f4955c37f670125b2792cd14.tar.gz linux-d6b0c58048d2c8c6f4955c37f670125b2792cd14.tar.bz2 linux-d6b0c58048d2c8c6f4955c37f670125b2792cd14.zip |
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.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 86ef6ab553b1..854b247bf5f9 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 |