• Hans de Goede's avatar
    pwm: lpss: Set DPM_FLAG_SMART_SUSPEND on Cherry Trail devices · e3aa45f2
    Hans de Goede authored
    As the comment above the code setting the DPM_FLAG_NO_DIRECT_COMPLETE
    flag explains:
    
        /*
         * On Cherry Trail devices the GFX0._PS0 AML checks if the controller
         * is on and if it is not on it turns it on and restores what it
         * believes is the correct state to the PWM controller.
         * Because of this we must disallow direct-complete, which keeps the
         * controller (runtime)suspended, on resume to avoid 2 issues:
         * 1. The controller getting turned on without the linux-pm code
         *    knowing about this. On devices where the controller is unused
         *    this causes it to stay on during the next suspend causing high
         *    battery drain (because S0i3 is not reached)
         * 2. The state restoring code unexpectedly messing with the controller
         */
    
    The pm-core must not skip resume to avoid the GFX0._PS0 AML code messing
    with the PWM controller behind our back. But leaving the controller
    runtime-suspended (skipping runtime-resume + normal-suspend) during
    suspend is fine. Set the DPM_FLAG_SMART_SUSPEND flag to allow this.
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    e3aa45f2
pwm-lpss-platform.c 3.21 KB