Commit 0cc43a1806f078f7fd414850d8f1f1761696e4af
Committed by
Jean Delvare
1 parent
af5a60baae
Exists in
master
and in
41 other branches
i2c: Constify i2c_client where possible
Helper functions for I2C and SMBus transactions don't modify the i2c_client that is passed to them, so it can be marked const. Signed-off-by: Jean Delvare <khali@linux-fr.org>
Showing 3 changed files with 37 additions and 31 deletions Side-by-side Diff
drivers/i2c/i2c-core.c
| ... | ... | @@ -1362,7 +1362,7 @@ |
| 1362 | 1362 | * |
| 1363 | 1363 | * Returns negative errno, or else the number of bytes written. |
| 1364 | 1364 | */ |
| 1365 | -int i2c_master_send(struct i2c_client *client, const char *buf, int count) | |
| 1365 | +int i2c_master_send(const struct i2c_client *client, const char *buf, int count) | |
| 1366 | 1366 | { |
| 1367 | 1367 | int ret; |
| 1368 | 1368 | struct i2c_adapter *adap = client->adapter; |
| ... | ... | @@ -1389,7 +1389,7 @@ |
| 1389 | 1389 | * |
| 1390 | 1390 | * Returns negative errno, or else the number of bytes read. |
| 1391 | 1391 | */ |
| 1392 | -int i2c_master_recv(struct i2c_client *client, char *buf, int count) | |
| 1392 | +int i2c_master_recv(const struct i2c_client *client, char *buf, int count) | |
| 1393 | 1393 | { |
| 1394 | 1394 | struct i2c_adapter *adap = client->adapter; |
| 1395 | 1395 | struct i2c_msg msg; |
| ... | ... | @@ -1679,7 +1679,7 @@ |
| 1679 | 1679 | * This executes the SMBus "receive byte" protocol, returning negative errno |
| 1680 | 1680 | * else the byte received from the device. |
| 1681 | 1681 | */ |
| 1682 | -s32 i2c_smbus_read_byte(struct i2c_client *client) | |
| 1682 | +s32 i2c_smbus_read_byte(const struct i2c_client *client) | |
| 1683 | 1683 | { |
| 1684 | 1684 | union i2c_smbus_data data; |
| 1685 | 1685 | int status; |
| ... | ... | @@ -1699,7 +1699,7 @@ |
| 1699 | 1699 | * This executes the SMBus "send byte" protocol, returning negative errno |
| 1700 | 1700 | * else zero on success. |
| 1701 | 1701 | */ |
| 1702 | -s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value) | |
| 1702 | +s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value) | |
| 1703 | 1703 | { |
| 1704 | 1704 | return i2c_smbus_xfer(client->adapter, client->addr, client->flags, |
| 1705 | 1705 | I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, NULL); |
| ... | ... | @@ -1714,7 +1714,7 @@ |
| 1714 | 1714 | * This executes the SMBus "read byte" protocol, returning negative errno |
| 1715 | 1715 | * else a data byte received from the device. |
| 1716 | 1716 | */ |
| 1717 | -s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command) | |
| 1717 | +s32 i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command) | |
| 1718 | 1718 | { |
| 1719 | 1719 | union i2c_smbus_data data; |
| 1720 | 1720 | int status; |
| ... | ... | @@ -1735,7 +1735,8 @@ |
| 1735 | 1735 | * This executes the SMBus "write byte" protocol, returning negative errno |
| 1736 | 1736 | * else zero on success. |
| 1737 | 1737 | */ |
| 1738 | -s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value) | |
| 1738 | +s32 i2c_smbus_write_byte_data(const struct i2c_client *client, u8 command, | |
| 1739 | + u8 value) | |
| 1739 | 1740 | { |
| 1740 | 1741 | union i2c_smbus_data data; |
| 1741 | 1742 | data.byte = value; |
| ... | ... | @@ -1753,7 +1754,7 @@ |
| 1753 | 1754 | * This executes the SMBus "read word" protocol, returning negative errno |
| 1754 | 1755 | * else a 16-bit unsigned "word" received from the device. |
| 1755 | 1756 | */ |
| 1756 | -s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command) | |
| 1757 | +s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command) | |
| 1757 | 1758 | { |
| 1758 | 1759 | union i2c_smbus_data data; |
| 1759 | 1760 | int status; |
| ... | ... | @@ -1774,7 +1775,8 @@ |
| 1774 | 1775 | * This executes the SMBus "write word" protocol, returning negative errno |
| 1775 | 1776 | * else zero on success. |
| 1776 | 1777 | */ |
| 1777 | -s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value) | |
| 1778 | +s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, | |
| 1779 | + u16 value) | |
| 1778 | 1780 | { |
| 1779 | 1781 | union i2c_smbus_data data; |
| 1780 | 1782 | data.word = value; |
| ... | ... | @@ -1793,7 +1795,8 @@ |
| 1793 | 1795 | * This executes the SMBus "process call" protocol, returning negative errno |
| 1794 | 1796 | * else a 16-bit unsigned "word" received from the device. |
| 1795 | 1797 | */ |
| 1796 | -s32 i2c_smbus_process_call(struct i2c_client *client, u8 command, u16 value) | |
| 1798 | +s32 i2c_smbus_process_call(const struct i2c_client *client, u8 command, | |
| 1799 | + u16 value) | |
| 1797 | 1800 | { |
| 1798 | 1801 | union i2c_smbus_data data; |
| 1799 | 1802 | int status; |
| ... | ... | @@ -1821,7 +1824,7 @@ |
| 1821 | 1824 | * support this; its emulation through I2C messaging relies on a specific |
| 1822 | 1825 | * mechanism (I2C_M_RECV_LEN) which may not be implemented. |
| 1823 | 1826 | */ |
| 1824 | -s32 i2c_smbus_read_block_data(struct i2c_client *client, u8 command, | |
| 1827 | +s32 i2c_smbus_read_block_data(const struct i2c_client *client, u8 command, | |
| 1825 | 1828 | u8 *values) |
| 1826 | 1829 | { |
| 1827 | 1830 | union i2c_smbus_data data; |
| ... | ... | @@ -1848,7 +1851,7 @@ |
| 1848 | 1851 | * This executes the SMBus "block write" protocol, returning negative errno |
| 1849 | 1852 | * else zero on success. |
| 1850 | 1853 | */ |
| 1851 | -s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command, | |
| 1854 | +s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, | |
| 1852 | 1855 | u8 length, const u8 *values) |
| 1853 | 1856 | { |
| 1854 | 1857 | union i2c_smbus_data data; |
| ... | ... | @@ -1864,7 +1867,7 @@ |
| 1864 | 1867 | EXPORT_SYMBOL(i2c_smbus_write_block_data); |
| 1865 | 1868 | |
| 1866 | 1869 | /* Returns the number of read bytes */ |
| 1867 | -s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, | |
| 1870 | +s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, u8 command, | |
| 1868 | 1871 | u8 length, u8 *values) |
| 1869 | 1872 | { |
| 1870 | 1873 | union i2c_smbus_data data; |
| ... | ... | @@ -1884,7 +1887,7 @@ |
| 1884 | 1887 | } |
| 1885 | 1888 | EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data); |
| 1886 | 1889 | |
| 1887 | -s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, u8 command, | |
| 1890 | +s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client, u8 command, | |
| 1888 | 1891 | u8 length, const u8 *values) |
| 1889 | 1892 | { |
| 1890 | 1893 | union i2c_smbus_data data; |
drivers/rtc/rtc-ds1307.c
| ... | ... | @@ -106,9 +106,9 @@ |
| 106 | 106 | struct i2c_client *client; |
| 107 | 107 | struct rtc_device *rtc; |
| 108 | 108 | struct work_struct work; |
| 109 | - s32 (*read_block_data)(struct i2c_client *client, u8 command, | |
| 109 | + s32 (*read_block_data)(const struct i2c_client *client, u8 command, | |
| 110 | 110 | u8 length, u8 *values); |
| 111 | - s32 (*write_block_data)(struct i2c_client *client, u8 command, | |
| 111 | + s32 (*write_block_data)(const struct i2c_client *client, u8 command, | |
| 112 | 112 | u8 length, const u8 *values); |
| 113 | 113 | }; |
| 114 | 114 | |
| ... | ... | @@ -158,8 +158,8 @@ |
| 158 | 158 | |
| 159 | 159 | #define BLOCK_DATA_MAX_TRIES 10 |
| 160 | 160 | |
| 161 | -static s32 ds1307_read_block_data_once(struct i2c_client *client, u8 command, | |
| 162 | - u8 length, u8 *values) | |
| 161 | +static s32 ds1307_read_block_data_once(const struct i2c_client *client, | |
| 162 | + u8 command, u8 length, u8 *values) | |
| 163 | 163 | { |
| 164 | 164 | s32 i, data; |
| 165 | 165 | |
| ... | ... | @@ -172,7 +172,7 @@ |
| 172 | 172 | return i; |
| 173 | 173 | } |
| 174 | 174 | |
| 175 | -static s32 ds1307_read_block_data(struct i2c_client *client, u8 command, | |
| 175 | +static s32 ds1307_read_block_data(const struct i2c_client *client, u8 command, | |
| 176 | 176 | u8 length, u8 *values) |
| 177 | 177 | { |
| 178 | 178 | u8 oldvalues[I2C_SMBUS_BLOCK_MAX]; |
| ... | ... | @@ -198,7 +198,7 @@ |
| 198 | 198 | return length; |
| 199 | 199 | } |
| 200 | 200 | |
| 201 | -static s32 ds1307_write_block_data(struct i2c_client *client, u8 command, | |
| 201 | +static s32 ds1307_write_block_data(const struct i2c_client *client, u8 command, | |
| 202 | 202 | u8 length, const u8 *values) |
| 203 | 203 | { |
| 204 | 204 | u8 currvalues[I2C_SMBUS_BLOCK_MAX]; |
include/linux/i2c.h
| ... | ... | @@ -57,9 +57,10 @@ |
| 57 | 57 | * transmit an arbitrary number of messages without interruption. |
| 58 | 58 | * @count must be be less than 64k since msg.len is u16. |
| 59 | 59 | */ |
| 60 | -extern int i2c_master_send(struct i2c_client *client, const char *buf, | |
| 60 | +extern int i2c_master_send(const struct i2c_client *client, const char *buf, | |
| 61 | 61 | int count); |
| 62 | -extern int i2c_master_recv(struct i2c_client *client, char *buf, int count); | |
| 62 | +extern int i2c_master_recv(const struct i2c_client *client, char *buf, | |
| 63 | + int count); | |
| 63 | 64 | |
| 64 | 65 | /* Transfer num messages. |
| 65 | 66 | */ |
| 66 | 67 | |
| 67 | 68 | |
| 68 | 69 | |
| 69 | 70 | |
| 70 | 71 | |
| ... | ... | @@ -78,23 +79,25 @@ |
| 78 | 79 | /* Now follow the 'nice' access routines. These also document the calling |
| 79 | 80 | conventions of i2c_smbus_xfer. */ |
| 80 | 81 | |
| 81 | -extern s32 i2c_smbus_read_byte(struct i2c_client *client); | |
| 82 | -extern s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value); | |
| 83 | -extern s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command); | |
| 84 | -extern s32 i2c_smbus_write_byte_data(struct i2c_client *client, | |
| 82 | +extern s32 i2c_smbus_read_byte(const struct i2c_client *client); | |
| 83 | +extern s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value); | |
| 84 | +extern s32 i2c_smbus_read_byte_data(const struct i2c_client *client, | |
| 85 | + u8 command); | |
| 86 | +extern s32 i2c_smbus_write_byte_data(const struct i2c_client *client, | |
| 85 | 87 | u8 command, u8 value); |
| 86 | -extern s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command); | |
| 87 | -extern s32 i2c_smbus_write_word_data(struct i2c_client *client, | |
| 88 | +extern s32 i2c_smbus_read_word_data(const struct i2c_client *client, | |
| 89 | + u8 command); | |
| 90 | +extern s32 i2c_smbus_write_word_data(const struct i2c_client *client, | |
| 88 | 91 | u8 command, u16 value); |
| 89 | 92 | /* Returns the number of read bytes */ |
| 90 | -extern s32 i2c_smbus_read_block_data(struct i2c_client *client, | |
| 93 | +extern s32 i2c_smbus_read_block_data(const struct i2c_client *client, | |
| 91 | 94 | u8 command, u8 *values); |
| 92 | -extern s32 i2c_smbus_write_block_data(struct i2c_client *client, | |
| 95 | +extern s32 i2c_smbus_write_block_data(const struct i2c_client *client, | |
| 93 | 96 | u8 command, u8 length, const u8 *values); |
| 94 | 97 | /* Returns the number of read bytes */ |
| 95 | -extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, | |
| 98 | +extern s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, | |
| 96 | 99 | u8 command, u8 length, u8 *values); |
| 97 | -extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, | |
| 100 | +extern s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client, | |
| 98 | 101 | u8 command, u8 length, |
| 99 | 102 | const u8 *values); |
| 100 | 103 | #endif /* I2C */ |