lkml.org 
[lkml]   [2019]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 094/137] mfd: intel-lpss: Remove D3cold delay
    Date
    From: Kai-Heng Feng <kai.heng.feng@canonical.com>

    [ Upstream commit 76380a607ba0b28627c9b4b55cd47a079a59624b ]

    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.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202683
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 aed2c04479663..3c271b14e7c6c 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.20.1


    \
     
     \ /
      Last update: 2019-10-06 19:54    [W:5.249 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site