Re: [PATCH] mfd: intel-lpss: Remove D3cold delay

From: Andy Shevchenko
Date: Thu Jul 25 2019 - 14:06:44 EST


On Fri, Jul 05, 2019 at 12:55:03PM +0800, Kai-Heng Feng wrote:
> Goodix touchpad may drop its first couple input events when
> i2c-designware-platdrv and intel-lpss it connects to took too long to
> runtime resume from runtime suspended state.
>
> This issue happens becuase the touchpad has a rather small buffer to
> store up to 13 input events, so if the host doesn't read those events in
> time (i.e. runtime resume takes too long), events are dropped from the
> touchpad's buffer.
>
> The bottleneck is D3cold delay it waits when transitioning from D3cold
> to D0, hence remove the delay to make the resume faster. I've tested
> some systems with intel-lpss and haven't seen any regression.
>

Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202683
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
> ---
> drivers/mfd/intel-lpss-pci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mfd/intel-lpss-pci.c b/drivers/mfd/intel-lpss-pci.c
> index aed2c0447966..3c271b14e7c6 100644
> --- a/drivers/mfd/intel-lpss-pci.c
> +++ b/drivers/mfd/intel-lpss-pci.c
> @@ -35,6 +35,8 @@ static int intel_lpss_pci_probe(struct pci_dev *pdev,
> info->mem = &pdev->resource[0];
> info->irq = pdev->irq;
>
> + pdev->d3cold_delay = 0;
> +
> /* Probably it is enough to set this for iDMA capable devices only */
> pci_set_master(pdev);
> pci_try_set_mwi(pdev);
> --
> 2.17.1
>

--
With Best Regards,
Andy Shevchenko