From 7eecd28eb6a82a5e1e0f0cdec6aa3ab421a0a1e4 Mon Sep 17 00:00:00 2001
From: Heiko Stuebner <heiko@sntech.de>
Date: Thu, 28 Aug 2014 23:44:59 +0200
Subject: [PATCH] iio: handle -EPROBE_DEFER in of_iio_channel_get_by_name

Till now of_iio_channel_get_by_name always tried to find the channel without
evaluating the return code from of_iio_channel_get. This might include
-EPROBE_DEFER in which case the channel is present but its driver simply not
probed yet. Therefore simply return on -EPROBE_DEFER so that the driver
requesting the channel can also defer.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
#### similar patch by Johannes Pointner already fixed this ####

 drivers/iio/inkern.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
index c749700..f084610 100644
--- a/drivers/iio/inkern.c
+++ b/drivers/iio/inkern.c
@@ -178,7 +178,7 @@ static struct iio_channel *of_iio_channel_get_by_name(struct device_node *np,
 			index = of_property_match_string(np, "io-channel-names",
 							 name);
 		chan = of_iio_channel_get(np, index);
-		if (!IS_ERR(chan))
+		if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER)
 			break;
 		else if (name && index >= 0) {
 			pr_err("ERROR: could not get IIO channel %s:%s(%i)\n",
-- 
2.0.1

