Re: [PATCH] iio: temperature: mlx90632 Relax the compatibility check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 27 May 2019 09:40:53 +0200
Crt Mori <cmo@xxxxxxxxxxx> wrote:

> On Sun, 26 May 2019 at 18:48, Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> >
> > On Thu, 23 May 2019 14:07:22 +0200
> > Crt Mori <cmo@xxxxxxxxxxx> wrote:
> >  
> > > Register EE_VERSION contains mixture of calibration information and DSP
> > > version. So far, because calibrations were definite, the driver
> > > compatibility depended on whole contents, but in the newer production
> > > process the calibration part changes. Because of that, value in EE_VERSION
> > > will be changed and to avoid that calibration value is same as DSP version
> > > the MSB in calibration part was fixed to 1.
> > > That means existing calibrations (medical and consumer) will now have
> > > hex values (bits 8 to 15) of 83 and 84 respectively. Driver compatibility
> > > should be based only on DSP version part of the EE_VERSION (bits 0 to 7)
> > > register.
> > >
> > > Signed-off-by: Crt Mori <cmo@xxxxxxxxxxx>  
> > Hi.
> >
> > I'm going to take this via the slow path as you haven't called it out that
> > you want it applied as a fix (so for stable kernels).  Let me know if these
> > parts are in the wild and hence we should send it earlier.   We can do that
> > after it is in mainline anyway as a specific request to the stable maintainers.  
> Hi,
> Since this is our change I did not think it warrants a fix label, but
> if we could, we would be very happy, if this could go in for all
> stable kernels. It is designed to be backwards compatible, so it
> should not cause new problems.
Cool. I've moved it across to the fixes-togreg branch and should do a pull
request for that in a week or two at which point it'll get picked up
by the stable trees.

> 
> > Applied to the togreg branch of iio.git and pushed out as testing for the
> > autobuilders to play with it.
> >
> > Umm. This didn't actually apply to the current tree, so I did what I think
> > was intended by hand. Please take a look at the testing branch of iio.git
> > and check it is correct.  
> Sorry, but togreg branch does not even have temperature subdirectory
> inside. Can you push testing to remote as well? Summary (git kernel
> org) still has last update 8 days ago, or are you pushing somewhere
> else?
Umm. togreg should definitely have a temperature subdirectory.
I suspect this is the odd nature of the web interface for kernel.org.
For reasons I've never understood when you browse a 'tree' of a branch
other than master, it doesn't show the current head of that branch.
The easiest way to get there is to click on a particular commit and
then switch to the tree view.

For the other day it seems I hit an issue with the push and didn't notice.

Should be there now.

Jonathan

> 
> >
> > Applied to the togreg branch of iio.git and pushed out as testing for the
> > autobuilders to play with it.
> >
> > Thanks,
> >
> > Jonathan
> >  
> > > ---
> > >  drivers/iio/temperature/mlx90632.c | 9 +++++++--
> > >  1 file changed, 7 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> > > index 2243e8057ffc..2d54d9cac61d 100644
> > > --- a/drivers/iio/temperature/mlx90632.c
> > > +++ b/drivers/iio/temperature/mlx90632.c
> > > @@ -81,6 +81,8 @@
> > >  /* Magic constants */
> > >  #define MLX90632_ID_MEDICAL  0x0105 /* EEPROM DSPv5 Medical device id */
> > >  #define MLX90632_ID_CONSUMER 0x0205 /* EEPROM DSPv5 Consumer device id */
> > > +#define MLX90632_DSP_VERSION 5 /* DSP version */
> > > +#define MLX90632_DSP_MASK    GENMASK(7, 0) /* DSP version in EE_VERSION */
> > >  #define MLX90632_RESET_CMD   0x0006 /* Reset sensor (address or global) */
> > >  #define MLX90632_REF_12              12LL /**< ResCtrlRef value of Ch 1 or Ch 2 */
> > >  #define MLX90632_REF_3               12LL /**< ResCtrlRef value of Channel 3 */
> > > @@ -666,10 +668,13 @@ static int mlx90632_probe(struct i2c_client *client,
> > >       } else if (read == MLX90632_ID_CONSUMER) {
> > >               dev_dbg(&client->dev,
> > >                       "Detected Consumer EEPROM calibration %x\n", read);
> > > +     } else if ((read & MLX90632_DSP_MASK) == MLX90632_DSP_VERSION) {
> > > +             dev_dbg(&client->dev,
> > > +                     "Detected Unknown EEPROM calibration %x\n", read);
> > >       } else {
> > >               dev_err(&client->dev,
> > > -                     "Wrong DSP version %x (expected %x or %x)\n",
> > > -                     read, MLX90632_DSPv5);
> > > +                     "Wrong DSP version %x (expected %x)\n",
> > > +                     read, MLX90632_DSP_VERSION);
> > >               return -EPROTONOSUPPORT;
> > >       }
> > >  
> >  




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux