summaryrefslogtreecommitdiffstats
path: root/include/linux/i2c.h
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2010-08-11 18:20:58 +0200
committerJean Delvare <khali@linux-fr.org>2010-08-11 18:20:58 +0200
commitfe61e07e9ebc890c70d97a1f72ddaad4bee2d848 (patch)
treee6ab84f0c09c555899884f2b730d205e3244dd8f /include/linux/i2c.h
parentd44f19d586b6113fb5db10e1a36457f0db3b01aa (diff)
downloadop-kernel-dev-fe61e07e9ebc890c70d97a1f72ddaad4bee2d848.zip
op-kernel-dev-fe61e07e9ebc890c70d97a1f72ddaad4bee2d848.tar.gz
i2c: Move adapter locking helpers to i2c-core
Uninline i2c adapter locking helper functions, move them to i2c-core, and use them in i2c-core itself. The functions are still exported for external users. This makes future updates to the locking model (which will be needed for multiplexing support) possible and transparent. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Michael Lawnick <ml.lawnick@gmx.de>
Diffstat (limited to 'include/linux/i2c.h')
-rw-r--r--include/linux/i2c.h20
1 files changed, 3 insertions, 17 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index c8627e4..5bf0f4b 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -382,23 +382,9 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data)
dev_set_drvdata(&dev->dev, data);
}
-/**
- * i2c_lock_adapter - Prevent access to an I2C bus segment
- * @adapter: Target I2C bus segment
- */
-static inline void i2c_lock_adapter(struct i2c_adapter *adapter)
-{
- rt_mutex_lock(&adapter->bus_lock);
-}
-
-/**
- * i2c_unlock_adapter - Reauthorize access to an I2C bus segment
- * @adapter: Target I2C bus segment
- */
-static inline void i2c_unlock_adapter(struct i2c_adapter *adapter)
-{
- rt_mutex_unlock(&adapter->bus_lock);
-}
+/* Adapter locking functions, exported for shared pin cases */
+void i2c_lock_adapter(struct i2c_adapter *);
+void i2c_unlock_adapter(struct i2c_adapter *);
/*flags for the client struct: */
#define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */
OpenPOWER on IntegriCloud