Re: [PATCH v6 24/48] Input: atmel_mxt_ts - make bootloader interrupt driven

From: Wang, Jiada
Date: Wed Feb 12 2020 - 03:46:40 EST


Hello Bartosz

On 2020/01/28 2:41, Bartosz Szczepanek wrote:
Hi,

I've been testing this patchset on Chromebook equipped with Atmel touchscreen &
touchpad. In my setup, this particular patch seems to introduce a regression
on firmware update:

localhost /sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-ATML0001:00 # echo maxtouch-ts.fw > update_fw
bash: echo: write error: Remote I/O error

Kernel logs show that the reason is failed I2C transfer:

[ 111.632131] atmel_mxt_ts i2c-ATML0001:00: Found bootloader addr:27 ID:21 version:4
[ 111.637711] atmel_mxt_ts i2c-ATML0001:00: Unlocking bootloader
[ 129.155091] atmel_mxt_ts i2c-ATML0001:00: Sent 1356 frames, 212224 bytes
[ 129.263269] atmel_mxt_ts i2c-ATML0001:00: The firmware update succeeded
[ 129.263952] atmel_mxt_ts i2c-ATML0001:00: __mxt_read_chunk: i2c transfer failed (-121)
[ 129.265072] atmel_mxt_ts i2c-ATML0001:00: mxt_bootloader_read: i2c recv failed (-121)
[ 129.265588] atmel_mxt_ts i2c-ATML0001:00: Trying alternate bootloader address
[ 129.266375] atmel_mxt_ts i2c-ATML0001:00: mxt_bootloader_read: i2c recv failed (-121)

Surprisingly, only touchscreen device is affected. When I checked out to
119e1b7e8481 ("Input: atmel_mxt_ts - refactor code to enter bootloader into
separate func") all worked fine. In between these commits I got some mixed
results, including timeout while waiting for completion:

[ 190.006174] atmel_mxt_ts i2c-ATML0001:00: Found bootloader addr:27 ID:21 version:4
[ 190.317819] atmel_mxt_ts i2c-ATML0001:00: Wait for completion timed out.
[ 190.318267] atmel_mxt_ts i2c-ATML0001:00: Update wait error -110
[ 190.319310] atmel_mxt_ts i2c-ATML0001:00: Unlocking bootloader
[ 208.369825] atmel_mxt_ts i2c-ATML0001:00: Sent 1356 frames, 212224 bytes
[ 208.536942] atmel_mxt_ts i2c-ATML0001:00: The firmware update succeeded
[ 208.544835] atmel_mxt_ts i2c-ATML0001:00: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40
[ 208.547623] atmel_mxt_ts i2c-ATML0001:00: Touchscreen size X4095Y2729

Some more details - the touchscreen device reports itself as:

atmel_mxt_ts i2c-ATML0001:00: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40

Due to Chromebook limitations on kernel version, I'm running 4.19 kernel
with patches backported from master (so that atmel_mxt_ts is aligned between
master and 4.19). The platform is Samsung Chromebook Pro.

I have found the root cause for the regression,
will submit v7 patch-set shortly,
if you could validate for the update,
it will be very helpful

thanks,
Jiada
Best regards,
Bartosz