OSDN Git Service

eeprom: ee1004: Cache current page at initialization of first device only
authorHeiner Kallweit <hkallweit1@gmail.com>
Mon, 24 May 2021 20:14:43 +0000 (22:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 May 2021 12:49:39 +0000 (14:49 +0200)
The value of ee1004_current_page applies to all SPD eeproms connected
to the adapter. Therefore it's sufficient if we set ee1004_current_page
when the first device is added.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/b9240e58-08bb-3d71-7a9c-9a323b470ab6@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/eeprom/ee1004.c

index 460cc22..d7c693b 100644 (file)
@@ -187,20 +187,19 @@ static int ee1004_probe(struct i2c_client *client)
                        }
                        ee1004_set_page[cnr] = cl;
                }
+
+               /* Remember current page to avoid unneeded page select */
+               err = ee1004_get_current_page();
+               if (err < 0)
+                       goto err_clients;
+               dev_dbg(&client->dev, "Currently selected page: %d\n", err);
+               ee1004_current_page = err;
        } else if (client->adapter != ee1004_set_page[0]->adapter) {
                dev_err(&client->dev,
                        "Driver only supports devices on a single I2C bus\n");
                err = -EOPNOTSUPP;
                goto err_clients;
        }
-
-       /* Remember current page to avoid unneeded page select */
-       err = ee1004_get_current_page();
-       if (err < 0)
-               goto err_clients;
-       ee1004_current_page = err;
-       dev_dbg(&client->dev, "Currently selected page: %d\n",
-               ee1004_current_page);
        mutex_unlock(&ee1004_bus_lock);
 
        dev_info(&client->dev,