|
@@ -682,6 +682,18 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
|
|
|
int devm_add_action(struct device *dev, void (*action)(void *), void *data);
|
|
|
void devm_remove_action(struct device *dev, void (*action)(void *), void *data);
|
|
|
|
|
|
+static inline int devm_add_action_or_reset(struct device *dev,
|
|
|
+ void (*action)(void *), void *data)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = devm_add_action(dev, action, data);
|
|
|
+ if (ret)
|
|
|
+ action(data);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
struct device_dma_parameters {
|
|
|
/*
|
|
|
* a low level driver may set these to teach IOMMU code about
|