[PATCH 00/20] Enable BACO for power savings (v3)
Alex Deucher
alexdeucher at gmail.com
Fri Nov 15 16:50:18 UTC 2019
This patch set enables BACO (Bus Active Chip Off) for
power savings on VI+ asics. Similar to PowerXpress
and Hybrid Graphics (PX/HG) laptops, we can disable GPUs
at runtime when they are not in use if they support
BACO. The runtime pm code in amdgpu was originally
developed for PX/HG laptops, so it was pretty entangled
with the vga_switcheroo and ACPI code. Since the GPU
contains an audio codec for HDMI/DP, there is some
interaction with the hda driver. I am by no means an
expert on alsa, so any advice on those patches is much
appreciated. I had to enable runtime pm on the hda
device to allow the GPU to enter runtime pm because
they are linked.
The full tree can be found here:
https://cgit.freedesktop.org/~agd5f/linux/log/?h=baco
TODO:
- Turn off runtime pm when KFD user queues are active
I've tested these pretty extensively on the asics I
have access to. All seems to work properly. HDMI
audio works fine with runtime pm both with and without
the GPU BACO stuff.
I'd like to land the the audio patches and the first 15 GPU
patches. I don't plan to enable this by default
(last patch in the GPU set) until the KFD changes are
in place to properly handle runtime pm, however it can
be enabled via module parameter (runpm=1).
v2:
- Split whitespace changes from baco callback addition
- Fix pci ref counting in px/hg handling in hda driver
- Handle CONFIG_ACPI properly
- Split adding new hda pci ids from adding runpm flag
v3:
- Don't enable BACO on Navi chips yet
Alex Deucher (20):
drm/amdgpu: add asic callback for BACO support
drm/amdgpu: add supports_baco callback for soc15 asics. (v2)
drm/amdgpu: add supports_baco callback for SI asics.
drm/amdgpu: add supports_baco callback for CIK asics.
drm/amdgpu: add supports_baco callback for VI asics.
drm/amdgpu: add supports_baco callback for NV asics.
drm/amdgpu: add a amdgpu_device_supports_baco helper
drm/amdgpu: rename amdgpu_device_is_px to amdgpu_device_supports_boco
(v2)
drm/amdgpu: add additional boco checks to runtime suspend/resume (v2)
drm/amdgpu: split swSMU baco_reset into enter and exit
drm/amdgpu: add helpers for baco entry and exit
drm/amdgpu: add baco support to runtime suspend/resume
drm/amdgpu: start to disentangle boco from runtime pm
drm/amdgpu: disentangle runtime pm and vga_switcheroo
drm/amdgpu: enable runtime pm on BACO capable boards if runpm=1
drm/amdgpu/runpm: enable runpm on baco capable VI+ asics (v2)
ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD
ALSA: hda/hdmi - Add new pci ids for AMD GPU display audio
ALSA: hda/hdmi - enable runtime pm for newer AMD display audio
ALSA: hda/hdmi - enable automatic runtime pm for AMD HDMI codecs by
default
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 106 ++++++++++++++++--
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 63 ++++++-----
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 21 +++-
drivers/gpu/drm/amd/amdgpu/cik.c | 18 +++
drivers/gpu/drm/amd/amdgpu/nv.c | 18 ++-
drivers/gpu/drm/amd/amdgpu/si.c | 6 +
drivers/gpu/drm/amd/amdgpu/soc15.c | 34 +++++-
drivers/gpu/drm/amd/amdgpu/vi.c | 22 ++++
drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 20 +++-
drivers/gpu/drm/amd/powerplay/arcturus_ppt.c | 3 +-
.../gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 6 +-
drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h | 3 +-
drivers/gpu/drm/amd/powerplay/navi10_ppt.c | 3 +-
drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 9 +-
drivers/gpu/drm/amd/powerplay/vega20_ppt.c | 3 +-
sound/pci/hda/hda_intel.c | 80 ++++++++++++-
sound/pci/hda/patch_hdmi.c | 1 +
18 files changed, 366 insertions(+), 61 deletions(-)
--
2.23.0
More information about the amd-gfx
mailing list