iio: core: Allow drivers to specify a label without it coming from of
authorHans de Goede <hdegoede@redhat.com>
Sun, 7 Feb 2021 16:08:59 +0000 (17:08 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 11 Mar 2021 20:46:59 +0000 (20:46 +0000)
Only set indio_dev->label from of/dt if there actually is a label
specified in of.

This allows drivers to set a label without this being overwritten with
NULL when there is no label specified in of. This is esp. useful on
devices where of is not used at all, such as your typical x86/ACPI device.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210207160901.110643-2-hdegoede@redhat.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/industrialio-core.c

index 7db761a..121d5b0 100644 (file)
@@ -1788,6 +1788,7 @@ static const struct iio_buffer_setup_ops noop_ring_setup_ops;
 
 int __iio_device_register(struct iio_dev *indio_dev, struct module *this_mod)
 {
+       const char *label;
        int ret;
 
        if (!indio_dev->info)
@@ -1798,8 +1799,9 @@ int __iio_device_register(struct iio_dev *indio_dev, struct module *this_mod)
        if (!indio_dev->dev.of_node && indio_dev->dev.parent)
                indio_dev->dev.of_node = indio_dev->dev.parent->of_node;
 
-       indio_dev->label = of_get_property(indio_dev->dev.of_node, "label",
-                                          NULL);
+       label = of_get_property(indio_dev->dev.of_node, "label", NULL);
+       if (label)
+               indio_dev->label = label;
 
        ret = iio_check_unique_scan_index(indio_dev);
        if (ret < 0)