This fixes the firmware update function with bootloader v8, allows to recover from interrupted updates with v7/v8, and does some code cleanup. I believe that the code that allows to recover from a broken partition table is also necessary to make flashing a different partition table work at all, but I wasn't able to verify that, as I don't have any firmware images with different partition tables to test with. In any case, I'm pretty sure that it is working correctly now, as recovery from a mostly empty flash without partition table has been tested successfully. I have only tested the new code with bootloader v8, and I don't have the documentation / interfacing guide for v7, so it would be great if anyone could check that I didn't break updates for v7. Matthias Schiffer (9): Input: synaptics-rmi4 - fix firmware update operations with bootloader v8 Input: synaptics-rmi4 - introduce rmi_f34v7_check_command_status() helper Input: synaptics-rmi4 - fix command completion check for bootloader v7/v8 Input: synaptics-rmi4 - rewrite partition table unconditionally Input: synaptics-rmi4 - reset after writing partition table Input: synaptics-rmi4 - make rmi_f34v7_erase_all() use the "erase all" command Input: synaptics-rmi4 - remove unneeded struct register_offset Input: synaptics-rmi4 - simplify rmi_f34v7_start_reflash() Input: synaptics-rmi4 - drop useless gotos in rmi_f34v7_do_reflash() drivers/input/rmi4/rmi_f34.c | 16 +- drivers/input/rmi4/rmi_f34.h | 17 -- drivers/input/rmi4/rmi_f34v7.c | 349 +++++++-------------------------- 3 files changed, 81 insertions(+), 301 deletions(-) -- 2.25.1