Thread (18 messages) 18 messages, 3 authors, 2019-12-02
STALE2394d

[PATCH 5/5] input/rmi4/rmi_smbus.c: don't increment rmiaddr in rmi_smb_read_block()

From: Hans Verkuil <hidden>
Date: 2019-11-19 10:51:26
Also in: linux-media
Subsystem: input (keyboard, mouse, joystick, touchscreen) drivers, the rest · Maintainers: Dmitry Torokhov, Linus Torvalds

This increment of rmi_smbus causes garbage to be returned.
The first read of SMB_MAX_COUNT bytes is fine, but after that
it is nonsense. Trial-and-error showed that by dropping the
increment of rmiaddr everything is fine and the F54 function
properly works.

Even going back to the original code when F54 was added, I
could not make it work without this patch. So I do not understand
how this ever worked.

My guess is that the same change is needed in rmi_smb_write_block,
but I wouldn't know how to test this.

Signed-off-by: Hans Verkuil <redacted>
---
 drivers/input/rmi4/rmi_smbus.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/drivers/input/rmi4/rmi_smbus.c b/drivers/input/rmi4/rmi_smbus.c
index 2407ea43de59..79ecea5edacc 100644
--- a/drivers/input/rmi4/rmi_smbus.c
+++ b/drivers/input/rmi4/rmi_smbus.c
@@ -215,7 +215,6 @@ static int rmi_smb_read_block(struct rmi_transport_dev *xport, u16 rmiaddr,
 		/* prepare to read next block of bytes */
 		cur_len -= SMB_MAX_COUNT;
 		databuff += SMB_MAX_COUNT;
-		rmiaddr += SMB_MAX_COUNT;
 	}
 
 	retval = 0;
-- 
2.23.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help