[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <urrbejidktwg4sgmsteemmthjk6kl3piljio4bvhntquqoujte@xkty43eqtuod>
Date: Fri, 20 Dec 2024 15:25:45 +0100
From: Angelo Dureghello <adureghello@...libre.com>
To: Jonathan Cameron <jic23@...nel.org>
Cc: Lars-Peter Clausen <lars@...afoo.de>,
Michael Hennerich <Michael.Hennerich@...log.com>, Mihail Chindris <mihail.chindris@...log.com>,
Nuno Sa <nuno.sa@...log.com>, David Lechner <dlechner@...libre.com>,
Olivier Moysan <olivier.moysan@...s.st.com>, Jonathan Cameron <Jonathan.Cameron@...wei.com>,
linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 6/8] iio: dac: ad3552r-hs: exit for error on wrong chip id
On 19.12.2024 16:54, Jonathan Cameron wrote:
> On Mon, 16 Dec 2024 21:36:26 +0100
> Angelo Dureghello <adureghello@...libre.com> wrote:
>
> > From: Angelo Dureghello <adureghello@...libre.com>
> >
> > Exit for error on wrong chip id, otherwise driver continues
> > with wrong assumptions.
> Why? Chip ID does not define all future compatible parts, just the
> ones we know about today.
>
> The reason not failing is that the moment we do exit on a mismatch
> we can never support fallback device tree compatible IDs. Is there
> no chance that ADI will release a backwards compatible part in the
> future that we'd like to work with old kernels?
>
> Any mismatch in DT vs hardware present is considered a firmware
> bug, not a kernel problem.
> We used to reject missmatched IDs but after a long discussion with
> DT maintainers it became clear that broke their model.
>
Ok, i will apply to what decided so.
> Thanks,
>
> Jonathan
>
> >
> > Signed-off-by: Angelo Dureghello <adureghello@...libre.com>
> > ---
> > drivers/iio/dac/ad3552r-hs.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/dac/ad3552r-hs.c b/drivers/iio/dac/ad3552r-hs.c
> > index 8974df625670..e613eee7fc11 100644
> > --- a/drivers/iio/dac/ad3552r-hs.c
> > +++ b/drivers/iio/dac/ad3552r-hs.c
> > @@ -326,8 +326,9 @@ static int ad3552r_hs_setup(struct ad3552r_hs_state *st)
> >
> > id |= val << 8;
> > if (id != st->model_data->chip_id)
> > - dev_info(st->dev, "Chip ID error. Expected 0x%x, Read 0x%x\n",
> > - AD3552R_ID, id);
> > + return dev_err_probe(st->dev, -ENODEV,
> > + "chip id error, expected 0x%x, got 0x%x\n",
> > + st->model_data->chip_id, id);
> >
> > /* Clear reset error flag, see ad3552r manual, rev B table 38. */
> > ret = st->data->bus_reg_write(st->back, AD3552R_REG_ADDR_ERR_STATUS,
> >
>
Powered by blists - more mailing lists