• Lukas Wunner's avatar
    vga_switcheroo: Deduplicate power state tracking · 8948ca1a
    Lukas Wunner authored
    If DRM drivers use runtime PM, they currently notify vga_switcheroo
    whenever they ->runtime_suspend or ->runtime_resume to update
    vga_switcheroo's internal power state tracking.
    
    That's essentially a duplication of a functionality performed by the
    PM core as it already tracks the GPU's power state and vga_switcheroo
    can always query it.
    
    Introduce a new internal helper vga_switcheroo_pwr_state() which does
    just that if runtime PM is used, or falls back to vga_switcheroo's
    internal power state tracking if manual power control is used.
    Drop a redundant power state check in set_audio_state() while at it.
    
    This removes one of the two purposes of the notification mechanism
    implemented by vga_switcheroo_set_dynamic_switch().  The other one is
    power management of the audio device and we'll remove that next.
    
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: default avatarPeter Wu <peter@lekensteyn.nl>
    Tested-by: Kai Heng Feng <kai.heng.feng@canonical.com> # AMD PowerXpress
    Tested-by: Mike Lothian <mike@fireburn.co.uk>          # AMD PowerXpress
    Tested-by: Denis Lisov <dennis.lissov@gmail.com>       # Nvidia Optimus
    Tested-by: Peter Wu <peter@lekensteyn.nl>              # Nvidia Optimus
    Tested-by: Lukas Wunner <lukas@wunner.de>              # MacBook Pro
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/0aa49d735b988aa04524a8dc339582ace33f0f94.1520068884.git.lukas@wunner.de
    8948ca1a
vga_switcheroo.c 34.8 KB