lkml.org 
[lkml]   [2019]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 204/209] ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for hibernate
    Date
    From: Hans de Goede <hdegoede@redhat.com>

    [ Upstream commit c8afd03486c26accdda4846e5561aa3f8e862a9d ]

    Commit 48402cee6889 ("ACPI / LPSS: Resume BYT/CHT I2C controllers from
    resume_noirq") makes acpi_lpss_{suspend_late,resume_early}() bail early
    on BYT/CHT as resume_from_noirq is set.

    This means that on resume from hibernate dw_i2c_plat_resume() doesn't get
    called by the restore_early callback, acpi_lpss_resume_early(). Instead it
    should be called by the restore_noirq callback matching how things are done
    when resume_from_noirq is set and we are doing a regular resume.

    Change the restore_noirq callback to acpi_lpss_resume_noirq so that
    dw_i2c_plat_resume() gets properly called when resume_from_noirq is set
    and we are resuming from hibernate.

    Likewise also change the poweroff_noirq callback so that
    dw_i2c_plat_suspend gets called properly.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202139
    Fixes: 48402cee6889 ("ACPI / LPSS: Resume BYT/CHT I2C controllers from resume_noirq")
    Reported-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Cc: 4.20+ <stable@vger.kernel.org> # 4.20+
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/acpi/acpi_lpss.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
    index c47bc6c7f4b91..a63285f9cbca1 100644
    --- a/drivers/acpi/acpi_lpss.c
    +++ b/drivers/acpi/acpi_lpss.c
    @@ -1121,8 +1121,8 @@ static struct dev_pm_domain acpi_lpss_pm_domain = {
    .thaw_noirq = acpi_subsys_thaw_noirq,
    .poweroff = acpi_subsys_suspend,
    .poweroff_late = acpi_lpss_suspend_late,
    - .poweroff_noirq = acpi_subsys_suspend_noirq,
    - .restore_noirq = acpi_subsys_resume_noirq,
    + .poweroff_noirq = acpi_lpss_suspend_noirq,
    + .restore_noirq = acpi_lpss_resume_noirq,
    .restore_early = acpi_lpss_resume_early,
    #endif
    .runtime_suspend = acpi_lpss_runtime_suspend,
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-11-13 02:56    [W:4.698 / U:0.408 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site