• Hans de Goede's avatar
    ACPI / LPSS: Ignore acpi_device_fix_up_power() return value · e772949a
    Hans de Goede authored
    [ Upstream commit 1a2fa02f ]
    
    Ignore acpi_device_fix_up_power() return value. If we return an error
    we end up with acpi_default_enumeration() still creating a platform-
    device for the device and we end up with the device still being used
    but without the special LPSS related handling which is not useful.
    
    Specicifically ignoring the error fixes the touchscreen no longer
    working after a suspend/resume on a Prowise PT301 tablet.
    
    This tablet has a broken _PS0 method on the touchscreen's I2C controller,
    causing acpi_device_fix_up_power() to fail, causing fallback to standard
    platform-dev handling and specifically causing acpi_lpss_save/restore_ctx
    to not run.
    
    The I2C controllers _PS0 method does actually turn on the device, but then
    does some more nonsense which fails when run during early boot trying to
    use I2C opregion handling on another not-yet registered I2C controller.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    e772949a
acpi_lpss.c 32.3 KB