[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231018202024.36aabbc1@jic23-huawei>
Date: Wed, 18 Oct 2023 20:20:24 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Andreas Klinger <ak@...klinger.de>
Cc: Lars-Peter Clausen <lars@...afoo.de>,
Angel Iglesias <ang.iglesiasg@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Linus Walleij <linus.walleij@...aro.org>,
Sergei Korolev <dssoftsk@...il.com>, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] iio: bmp280: fix eoc interrupt usage
On Wed, 18 Oct 2023 17:28:16 +0200
Andreas Klinger <ak@...klinger.de> wrote:
> Only the bmp085 can have an End-Of-Conversion (EOC) interrupt. But the
> bmp085 and bmp180 share the same chip id. Therefore it's necessary to
> distinguish the case in which the interrupt is set.
>
> Fix the if statement so that only when the interrupt is set and the chip
> id is recognized the interrupt is requested.
>
> This bug exists since the support of EOC interrupt was introduced.
> Fixes: aae953949651 ("iio: pressure: bmp280: add support for BMP085 EOC interrupt")
>
> Also add a link to bmp085 datasheet for reference.
>
Fixes tag is part of the tags block so needs to be down here.
> Suggested-by: Sergei Korolev <dssoftsk@...il.com>
> Signed-off-by: Andreas Klinger <ak@...klinger.de>
However, it's also already fixed upstream I think.
That's not filtered back around to my togreg branch though as that has an outstanding
pull request.
Jonathan
> ---
> drivers/iio/pressure/bmp280-core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
> index 6089f3f9d8f4..9b7beeb1c088 100644
> --- a/drivers/iio/pressure/bmp280-core.c
> +++ b/drivers/iio/pressure/bmp280-core.c
> @@ -9,6 +9,7 @@
> * Driver for Bosch Sensortec BMP180 and BMP280 digital pressure sensor.
> *
> * Datasheet:
> + * https://www.sparkfun.com/datasheets/Components/General/BST-BMP085-DS000-05.pdf
> * https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf
> * https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp280-ds001.pdf
> * https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf
> @@ -2179,7 +2180,7 @@ int bmp280_common_probe(struct device *dev,
> * however as it happens, the BMP085 shares the chip ID of BMP180
> * so we look for an IRQ if we have that.
> */
> - if (irq > 0 || (chip_id == BMP180_CHIP_ID)) {
> + if (irq > 0 && (chip_id == BMP180_CHIP_ID)) {
> ret = bmp085_fetch_eoc_irq(dev, name, irq, data);
> if (ret)
> return ret;
Powered by blists - more mailing lists