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:

---

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;
 

Reply via email to