On Tue, Nov 10, 2020 at 09:50:41AM +0100, Oleksij Rempel wrote: > Convert multiple full duplex transfers in to a single transfer to reduce > CPU load. > > Current driver version support following filtering modes: > - ads7846_no_filter() - not filtered > - ads7846_debounce_filter() - driver specific debounce filter > - pdata->filter - platform specific debounce filter (do any platform > provides such filter?) > > Without filter this HW is not really usable, since the physic of > resistive touchscreen can provide some bounce effects. With driver internal > filter, we have constant amount of retries + debounce retries if some anomaly > was detected. > > High amount of tiny SPI transfers is the primer reason of high CPU load > and interrupt frequency. > > This patch create one SPI transfer with all fields and not optional retires. If > bounce anomaly was detected, we will make more transfer if needed. > > Without this patch, we will get about 10% CPU load on iMX6S on pen-down event. > For example by holding stylus on the screen. > > With this patch, depending in the amount of retries, the CPU load will > be 1% with "ti,debounce-rep = <3>". > > One buffer transfer allows us to use PIO FIFO or DMA engine, depending > on the platform. > > Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> Applied, thank you. -- Dmitry