From: jic23@kernel.org
To: Maarten Brock <m.brock@vanmierlo.com>
Cc: Angelo Compagnucci <angelo.compagnucci@gmail.com>,
linux-iio@vger.kernel.org, wsa@the-dreams.de
Subject: Re: [PATCH 2/3] iio: adc: mcp3422: Checking for error on probe
Date: Mon, 03 Jul 2017 12:10:04 +0100 [thread overview]
Message-ID: <d3fcf10b92ae50e1870f62b6c8c77b70@kernel.org> (raw)
In-Reply-To: <74402be2661eab70db7bbdce58723a18@vanmierlo.com>
On 03.07.2017 09:42, Maarten Brock wrote:
> On 2017-07-01 12:07, Jonathan Cameron wrote:
>> On Wed, 28 Jun 2017 23:53:10 +0200
>> Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
>>
>>> Some part of the configuration are not touched after the probe
>>> and if something goes wrong on writing the initial one,
>>> the chip will misbehave.
>>> Adding an error checking ensures that the inital configuration will
>>> be written correctly. Moreover ensures that a sensible configuration
>>> will be saved in driver data and used subsequently as intended.
>>>
>>> Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
>> Applied to the togreg branch of iio.git and pushed out as testing.
>> Added a reported by for Maarten.
>
> Thanks. Also for the CC as I'm not (yet) subscribed to this list.
>
>>
>> Jonathan
>
> Would this fix mean that loading the driver fails if the update_config
> fails? And thus if the driver is not a module, would require a reboot
> of the OS?
Hmm. This is difficult to handle. If we were waiting on another
resource
coming up that was reflected by the load of a later driver, we 'could'
use deferred probing. Is that true here?
Wolfram, any thoughts - the issue here is that the i2c bus master is
implemented on an FPGA which hasn't necessarily started by the time this
driver fires up.
I'm a little loath to put in a rather mysterious deferral if we don't
need it. The slave driver definitely feels like the wrong place to be
doing
this.
What we should be looking at here I think is the i2c bus not being
instantiated
until the fpga is ready. That way these slave devices wouldn't come up
until somewhat later in the process and the driver probe will succeed.
We would normally only retry i2c transactions if we had either:
* known flaky hardware - the sort of thing that fails once every 100
times.
* a known reason the device isn't responding (and not able to use clock
stretching)
So device is busy doing a conversion and ignores the bus during that.
Jonathan
> Seems like a rather steep requirement for something that can be so
> easily fixed later on by e.g. caching an invalid config channel.
> There's not even a single retry. And I don't suppose the I2C driver
> will auto-retry either.
>
> Maarten
>
>>> ---
>>> drivers/iio/adc/mcp3422.c | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/iio/adc/mcp3422.c b/drivers/iio/adc/mcp3422.c
>>> index 6737df8..63de705 100644
>>> --- a/drivers/iio/adc/mcp3422.c
>>> +++ b/drivers/iio/adc/mcp3422.c
>>> @@ -382,7 +382,9 @@ static int mcp3422_probe(struct i2c_client
>>> *client,
>>> | MCP3422_CHANNEL_VALUE(0)
>>> | MCP3422_PGA_VALUE(MCP3422_PGA_1)
>>> | MCP3422_SAMPLE_RATE_VALUE(MCP3422_SRATE_240));
>>> - mcp3422_update_config(adc, config);
>>> + err = mcp3422_update_config(adc, config);
>>> + if (err < 0)
>>> + return err;
>>>
>>> err = devm_iio_device_register(&client->dev, indio_dev);
>>> if (err < 0)
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-07-03 11:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-28 21:53 [PATCH 1/3] iio: adc: mcp3422: Changing initial channel Angelo Compagnucci
2017-06-28 21:53 ` [PATCH 2/3] iio: adc: mcp3422: Checking for error on probe Angelo Compagnucci
2017-07-01 10:07 ` Jonathan Cameron
2017-07-03 8:42 ` Maarten Brock
2017-07-03 11:10 ` jic23 [this message]
2017-07-03 12:01 ` Maarten Brock
2017-07-03 12:11 ` Mike Looijmans
2017-07-03 12:25 ` jic23
2017-07-03 21:04 ` Angelo Compagnucci
2017-07-04 19:57 ` Jonathan Cameron
2017-06-28 21:53 ` [PATCH 3/3] iio: adc: mcp3422: cosmetic fixes Angelo Compagnucci
2017-07-01 10:12 ` Jonathan Cameron
2017-07-01 10:06 ` [PATCH 1/3] iio: adc: mcp3422: Changing initial channel Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d3fcf10b92ae50e1870f62b6c8c77b70@kernel.org \
--to=jic23@kernel.org \
--cc=angelo.compagnucci@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=m.brock@vanmierlo.com \
--cc=wsa@the-dreams.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.