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

Heiko Stübner
2014-08-30T10:49:56Z

Am Samstag, 30. August 2014, 11:29:04 schrieb Jonathan Cameron:
> 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.

no problem ... at least the issue got fixed :-)

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