On 2018-04-08 09:34, Wolfram Sang wrote: > Hi, > > On Mon, Mar 19, 2018 at 09:10:58AM -0700, Guenter Roeck wrote: >> Commit dde67eb1beeb ("i2c: add i2c_get_device_id() to get the standard >> I2C device id") added a function to return the standard I2C device ID. >> Use that function to verify the device ID of a given device. > > I am very open to these patches, just... > >> >> Cc: Peter Rosin <peda@xxxxxxxxxx> >> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> >> --- >> RFC: >> - Compile tested only > > ... I would really like to have them tested. After that happened, Peter > and I can figure out who should apply them for seamless upstreaming. > >> - Should there also be I2C_DEVICE_PART_ID_ANY to enable maching >> against all parts from a given manufacturer ? > > Can't we just add it when we need it? > >> + dev_err(&client->dev, "unexpected device id %03x-%03x-%x\n", >> + real_id.manufacturer_id, real_id.part_id, >> + real_id.die_revision); >> + return -ENODEV; > > I wonder about the ERR loglevel. ENODEV is not an error, I'd think? Well, in this case someone has said that I2C addr <xyz> is a <uvw> device, but when verifying the actual device at that addr, that's not what is found. Hence, I think an error is appropriate? On the other hand, a driver that can handle different kinds of devices might not want the error. But for that case, maybe the driver should be using i2c_get_device_id() and figure out the details by itself? Cheers, Peter