On Thu, May 28, 2020 at 11:41:21AM +0300, Andy Shevchenko wrote: > Thank you very much for testing, I will figure out what can be done > more there, but it's minor now. > For input and touchscreen I guess you may ask Dmitry (input subsystem > maintainer) and Benjamin (HID, but he might have an idea as well). This might not be an input issue, perhaps the spi-pxa2xx.c driver cannot cope with s2idle on this particular platform. E.g., pxa2xx_spi_suspend() zeroes the SSCR0 register. It seems this disables or resets the controller. But pxa2xx_spi_resume() isn't touching the register at all. Maybe the register contains crap when coming out of s2idle, so needs to be set to a sane value on resume? Tsuchiya Yuto says that reloading the SPI controller driver makes the touch driver work again, so I'd check what's done on ->remove() and ->probe() both in the touch driver as well as in the SPI controller driver that fixes the problem. The SSCR0 register is zeroed on ->remove() and re-initialized on ->probe(), so that register may indeed play a role. Since the SPI controller seems to be on a PCI device, I'd also check if that PCI device has trouble coming out of s2idle. If its BAR isn't accessible (MMIO reads return "all ones"), then the SPI controller and consequently the touch controller won't be accessible as well. Thanks, Lukas