Merge tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / include / linux / device.h
index ef61e2d50ecce8c755e40eab534b3d52a8ce13b1..5eabfa0c4dee65437e733e29c7031c91fbde4752 100644 (file)
@@ -42,6 +42,7 @@ struct iommu_ops;
 struct iommu_group;
 struct iommu_fwspec;
 struct dev_pin_info;
+struct iommu_param;
 
 struct bus_attribute {
        struct attribute        attr;
@@ -707,7 +708,8 @@ extern unsigned long devm_get_free_pages(struct device *dev,
                                         gfp_t gfp_mask, unsigned int order);
 extern void devm_free_pages(struct device *dev, unsigned long addr);
 
-void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
+void __iomem *devm_ioremap_resource(struct device *dev,
+                                   const struct resource *res);
 
 void __iomem *devm_of_iomap(struct device *dev,
                            struct device_node *node, int index,
@@ -716,6 +718,7 @@ void __iomem *devm_of_iomap(struct device *dev,
 /* 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);
+void devm_release_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)
@@ -962,6 +965,7 @@ struct dev_links_info {
  *             device (i.e. the bus driver that discovered the device).
  * @iommu_group: IOMMU group the device belongs to.
  * @iommu_fwspec: IOMMU-specific properties supplied by firmware.
+ * @iommu_param: Per device generic IOMMU runtime data
  *
  * @offline_disabled: If set, the device is permanently online.
  * @offline:   Set after successful invocation of bus type's .offline().
@@ -1055,6 +1059,7 @@ struct device {
        void    (*release)(struct device *dev);
        struct iommu_group      *iommu_group;
        struct iommu_fwspec     *iommu_fwspec;
+       struct iommu_param      *iommu_param;
 
        bool                    offline_disabled:1;
        bool                    offline:1;
@@ -1253,6 +1258,8 @@ extern int device_for_each_child_reverse(struct device *dev, void *data,
                     int (*fn)(struct device *dev, void *data));
 extern struct device *device_find_child(struct device *dev, void *data,
                                int (*match)(struct device *dev, void *data));
+extern struct device *device_find_child_by_name(struct device *parent,
+                                               const char *name);
 extern int device_rename(struct device *dev, const char *new_name);
 extern int device_move(struct device *dev, struct device *new_parent,
                       enum dpm_order dpm_order);