From: Jonathan Cameron <jic23@kernel.org>
To: "Hernán Gonzalez" <hernan@vanguardiasur.com.ar>
Cc: knaack.h@gmx.de, lars@metafoo.de, pmeerw@pmeerw.net,
gregkh@linuxfoundation.org, Michael.Hennerich@analog.com,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 09/14] staging: iio: ad7746: Add remove()
Date: Sun, 15 Apr 2018 16:31:01 +0100 [thread overview]
Message-ID: <20180415163101.6ab15cbc@archlinux> (raw)
In-Reply-To: <1523637411-8531-10-git-send-email-hernan@vanguardiasur.com.ar>
On Fri, 13 Apr 2018 13:36:46 -0300
Hernán Gonzalez <hernan@vanguardiasur.com.ar> wrote:
> This allows the driver to be probed and removed as a module powering it
> down on remove().
>
> Signed-off-by: Hernán Gonzalez <hernan@vanguardiasur.com.ar>
> ---
> drivers/staging/iio/cdc/ad7746.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c
> index c29a221..05506bf9 100644
> --- a/drivers/staging/iio/cdc/ad7746.c
> +++ b/drivers/staging/iio/cdc/ad7746.c
> @@ -775,6 +775,31 @@ static int ad7746_probe(struct i2c_client *client,
> return 0;
> }
>
> +static int ad7746_remove(struct i2c_client *client)
> +{
> + struct iio_dev *indio_dev = i2c_get_clientdata(client);
> + struct ad7746_chip_info *chip = iio_priv(indio_dev);
> + unsigned char regval;
> + int ret;
> +
> + mutex_lock(&chip->lock);
> +
> + regval = chip->config | AD7746_CONF_MODE_PWRDN;
> + ret = i2c_smbus_write_byte_data(chip->client, AD7746_REG_CFG, regval);
As this is a one off operation, perhaps it would be better to factor
it out to a utility function then use devm_add_action_or_reset in
the probe?
Also, I am nervous about this change as there doesn't seem to be
path in probe by which this is deliberately reversed?
It seems to be 'accidentally' handled by the read_raw write to the
CFG register.
The data sheet doesn't really mention much about this register
at all. It may have special requirements to exit from power down - I have
no idea, but if it is costless, why do we bother with idle mode?
Perhaps Michael can confirm if this is safe to do or not.
> +
> + mutex_unlock(&chip->lock);
> +
> + if (ret < 0) {
> + dev_warn(&client->dev, "Could NOT Power Down!\n");
> + goto out;
> + }
> +
> + iio_device_unregister(indio_dev);
You can't safely do this against the devm_iio_device_register.
> +
> +out:
> + return ret;
> +}
> +
> static const struct i2c_device_id ad7746_id[] = {
> { "ad7745", 7745 },
> { "ad7746", 7746 },
> @@ -799,6 +824,7 @@ static struct i2c_driver ad7746_driver = {
> .of_match_table = of_match_ptr(ad7746_of_match),
> },
> .probe = ad7746_probe,
> + .remove = ad7746_remove,
> .id_table = ad7746_id,
> };
> module_i2c_driver(ad7746_driver);
next prev parent reply other threads:[~2018-04-15 15:31 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-13 16:36 [PATCH v2 00/14] Move ad7746 driver out of staging Hernán Gonzalez
2018-04-13 16:36 ` [PATCH v2 01/14] staging: iio: ad7746: Automatically swap values in readings/writings Hernán Gonzalez
2018-04-15 15:02 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 02/14] staging: iio: ad7746: Adjust arguments to match open parenthesis Hernán Gonzalez
2018-04-15 15:03 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 03/14] staging: iio: ad7746: Fix bound checkings Hernán Gonzalez
2018-04-15 15:05 ` Jonathan Cameron
2018-04-16 14:47 ` Hernán Gonzalez
2018-04-16 14:47 ` Hernán Gonzalez
2018-04-18 9:39 ` Jonathan Cameron
2018-04-21 14:40 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 04/14] staging: iio: ad7746: Fix multiple line dereference Hernán Gonzalez
2018-04-15 15:07 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 05/14] staging: iio: ad7746: Reorder includes alphabetically Hernán Gonzalez
2018-04-15 15:09 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 06/14] staging: iio: ad7746: Reorder variable declarations Hernán Gonzalez
2018-04-15 15:10 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 07/14] staging: iio: ad7746: Remove unused defines Hernán Gonzalez
2018-04-15 15:12 ` Jonathan Cameron
2018-04-16 14:50 ` Hernán Gonzalez
2018-04-16 14:50 ` Hernán Gonzalez
2018-04-13 16:36 ` [PATCH v2 08/14] staging: iio: ad7746: Add dt-bindings Hernán Gonzalez
2018-04-15 15:19 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 09/14] staging: iio: ad7746: Add remove() Hernán Gonzalez
2018-04-15 15:31 ` Jonathan Cameron [this message]
2018-04-18 19:25 ` Hernán Gonzalez
2018-04-18 19:25 ` Hernán Gonzalez
2018-04-19 9:14 ` Michael Hennerich
2018-04-13 16:36 ` [PATCH v2 10/14] staging: iio: ad7746: Add comments Hernán Gonzalez
2018-04-15 15:35 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 11/14] staging: iio: ad7746: Add devicetree bindings documentation Hernán Gonzalez
2018-04-15 15:37 ` Jonathan Cameron
2018-04-16 14:55 ` Hernán Gonzalez
2018-04-16 14:55 ` Hernán Gonzalez
2018-04-16 20:08 ` Rob Herring
2018-04-13 16:36 ` [PATCH v2 12/14] staging: iio: ad7746: Add ABI documentation Hernán Gonzalez
2018-04-15 15:40 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 13/14] Move ad7746 out of staging Hernán Gonzalez
2018-04-15 17:04 ` Jonathan Cameron
2018-04-15 18:46 ` Joe Perches
2018-04-15 19:48 ` Jonathan Cameron
2018-04-13 16:36 ` [PATCH v2 14/14] staging: iio: Remove ad7746 from staging Hernán Gonzalez
2018-04-15 15:43 ` Jonathan Cameron
2018-04-15 19:24 ` Joe Perches
2018-04-15 19:52 ` 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=20180415163101.6ab15cbc@archlinux \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=gregkh@linuxfoundation.org \
--cc=hernan@vanguardiasur.com.ar \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/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.