devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Marcelo Schmitt <marcelo.schmitt@analog.com>
Cc: <broonie@kernel.org>, <lars@metafoo.de>,
	<Michael.Hennerich@analog.com>, <robh+dt@kernel.org>,
	<krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>,
	<nuno.sa@analog.com>, <dlechner@baylibre.com>, <corbet@lwn.net>,
	<marcelo.schmitt1@gmail.com>, <linux-iio@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-spi@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 6/7] iio: adc: Add support for AD4000
Date: Sat, 29 Jun 2024 19:05:38 +0100	[thread overview]
Message-ID: <20240629190538.46b5fc90@jic23-huawei> (raw)
In-Reply-To: <eb5f7b73bdf3ac89117e28f26ee3f54ba849163e.1719351923.git.marcelo.schmitt@analog.com>

On Tue, 25 Jun 2024 18:55:27 -0300
Marcelo Schmitt <marcelo.schmitt@analog.com> wrote:

> Add support for AD4000 series of low noise, low power, high speed,
> successive approximation register (SAR) ADCs.
> 
> Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com>
Hi Marcelo,

You've clearly gotten some good review for this version so I only
had a quick scan through.  One thing did jump out at me though.

> +
> +static int ad4000_write_raw_get_fmt(struct iio_dev *indio_dev,
> +				    struct iio_chan_spec const *chan, long mask)
> +{
> +	switch (mask) {
> +	case IIO_CHAN_INFO_SCALE:
> +		return IIO_VAL_INT_PLUS_NANO;
> +	default:
> +		return IIO_VAL_INT_PLUS_MICRO;
> +	}
> +}
> +
> +static int ad4000_write_raw(struct iio_dev *indio_dev,
> +			    struct iio_chan_spec const *chan, int val, int val2,
> +			    long mask)
> +{
> +	struct ad4000_state *st = iio_priv(indio_dev);
> +	unsigned int reg_val;
> +	bool span_comp_en;
> +	int ret;
> +
> +	switch (mask) {
> +	case IIO_CHAN_INFO_SCALE:
> +		ret = iio_device_claim_direct_mode(indio_dev);
> +		if (ret < 0)
> +			return ret;
> +
> +		mutex_lock(&st->lock);
> +		ret = ad4000_read_reg(st, &reg_val);
> +		if (ret < 0)
> +			goto err_unlock;
> +
> +		span_comp_en = val2 == st->scale_tbl[1][1];
> +		reg_val &= ~AD4000_CFG_SPAN_COMP;
> +		reg_val |= FIELD_PREP(AD4000_CFG_SPAN_COMP, span_comp_en);
> +
> +		ret = ad4000_write_reg(st, reg_val);
> +		if (ret < 0)
> +			goto err_unlock;
> +
> +		st->span_comp = span_comp_en;
> +err_unlock:
> +		iio_device_release_direct_mode(indio_dev);
> +		mutex_unlock(&st->lock);

Lock ordering needs another look. I'm not sure we an trigger
a deadlock but it definitely looks problematic. 

J



  parent reply	other threads:[~2024-06-29 18:05 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-25 21:52 [PATCH v5 0/7] Add support for AD4000 series of ADCs Marcelo Schmitt
2024-06-25 21:53 ` [PATCH v5 1/7] spi: Enable controllers to extend the SPI protocol with MOSI idle configuration Marcelo Schmitt
2024-06-26  9:37   ` Nuno Sá
2024-06-26 14:57   ` David Lechner
2024-06-26 15:08     ` Mark Brown
2024-06-27 17:41       ` Marcelo Schmitt
2024-06-25 21:53 ` [PATCH v5 2/7] spi: bitbang: Implement support for MOSI idle state configuration Marcelo Schmitt
2024-06-26 15:01   ` David Lechner
2024-06-25 21:54 ` [PATCH v5 3/7] spi: spi-gpio: Add " Marcelo Schmitt
2024-06-26 15:02   ` David Lechner
2024-06-25 21:54 ` [PATCH v5 4/7] spi: spi-axi-spi-engine: Add support for MOSI idle configuration Marcelo Schmitt
2024-06-26  6:14   ` Alexandru Ardelean
2024-06-26 13:27     ` Marcelo Schmitt
2024-06-26  9:56   ` Nuno Sá
2024-06-26 15:06   ` David Lechner
2024-06-25 21:55 ` [PATCH v5 5/7] dt-bindings: iio: adc: Add AD4000 Marcelo Schmitt
2024-06-26 11:34   ` Conor Dooley
2024-06-26 13:34     ` Marcelo Schmitt
2024-06-26 15:55       ` Conor Dooley
2024-06-25 21:55 ` [PATCH v5 6/7] iio: adc: Add support for AD4000 Marcelo Schmitt
2024-06-26  6:11   ` Alexandru Ardelean
2024-06-26 13:25     ` Marcelo Schmitt
2024-06-26 11:04   ` Nuno Sá
2024-06-26 13:17     ` Marcelo Schmitt
2024-06-26 13:45       ` Nuno Sá
2024-06-27 17:09         ` Marcelo Schmitt
2024-06-26 16:56   ` David Lechner
2024-06-27 23:34     ` Marcelo Schmitt
2024-06-29 18:05   ` Jonathan Cameron [this message]
2024-06-29 18:13     ` Marcelo Schmitt
2024-06-25 21:55 ` [PATCH v5 7/7] docs: iio: Add documentation " Marcelo Schmitt
2024-06-26 15:43   ` David Lechner
2024-06-28 14:40     ` Marcelo Schmitt

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=20240629190538.46b5fc90@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Michael.Hennerich@analog.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lars@metafoo.de \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marcelo.schmitt1@gmail.com \
    --cc=marcelo.schmitt@analog.com \
    --cc=nuno.sa@analog.com \
    --cc=robh+dt@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).