[PATCH] ACPI / LPSS: Ensure LPIOEP is always set on resume

From: William Lieurance
Date: Sat Sep 01 2018 - 14:00:10 EST


For some number of systems with lpss_quirks enabled, on boot the system
goes through an acpi_lpss_resume() without a corresponding
acpi_lpss_suspend() having been called. In that case, it requires the
IOSF write to LPSS_IOSF_UNIT_LPIOEP / LPSS_IOSF_GPIODEF0 in order to
continue booting successfully.

Signed-off-by: William Lieurance <william.lieurance@xxxxxxxxxxxx>
---
drivers/acpi/acpi_lpss.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 9706613eecf9..c7790ba943d4 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -939,14 +939,14 @@ static void lpss_iosf_exit_d3_state(void)

mutex_lock(&lpss_iosf_mutex);

+ iosf_mbi_modify(LPSS_IOSF_UNIT_LPIOEP, MBI_CR_WRITE,
+ LPSS_IOSF_GPIODEF0, value1, mask1);
+
if (!lpss_iosf_d3_entered)
goto exit;

lpss_iosf_d3_entered = false;

- iosf_mbi_modify(LPSS_IOSF_UNIT_LPIOEP, MBI_CR_WRITE,
- LPSS_IOSF_GPIODEF0, value1, mask1);
-
iosf_mbi_modify(LPSS_IOSF_UNIT_LPIO2, MBI_CFG_WRITE,
LPSS_IOSF_PMCSR, value2, mask2);

--
2.17.1