diff options
author | Jean Delvare <jdelvare@suse.de> | 2015-01-26 20:59:31 +0100 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2015-01-26 22:05:20 +0100 |
commit | d5fd120e7860c2b3d4c936a2ebadb6b244bec4c8 (patch) | |
tree | accfd5191f854f2bef8b6405ffb3cb07d4e801f0 /include | |
parent | 34e81ad5f0b60007c95995eb7803da7e00c6c611 (diff) | |
download | lwn-d5fd120e7860c2b3d4c936a2ebadb6b244bec4c8.tar.gz lwn-d5fd120e7860c2b3d4c936a2ebadb6b244bec4c8.zip |
i2c: Only include slave support if selected
Make the slave support depend on CONFIG_I2C_SLAVE. Otherwise it gets
included unconditionally, even when it is not needed.
I2C bus drivers which implement slave support must select
I2C_SLAVE.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/i2c.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index e3a1721c8354..7c7695940ddd 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -228,7 +228,9 @@ struct i2c_client { struct device dev; /* the device structure */ int irq; /* irq issued by device */ struct list_head detected; +#if IS_ENABLED(CONFIG_I2C_SLAVE) i2c_slave_cb_t slave_cb; /* callback for slave mode */ +#endif }; #define to_i2c_client(d) container_of(d, struct i2c_client, dev) @@ -253,6 +255,7 @@ static inline void i2c_set_clientdata(struct i2c_client *dev, void *data) /* I2C slave support */ +#if IS_ENABLED(CONFIG_I2C_SLAVE) enum i2c_slave_event { I2C_SLAVE_REQ_READ_START, I2C_SLAVE_REQ_READ_END, @@ -269,6 +272,7 @@ static inline int i2c_slave_event(struct i2c_client *client, { return client->slave_cb(client, event, val); } +#endif /** * struct i2c_board_info - template for device creation @@ -404,8 +408,10 @@ struct i2c_algorithm { /* To determine what the adapter supports */ u32 (*functionality) (struct i2c_adapter *); +#if IS_ENABLED(CONFIG_I2C_SLAVE) int (*reg_slave)(struct i2c_client *client); int (*unreg_slave)(struct i2c_client *client); +#endif }; /** |