On Wed, Aug 26, 2020 at 01:54:26PM +0300, Andy Shevchenko wrote: > On Wed, Aug 26, 2020 at 07:38:07PM +0900, Sergey Senozhatsky wrote: > > On (20/08/26 19:24), Sergey Senozhatsky wrote: > > > > But then the question is why we have this code in the ->probe() at all? > > > > ->match() is run before probe by bus core, no? > > > > > > That's a good question. > > > > Everything seem to be working OK on my test board with this patch: > > I'm okay with it, but I want to hear Wolfram about this. > If it gets a green light to go, feel free to add > Reviewed-by: Andy Shevchenko Sergey, Can you send a proper patch (with patch description) and me and Jean Delvare in the To: field? The origins of this matching code are pretty old and Jean is more experienced there than I am. Nonetheless, I will check it, too, of course. Thanks for the work! > > > --- > > > > diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c > > index 5ec082e2039d..77eea5c0bc71 100644 > > --- a/drivers/i2c/i2c-core-base.c > > +++ b/drivers/i2c/i2c-core-base.c > > @@ -475,17 +475,6 @@ static int i2c_device_probe(struct device *dev) > > > > driver = to_i2c_driver(dev->driver); > > > > - /* > > - * An I2C ID table is not mandatory, if and only if, a suitable OF > > - * or ACPI ID table is supplied for the probing device. > > - */ > > - if (!driver->id_table && > > - !acpi_driver_match_device(dev, dev->driver) && > > - !i2c_of_match_device(dev->driver->of_match_table, client)) { > > - status = -ENODEV; > > - goto put_sync_adapter; > > - } > > - > > if (client->flags & I2C_CLIENT_WAKE) { > > int wakeirq; > > > > -- > With Best Regards, > Andy Shevchenko > >