Skip to content

Commit 9417fef

Browse files
QSchulzgroeck
authored andcommitted
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: Quentin Schulz <quentin.schulz@free-electrons.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
1 parent f9f8b33 commit 9417fef

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/hwmon/iio_hwmon.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,11 @@ static int iio_hwmon_probe(struct platform_device *pdev)
7373
name = dev->of_node->name;
7474

7575
channels = iio_channel_get_all(dev);
76-
if (IS_ERR(channels))
76+
if (IS_ERR(channels)) {
77+
if (PTR_ERR(channels) == -ENODEV)
78+
return -EPROBE_DEFER;
7779
return PTR_ERR(channels);
80+
}
7881

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

0 commit comments

Comments
 (0)