]> git.baikalelectronics.ru Git - kernel.git/commit
Input: raydium_ts_i2c - do not split tx transactions
authorFurquan Shaikh <furquan@google.com>
Mon, 7 Dec 2020 06:05:13 +0000 (22:05 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 7 Dec 2020 06:12:39 +0000 (22:12 -0800)
commit8667b0cd03c32c75bbee3a8905e06805fe377f7c
tree3e3255f9c16b3abc1d2ea2531e8775ae6ff8feab
parent23ab014ee6c97089685d7b97709ae2d00cc4ca46
Input: raydium_ts_i2c - do not split tx transactions

Raydium device does not like splitting of tx transactions into multiple
messages - one for the register address and one for the actual data. This
results in incorrect behavior on the device side.

This change updates raydium_i2c_read and raydium_i2c_write to create
i2c_msg arrays separately and passes those arrays into raydium_i2c_xfer
which decides based on the address whether the bank switch command should
be sent. The bank switch header is still added by raydium_i2c_read and
raydium_i2c_write to ensure that all these operations are performed as part
of a single I2C transfer. It guarantees that no other transactions are
initiated to any other device on the same bus after the bank switch command
is sent.

Signed-off-by: Furquan Shaikh <furquan@google.com>
Link: https://lore.kernel.org/r/20201205005941.1427643-1-furquan@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/raydium_i2c_ts.c