diff options
author | Jonathan Cameron <jic23@kernel.org> | 2015-10-11 14:55:11 +0300 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-10-12 20:21:13 +0300 |
commit | c04782177f212686cd1d74225df34a5c292be25b (patch) | |
tree | c5349cf55dabf07245e3f2426523b3ae8c7b1c44 /drivers/iio | |
parent | 399910534cca5f00d22438e80ecc7ccc7f4b8a14 (diff) | |
download | linux-c04782177f212686cd1d74225df34a5c292be25b.tar.xz |
iio:measurement specialties core: Fix endian sparse warnings.
This patch changes various types to the appropriate endian specific
versions. Also introduces an additional local variable to avoid
a single variable being used for both be and cpu endianness.
These aren't bugs as such, but clearing them up does make the code
clearer.
Warning was:
sparse warnings: (new ones prefixed by >>)
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: sparse: incorrect type in assignment (different base types)
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: got restricted __be16 [usertype] <noident>
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: sparse: incorrect type in assignment (different base types)
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: got restricted __be16 [usertype] <noident>
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/common/ms_sensors/ms_sensors_i2c.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c index 056c4f3bf497..669dc7c270f5 100644 --- a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c +++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c @@ -106,7 +106,7 @@ int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd, unsigned int delay, u32 *adc) { int ret; - u32 buf = 0; + __be32 buf = 0; struct i2c_client *client = (struct i2c_client *)cli; /* Trigger conversion */ @@ -186,8 +186,9 @@ static bool ms_sensors_crc_valid(u32 value) int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) { u8 i; - u64 rcv_buf = 0; - u16 send_buf; + __be64 rcv_buf = 0; + u64 rcv_val; + __be16 send_buf; int ret; struct i2c_msg msg[2] = { @@ -213,18 +214,18 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) return ret; } - rcv_buf = be64_to_cpu(rcv_buf); - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + rcv_val = be64_to_cpu(rcv_buf); + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); for (i = 0; i < 64; i += 16) { - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFF)) + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFF)) return -ENODEV; } - *sn = (((rcv_buf >> 32) & 0xFF000000) | - ((rcv_buf >> 24) & 0x00FF0000) | - ((rcv_buf >> 16) & 0x0000FF00) | - ((rcv_buf >> 8) & 0x000000FF)) << 16; + *sn = (((rcv_val >> 32) & 0xFF000000) | + ((rcv_val >> 24) & 0x00FF0000) | + ((rcv_val >> 16) & 0x0000FF00) | + ((rcv_val >> 8) & 0x000000FF)) << 16; /* Read LSB part of serial number */ send_buf = cpu_to_be16(MS_SENSORS_SERIAL_READ_LSB); @@ -236,15 +237,15 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) return ret; } - rcv_buf = be64_to_cpu(rcv_buf) >> 16; - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + rcv_val = be64_to_cpu(rcv_buf) >> 16; + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); for (i = 0; i < 48; i += 24) { - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFFFF)) + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFFFF)) return -ENODEV; } - *sn |= (rcv_buf & 0xFFFF00) << 40 | (rcv_buf >> 32); + *sn |= (rcv_val & 0xFFFF00) << 40 | (rcv_val >> 32); return 0; } |