Input: rmi_f54 - read from FIFO in 32 byte blocks
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Fri, 17 Jan 2020 04:12:53 +0000 (20:12 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 17 Jan 2020 04:22:56 +0000 (20:22 -0800)
commitc15f8ba6dc1f6a8330cd89374a21388a5d91f92c
tree47292bb45af53916936c40e77c6372f80adc88c2
parent8ff771f8c8d55d95f102cf88a970e541a8bd6bcf
Input: rmi_f54 - read from FIFO in 32 byte blocks

The F54 Report Data is apparently read through a fifo and for
the smbus protocol that means that between reading a block of 32
bytes the rmiaddr shouldn't be incremented. However, changing
that causes other non-fifo reads to fail and so that change was
reverted.

This patch changes just the F54 function and it now reads 32 bytes
at a time from the fifo, using the F54_FIFO_OFFSET to update the
start address that is used when reading from the fifo.

This has only been tested with smbus, not with i2c or spi. But I
suspect that the same is needed there since I think similar
problems will occur there when reading more than 256 bytes.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Tested-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reported-by: Timo Kaufmann <timokau@zoho.com>
Link: https://lore.kernel.org/r/20200115124819.3191024-3-hverkuil-cisco@xs4all.nl
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/rmi4/rmi_f54.c