RE: [EXT] Re: [PATCH 1/1] iio: light: vcnl4035: fixed chip ID check

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

 




> -----Original Message-----
> From: Jonathan Cameron <jic23@xxxxxxxxxx>
> Sent: Sunday, April 30, 2023 12:23 PM
> To: Frank Li <frank.li@xxxxxxx>
> Cc: Lars-Peter Clausen <lars@xxxxxxxxxx>; Uwe Kleine-König <u.kleine-
> koenig@xxxxxxxxxxxxxx>; Petr Machata <petrm@xxxxxxxxxx>; Heikki
> Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>; Jean Delvare
> <jdelvare@xxxxxxx>; Andy Shevchenko
> <andriy.shevchenko@xxxxxxxxxxxxxxx>; Parthiban Nallathambi
> <pn@xxxxxxx>; open list:IIO SUBSYSTEM AND DRIVERS <linux-
> iio@xxxxxxxxxxxxxxx>; open list <linux-kernel@xxxxxxxxxxxxxxx>;
> imx@xxxxxxxxxxxxxxx
> Subject: [EXT] Re: [PATCH 1/1] iio: light: vcnl4035: fixed chip ID check
> 
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
> 
> 
> On Thu, 27 Apr 2023 17:30:37 -0400
> Frank Li <Frank.Li@xxxxxxx> wrote:
> 
> > VCNL4035 register(0xE) ID_L and ID_M define as:
> >
> >  ID_L: 0x80
> >  ID_H: 7:6 (0:0)
> >        5:4 (0:0) slave address = 0x60 (7-bit)
> >            (0:1) slave address = 0x51 (7-bit)
> >            (1:0) slave address = 0x40 (7-bit)
> >            (1:0) slave address = 0x41 (7-bit)
> >        3:0 Version code default       (0:0:0:0)
> >
> > So just check ID_L.
> 
> Hi Frank,
> 
> Thanks for the fix. A few minor things inline.
> 
> >
> > Fixes: 55707294c4eb ("iio: light: Add support for vishay vcnl4035")
> >
> 
> No blank line here as the Fixes tag is part of the main tag block.
> 
> > Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> 
> Just to check, the result of this bug is that the driver probe fails
> if the slave address isn't 0x60?

Yes, I get chip which slave address = 0x51. 
I will update patch soon.

> 
> > ---
> >  drivers/iio/light/vcnl4035.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
> > index 3ed37f6057fb..8b7769930f3b 100644
> > --- a/drivers/iio/light/vcnl4035.c
> > +++ b/drivers/iio/light/vcnl4035.c
> > @@ -413,7 +413,7 @@ static int vcnl4035_init(struct vcnl4035_data *data)
> >               return ret;
> >       }
> >
> > -     if (id != VCNL4035_DEV_ID_VAL) {
> > +     if ((id & 0xff) != VCNL4035_DEV_ID_VAL) {
> 
> Please add a define for that 0xff mask and perhaps also use
> FIELD_GET() to extract the field for comparison with VCNL4035_DEV_ID_VAL.
> Whilst that isn't being done elsewhere in this driver, the heavy use
> of set bits means it isn't appropriate anywhere else that I can quickly
> identify. You'll also need to include linux/bitfield.h if making that change.
> 
> Thanks,
> 
> Jonathan
> 
> >               dev_err(&data->client->dev, "Wrong id, got %x, expected %x\n",
> >                       id, VCNL4035_DEV_ID_VAL);
> >               return -ENODEV;





[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