• Hans de Goede's avatar
    pwm: lpss: Check PWM powerstate after resume on Cherry Trail devices · 6a425ecd
    Hans de Goede authored
    The _PS0 method for the integrated graphics on some Cherry Trail devices
    (observed on a HP Pavilion X2 10-p0XX) turns on the PWM chip (puts it in
    D0), causing an inconsistency between the state the pm-core thinks it is
    in (left runtime suspended as it was before the suspend/resume) and the
    state it actually is in.
    
    Interestingly enough this is done on a device where the pwm controller is
    not used for the backlight at all, since it uses an eDP panel. On devices
    where the PWM is used this is not a problem since we will resume it
    ourselves anyways.
    
    This inconsistency causes us to never suspend the pwm controller again,
    which causes the device to not be able to reach S0ix states when suspended.
    
    This commit adds a resume-complete handler, which when we think the device
    is still run-time suspended checks the actual power-state and if necessary
    updates the rpm-core's internal state.
    
    This fixes the Pavilion X2 10-p0XX not reaching S0ix states when suspended.
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    6a425ecd
pwm-lpss.h 1.07 KB