Skip to content

Commit b75f2d1

Browse files
Hans Verkuilmchehab
Hans Verkuil
authored andcommitted
[media] s5k4ecgx: fix sparse warnings
drivers/media/i2c/s5k4ecgx.c:223:16: warning: cast to restricted __be16 drivers/media/i2c/s5k4ecgx.c:223:16: warning: cast to restricted __be16 drivers/media/i2c/s5k4ecgx.c:223:16: warning: cast to restricted __be16 drivers/media/i2c/s5k4ecgx.c:223:16: warning: cast to restricted __be16 drivers/media/i2c/s5k4ecgx.c:344:20: warning: cast to restricted __le32 drivers/media/i2c/s5k4ecgx.c:354:20: warning: cast to restricted __le32 drivers/media/i2c/s5k4ecgx.c:364:24: warning: cast to restricted __le32 drivers/media/i2c/s5k4ecgx.c:366:23: warning: cast to restricted __le16 The get_unaligned_le*() functions return the value using cpu endianness, so calling le*_to_cpu is wrong. It hasn't been not noticed because this code has only been run on little endian systems, so le*_to_cpu doesn't do anything. Signed-off-by: Hans Verkuil <[email protected]> Acked-by: Sylwester Nawrocki <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent d3acd83 commit b75f2d1

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

drivers/media/i2c/s5k4ecgx.c

+5-6
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ static int s5k4ecgx_i2c_read(struct i2c_client *client, u16 addr, u16 *val)
220220
msg[1].buf = rbuf;
221221

222222
ret = i2c_transfer(client->adapter, msg, 2);
223-
*val = be16_to_cpu(*((u16 *)rbuf));
223+
*val = be16_to_cpu(*((__be16 *)rbuf));
224224

225225
v4l2_dbg(4, debug, client, "i2c_read: 0x%04X : 0x%04x\n", addr, *val);
226226

@@ -341,7 +341,7 @@ static int s5k4ecgx_load_firmware(struct v4l2_subdev *sd)
341341
v4l2_err(sd, "Failed to read firmware %s\n", S5K4ECGX_FIRMWARE);
342342
return err;
343343
}
344-
regs_num = le32_to_cpu(get_unaligned_le32(fw->data));
344+
regs_num = get_unaligned_le32(fw->data);
345345

346346
v4l2_dbg(3, debug, sd, "FW: %s size %zu register sets %d\n",
347347
S5K4ECGX_FIRMWARE, fw->size, regs_num);
@@ -351,8 +351,7 @@ static int s5k4ecgx_load_firmware(struct v4l2_subdev *sd)
351351
err = -EINVAL;
352352
goto fw_out;
353353
}
354-
crc_file = le32_to_cpu(get_unaligned_le32(fw->data +
355-
regs_num * FW_RECORD_SIZE));
354+
crc_file = get_unaligned_le32(fw->data + regs_num * FW_RECORD_SIZE);
356355
crc = crc32_le(~0, fw->data, regs_num * FW_RECORD_SIZE);
357356
if (crc != crc_file) {
358357
v4l2_err(sd, "FW: invalid crc (%#x:%#x)\n", crc, crc_file);
@@ -361,9 +360,9 @@ static int s5k4ecgx_load_firmware(struct v4l2_subdev *sd)
361360
}
362361
ptr = fw->data + FW_RECORD_SIZE;
363362
for (i = 1; i < regs_num; i++) {
364-
addr = le32_to_cpu(get_unaligned_le32(ptr));
363+
addr = get_unaligned_le32(ptr);
365364
ptr += sizeof(u32);
366-
val = le16_to_cpu(get_unaligned_le16(ptr));
365+
val = get_unaligned_le16(ptr);
367366
ptr += sizeof(u16);
368367
if (addr - addr_inc != 2)
369368
err = s5k4ecgx_write(client, addr, val);

0 commit comments

Comments
 (0)