• Marek Vasut's avatar
    Input: ili210x - improve polled sample spacing · 8639e042
    Marek Vasut authored
    Currently the ili210x driver implements a threaded interrupt handler which
    starts upon edge on the interrupt line, and then polls the touch controller
    for samples. Every time a sample is obtained from the controller, the thread
    function checks whether further polling is required, and if so, waits fixed
    amount of time before polling for next sample.
    
    The delay between consecutive samples can thus vary greatly, because the
    I2C transfer required to retrieve the sample from the controller takes
    different amount of time on different platforms. Furthermore, different
    models of the touch controllers supported by this driver require different
    delays during retrieval of samples too.
    
    Instead of waiting fixed amount of time before polling for next sample,
    determine how much time passed since the beginning of sampling cycle and
    then wait only the remaining amount of time within the sampling cycle.
    This makes the driver deliver samples with equal spacing between them.
    Signed-off-by: default avatarMarek Vasut <marex@denx.de>
    Link: https://lore.kernel.org/r/20211108005216.480525-1-marex@denx.deSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    8639e042
ili210x.c 26.3 KB