i2c: remove i2c_lock_adapter and use i2c_lock_bus directly
authorPeter Rosin <peda@axentia.se>
Wed, 20 Jun 2018 05:18:03 +0000 (07:18 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 12 Jul 2018 22:09:37 +0000 (00:09 +0200)
The i2c_lock_adapter name is ambiguous since it is unclear if it
refers to the root adapter or the adapter you name in the argument.
The natural interpretation is the adapter you name in the argument,
but there are historical reasons for that not being the case; it
in fact locks the root adapter. Just remove the function and force
users to spell out the I2C_LOCK_ROOT_ADAPTER name to indicate what
is really going on. Also remove i2c_unlock_adapter, of course.

This patch was generated with

git grep -l 'i2c_\(un\)\?lock_adapter' \
| xargs sed -i 's/i2c_\(un\)\?lock_adapter(\([^)]*\))/'\
'i2c_\1lock_bus(\2, I2C_LOCK_ROOT_ADAPTER)/g'

followed by white-space touch-up.

Signed-off-by: Peter Rosin <peda@axentia.se>
Acked-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Tested-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-brcmstb.c
drivers/i2c/busses/i2c-davinci.c
drivers/i2c/busses/i2c-gpio.c
drivers/i2c/busses/i2c-s3c2410.c
drivers/i2c/busses/i2c-sprd.c
drivers/i2c/i2c-core-slave.c
drivers/iio/temperature/mlx90614.c
include/linux/i2c.h

index 78792b4d6437c7cca6d84fd4977773f0c65781e2..826d320499961691bacd3e33d04526125ae1a959 100644 (file)
@@ -689,9 +689,9 @@ static int brcmstb_i2c_suspend(struct device *dev)
 {
        struct brcmstb_i2c_dev *i2c_dev = dev_get_drvdata(dev);
 
-       i2c_lock_adapter(&i2c_dev->adapter);
+       i2c_lock_bus(&i2c_dev->adapter, I2C_LOCK_ROOT_ADAPTER);
        i2c_dev->is_suspended = true;
-       i2c_unlock_adapter(&i2c_dev->adapter);
+       i2c_unlock_bus(&i2c_dev->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        return 0;
 }
@@ -700,10 +700,10 @@ static int brcmstb_i2c_resume(struct device *dev)
 {
        struct brcmstb_i2c_dev *i2c_dev = dev_get_drvdata(dev);
 
-       i2c_lock_adapter(&i2c_dev->adapter);
+       i2c_lock_bus(&i2c_dev->adapter, I2C_LOCK_ROOT_ADAPTER);
        brcmstb_i2c_set_bsc_reg_defaults(i2c_dev);
        i2c_dev->is_suspended = false;
-       i2c_unlock_adapter(&i2c_dev->adapter);
+       i2c_unlock_bus(&i2c_dev->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        return 0;
 }
index 75d6ab177055efa2119635eb56845388ac3a0848..d945a2654c2fecb07f6790c1940ee2242ea52e18 100644 (file)
@@ -714,14 +714,14 @@ static int i2c_davinci_cpufreq_transition(struct notifier_block *nb,
 
        dev = container_of(nb, struct davinci_i2c_dev, freq_transition);
 
-       i2c_lock_adapter(&dev->adapter);
+       i2c_lock_bus(&dev->adapter, I2C_LOCK_ROOT_ADAPTER);
        if (val == CPUFREQ_PRECHANGE) {
                davinci_i2c_reset_ctrl(dev, 0);
        } else if (val == CPUFREQ_POSTCHANGE) {
                i2c_davinci_calc_clk_dividers(dev);
                davinci_i2c_reset_ctrl(dev, 1);
        }
-       i2c_unlock_adapter(&dev->adapter);
+       i2c_unlock_bus(&dev->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        return 0;
 }
index 66f85bbf35917161cc36e4ffb308d78b8401c0cb..20b3dd756fc75bd53b174edcb90103386bac4d20 100644 (file)
@@ -78,24 +78,24 @@ static struct dentry *i2c_gpio_debug_dir;
 #define getscl(bd)     ((bd)->getscl((bd)->data))
 
 #define WIRE_ATTRIBUTE(wire) \
-static int fops_##wire##_get(void *data, u64 *val)     \
-{                                                      \
-       struct i2c_gpio_private_data *priv = data;      \
-                                                       \
-       i2c_lock_adapter(&priv->adap);                  \
-       *val = get##wire(&priv->bit_data);              \
-       i2c_unlock_adapter(&priv->adap);                \
-       return 0;                                       \
-}                                                      \
-static int fops_##wire##_set(void *data, u64 val)      \
-{                                                      \
-       struct i2c_gpio_private_data *priv = data;      \
-                                                       \
-       i2c_lock_adapter(&priv->adap);                  \
-       set##wire(&priv->bit_data, val);                \
-       i2c_unlock_adapter(&priv->adap);                \
-       return 0;                                       \
-}                                                      \
+static int fops_##wire##_get(void *data, u64 *val)             \
+{                                                              \
+       struct i2c_gpio_private_data *priv = data;              \
+                                                               \
+       i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);       \
+       *val = get##wire(&priv->bit_data);                      \
+       i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);     \
+       return 0;                                               \
+}                                                              \
+static int fops_##wire##_set(void *data, u64 val)              \
+{                                                              \
+       struct i2c_gpio_private_data *priv = data;              \
+                                                               \
+       i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);       \
+       set##wire(&priv->bit_data, val);                        \
+       i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);     \
+       return 0;                                               \
+}                                                              \
 DEFINE_DEBUGFS_ATTRIBUTE(fops_##wire, fops_##wire##_get, fops_##wire##_set, "%llu\n")
 
 WIRE_ATTRIBUTE(scl);
@@ -113,7 +113,7 @@ static int fops_incomplete_transfer_set(void *data, u64 addr)
        /* ADDR (7 bit) + RD (1 bit) + SDA hi (1 bit) */
        pattern = (addr << 2) | 3;
 
-       i2c_lock_adapter(&priv->adap);
+       i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);
 
        /* START condition */
        setsda(bit_data, 0);
@@ -129,7 +129,7 @@ static int fops_incomplete_transfer_set(void *data, u64 addr)
                udelay(bit_data->udelay);
        }
 
-       i2c_unlock_adapter(&priv->adap);
+       i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER);
 
        return 0;
 }
index 9fe2b6951895b6b27984eedeb82c8ec6c34604e7..2f2e28d60ef5246dcc870b5cf92b48d649350833 100644 (file)
@@ -919,9 +919,9 @@ static int s3c24xx_i2c_cpufreq_transition(struct notifier_block *nb,
 
        if ((val == CPUFREQ_POSTCHANGE && delta_f < 0) ||
            (val == CPUFREQ_PRECHANGE && delta_f > 0)) {
-               i2c_lock_adapter(&i2c->adap);
+               i2c_lock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
                ret = s3c24xx_i2c_clockrate(i2c, &got);
-               i2c_unlock_adapter(&i2c->adap);
+               i2c_unlock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
 
                if (ret < 0)
                        dev_err(i2c->dev, "cannot find frequency (%d)\n", ret);
index 4053259bccb8d704d9d386287086841690174844..a94e724f51dcf5787b808881486acb1e44b689b9 100644 (file)
@@ -590,9 +590,9 @@ static int __maybe_unused sprd_i2c_suspend_noirq(struct device *pdev)
 {
        struct sprd_i2c *i2c_dev = dev_get_drvdata(pdev);
 
-       i2c_lock_adapter(&i2c_dev->adap);
+       i2c_lock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
        i2c_dev->is_suspended = true;
-       i2c_unlock_adapter(&i2c_dev->adap);
+       i2c_unlock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
 
        return pm_runtime_force_suspend(pdev);
 }
@@ -601,9 +601,9 @@ static int __maybe_unused sprd_i2c_resume_noirq(struct device *pdev)
 {
        struct sprd_i2c *i2c_dev = dev_get_drvdata(pdev);
 
-       i2c_lock_adapter(&i2c_dev->adap);
+       i2c_lock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
        i2c_dev->is_suspended = false;
-       i2c_unlock_adapter(&i2c_dev->adap);
+       i2c_unlock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
 
        return pm_runtime_force_resume(pdev);
 }
index 4a78c65e997133f512dd2722cb49fa1e8b7ca5cb..47a9f70a24a972810b431a997eba934d5a6b520f 100644 (file)
@@ -47,9 +47,9 @@ int i2c_slave_register(struct i2c_client *client, i2c_slave_cb_t slave_cb)
 
        client->slave_cb = slave_cb;
 
-       i2c_lock_adapter(client->adapter);
+       i2c_lock_bus(client->adapter, I2C_LOCK_ROOT_ADAPTER);
        ret = client->adapter->algo->reg_slave(client);
-       i2c_unlock_adapter(client->adapter);
+       i2c_unlock_bus(client->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        if (ret) {
                client->slave_cb = NULL;
@@ -69,9 +69,9 @@ int i2c_slave_unregister(struct i2c_client *client)
                return -EOPNOTSUPP;
        }
 
-       i2c_lock_adapter(client->adapter);
+       i2c_lock_bus(client->adapter, I2C_LOCK_ROOT_ADAPTER);
        ret = client->adapter->algo->unreg_slave(client);
-       i2c_unlock_adapter(client->adapter);
+       i2c_unlock_bus(client->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        if (ret == 0)
                client->slave_cb = NULL;
index d619e8634a00fb93bd526bc3527d8f516d07a8a2..13a4cec64ea88d69f63e01ea817cdaf990ebe267 100644 (file)
@@ -433,11 +433,11 @@ static int mlx90614_wakeup(struct mlx90614_data *data)
 
        dev_dbg(&data->client->dev, "Requesting wake-up");
 
-       i2c_lock_adapter(data->client->adapter);
+       i2c_lock_bus(data->client->adapter, I2C_LOCK_ROOT_ADAPTER);
        gpiod_direction_output(data->wakeup_gpio, 0);
        msleep(MLX90614_TIMING_WAKEUP);
        gpiod_direction_input(data->wakeup_gpio);
-       i2c_unlock_adapter(data->client->adapter);
+       i2c_unlock_bus(data->client->adapter, I2C_LOCK_ROOT_ADAPTER);
 
        data->ready_timestamp = jiffies +
                        msecs_to_jiffies(MLX90614_TIMING_STARTUP);
index 254cd34eeae22a0b4a961a376b39bc74031aebb1..795e3a860afe48f4c5e8cb26dbd5905a2025d1c9 100644 (file)
@@ -754,18 +754,6 @@ i2c_unlock_bus(struct i2c_adapter *adapter, unsigned int flags)
        adapter->lock_ops->unlock_bus(adapter, flags);
 }
 
-static inline void
-i2c_lock_adapter(struct i2c_adapter *adapter)
-{
-       i2c_lock_bus(adapter, I2C_LOCK_ROOT_ADAPTER);
-}
-
-static inline void
-i2c_unlock_adapter(struct i2c_adapter *adapter)
-{
-       i2c_unlock_bus(adapter, I2C_LOCK_ROOT_ADAPTER);
-}
-
 /*flags for the client struct: */
 #define I2C_CLIENT_PEC         0x04    /* Use Packet Error Checking */
 #define I2C_CLIENT_TEN         0x10    /* we have a ten bit chip address */