On Thu, Nov 01, 2018 at 04:36:36PM +0200, Jarkko Nikula wrote: > Intel LPSS private register restoring in spi-pxa2xx.c: pxa2xx_spi_resume() > was added before there was no any other code restoring them. This was > changed after following commits for previous and current LPSS platforms: > > c78b0830667a ("ACPI / LPSS: custom power domain for LPSS") > 41a3da2b8e16 ("mfd: intel-lpss: Save register context on suspend") > > However there is one caveat: There is no LPSS private register context > save/restore for the Intel Lynxpoint in the Linux kernel code. > > I did some debugging on one Lynxpoint based device I have and on it the > LPSS register context is not lost over suspend/resume cycle (s2idle). > Which happens for instance on Intel Braswell. I'm speculating but I guess > either firmware does it or the LPSS is kept always on Lynxpoint. > > Given that we haven't needed to implement Lynxpoint LPSS I2C or UART > private register context save/restore over four years time I think we are > safe to remove this LPSS private register restoring during resume here. > Acked-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Indeed, Lynxpoint LPSS implementation has no GPDMA power related bugs, it's definitely different hardware and / or firmware design there. > Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> > --- > drivers/spi/spi-pxa2xx.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c > index 612cc49db28f..d46af116d630 100644 > --- a/drivers/spi/spi-pxa2xx.c > +++ b/drivers/spi/spi-pxa2xx.c > @@ -1811,10 +1811,6 @@ static int pxa2xx_spi_resume(struct device *dev) > return status; > } > > - /* Restore LPSS private register bits */ > - if (is_lpss_ssp(drv_data)) > - lpss_ssp_setup(drv_data); > - > /* Start the queue running */ > return spi_controller_resume(drv_data->master); > } > -- > 2.19.1 > -- With Best Regards, Andy Shevchenko