]> Git Repo - linux.git/blobdiff - drivers/iio/inkern.c
Merge tag 'selinux-pr-20210215' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / drivers / iio / inkern.c
index fe30bcb6a57b86492dfb7b07857d6203f7404f3a..db77a2d4a56b27acda6d5c486cd0587c6ee4a02a 100644 (file)
@@ -191,8 +191,8 @@ err_free_channel:
        return ERR_PTR(err);
 }
 
-static struct iio_channel *of_iio_channel_get_by_name(struct device_node *np,
-                                                     const char *name)
+struct iio_channel *of_iio_channel_get_by_name(struct device_node *np,
+                                              const char *name)
 {
        struct iio_channel *chan = NULL;
 
@@ -230,6 +230,7 @@ static struct iio_channel *of_iio_channel_get_by_name(struct device_node *np,
 
        return chan;
 }
+EXPORT_SYMBOL_GPL(of_iio_channel_get_by_name);
 
 static struct iio_channel *of_iio_channel_get_all(struct device *dev)
 {
@@ -272,12 +273,6 @@ error_free_chans:
 
 #else /* CONFIG_OF */
 
-static inline struct iio_channel *
-of_iio_channel_get_by_name(struct device_node *np, const char *name)
-{
-       return NULL;
-}
-
 static inline struct iio_channel *of_iio_channel_get_all(struct device *dev)
 {
        return NULL;
@@ -393,6 +388,29 @@ struct iio_channel *devm_iio_channel_get(struct device *dev,
 }
 EXPORT_SYMBOL_GPL(devm_iio_channel_get);
 
+struct iio_channel *devm_of_iio_channel_get_by_name(struct device *dev,
+                                                   struct device_node *np,
+                                                   const char *channel_name)
+{
+       struct iio_channel **ptr, *channel;
+
+       ptr = devres_alloc(devm_iio_channel_free, sizeof(*ptr), GFP_KERNEL);
+       if (!ptr)
+               return ERR_PTR(-ENOMEM);
+
+       channel = of_iio_channel_get_by_name(np, channel_name);
+       if (IS_ERR(channel)) {
+               devres_free(ptr);
+               return channel;
+       }
+
+       *ptr = channel;
+       devres_add(dev, ptr);
+
+       return channel;
+}
+EXPORT_SYMBOL_GPL(devm_of_iio_channel_get_by_name);
+
 struct iio_channel *iio_channel_get_all(struct device *dev)
 {
        const char *name;
This page took 0.033454 seconds and 4 git commands to generate.