Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9417fefe authored by Quentin Schulz's avatar Quentin Schulz Committed by Guenter Roeck
Browse files

hwmon: (iio_hwmon) defer probe when no channel is found



iio_channel_get_all returns -ENODEV when it cannot find either phandles and
properties in the Device Tree or channels whose consumer_dev_name matches
iio_hwmon in iio_map_list. The iio_map_list is filled in by iio drivers
which might be probed after iio_hwmon.

It is better to defer the probe of iio_hwmon if such error is returned by
iio_channel_get_all in order to let a chance to iio drivers to expose
channels in iio_map_list.

Signed-off-by: default avatarQuentin Schulz <quentin.schulz@free-electrons.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent f9f8b33d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -73,8 +73,11 @@ static int iio_hwmon_probe(struct platform_device *pdev)
		name = dev->of_node->name;

	channels = iio_channel_get_all(dev);
	if (IS_ERR(channels))
	if (IS_ERR(channels)) {
		if (PTR_ERR(channels) == -ENODEV)
			return -EPROBE_DEFER;
		return PTR_ERR(channels);
	}

	st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL);
	if (st == NULL) {