[media] saa717x: fix multi-byte read code
As reported by smatch: drivers/media/i2c/saa717x.c:155 saa717x_read() warn: mask and shift to zero drivers/media/i2c/saa717x.c:155 saa717x_read() warn: mask and shift to zero This is done right at saa717x_write(), but the read function is broken. Thankfully, there's just one place at saa717x driver that uses multibyte read (for status report, via printk). Yet, let's fix it. From saa717x_write(), it is clear that the bytes are in little endian: mm1[4] = (value >> 16) & 0xff; mm1[3] = (value >> 8) & 0xff; mm1[2] = value & 0xff; So, the same order should be valid for read too. Compile-tested only. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Родитель
3c71d978c5
Коммит
4c7ba4082f
|
@ -152,9 +152,9 @@ static u32 saa717x_read(struct v4l2_subdev *sd, u32 reg)
|
|||
i2c_transfer(adap, msgs, 2);
|
||||
|
||||
if (fw_addr)
|
||||
value = (mm2[2] & 0xff) | ((mm2[1] & 0xff) >> 8) | ((mm2[0] & 0xff) >> 16);
|
||||
value = (mm2[2] << 16) | (mm2[1] << 8) | mm2[0];
|
||||
else
|
||||
value = mm2[0] & 0xff;
|
||||
value = mm2[0];
|
||||
|
||||
v4l2_dbg(2, debug, sd, "read: reg 0x%03x=0x%08x\n", reg, value);
|
||||
return value;
|
||||
|
|
Загрузка…
Ссылка в новой задаче