Re: [PATCH] iio: handle -EPROBE_DEFER in of_iio_channel_get_by_name

Jonathan Cameron
2014-08-30T10:29:10Z

On 28/08/14 23:13, Heiko Stübner wrote:
> 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>
I already have a patch queued up for this change in the fixes-togreg branch

[PATCH] iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name by Johannes Pointner

I'm just being a little slow catching up with patches at the moment.

J
> ---
> 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",
>