Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a84adf40 authored by Igor M. Liplianin's avatar Igor M. Liplianin Committed by Mauro Carvalho Chehab
Browse files

[media] dw2102: i2c transfer corrected for some cards



Prof 7500 and TeVii s630, s660, s480 works better now

Signed-off-by: default avatarIgor M. Liplianin <liplianin@me.by>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent e86e4dfa
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -564,14 +564,15 @@ static int s6x0_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
					i += 16;
					len -= 16;
				} while (len > 0);
			} else if ((udev->descriptor.idProduct == 0x7500)
					&& (j < (num - 1))) {
			} else if (j < (num - 1)) {
				/* write register addr before read */
				u8 obuf[msg[j].len + 2];
				obuf[0] = msg[j + 1].len;
				obuf[1] = (msg[j].addr << 1);
				memcpy(obuf + 2, msg[j].buf, msg[j].len);
				ret = dw210x_op_rw(d->udev, 0x92, 0, 0,
				ret = dw210x_op_rw(d->udev,
						udev->descriptor.idProduct ==
						0x7500 ? 0x92 : 0x90, 0, 0,
						obuf, msg[j].len + 2,
						DW210X_WRITE_MSG);
				break;
@@ -581,8 +582,7 @@ static int s6x0_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
				obuf[0] = msg[j].len + 1;
				obuf[1] = (msg[j].addr << 1);
				memcpy(obuf + 2, msg[j].buf, msg[j].len);
				ret = dw210x_op_rw(d->udev,
						(num > 1 ? 0x90 : 0x80), 0, 0,
				ret = dw210x_op_rw(d->udev, 0x80, 0, 0,
						obuf, msg[j].len + 2,
						DW210X_WRITE_MSG);
				break;