intel-precise-touch
intel-precise-touch copied to clipboard
increase timeout in ipts_control_wait_flush
This fixes a rare issue on my Surface Pro 5 (Arch Linux). Happens about every tenth boot.
log: dmesg.txt
As far as i debugged this, the module switches the mode from event to poll (see ipts_eds1_switch_mode) thus calling ipts_control_restart. During shutdown the IPTS_CMD_QUIESCE_IO command sometimes times out in ipts_control_wait_flush returning EAGAIN (-11).
If the module tries to start again, the device is still "flushing" leading to the failure in ipts_control_get_device_info, which obviously makes the touchscreen not working.
Increasing the timeout in ipts_control_wait_flush to 10 sec fixes this on my device, but maybe you have a nicer solution?? Alternatively we could increase the msleep timeout in ipts_control_restart but i think this PR should be the better option.