alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [alsa-devel] [PATCH 00/20] Enable BACO for power savings (v3)
@ 2019-11-15 16:50 Alex Deucher
  2019-11-15 16:50 ` [alsa-devel] [PATCH 01/20] drm/amdgpu: add asic callback for BACO support Alex Deucher
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: Alex Deucher @ 2019-11-15 16:50 UTC (permalink / raw)
  To: amd-gfx, alsa-devel, tiwai, lukas; +Cc: Alex Deucher

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

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2019-11-15 17:05 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-15 16:50 [alsa-devel] [PATCH 00/20] Enable BACO for power savings (v3) Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 01/20] drm/amdgpu: add asic callback for BACO support Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 02/20] drm/amdgpu: add supports_baco callback for soc15 asics. (v2) Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 03/20] drm/amdgpu: add supports_baco callback for SI asics Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 04/20] drm/amdgpu: add supports_baco callback for CIK asics Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 05/20] drm/amdgpu: add supports_baco callback for VI asics Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 06/20] drm/amdgpu: add supports_baco callback for NV asics Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 07/20] drm/amdgpu: add a amdgpu_device_supports_baco helper Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 08/20] drm/amdgpu: rename amdgpu_device_is_px to amdgpu_device_supports_boco (v2) Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 09/20] drm/amdgpu: add additional boco checks to runtime suspend/resume (v2) Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 10/20] drm/amdgpu: split swSMU baco_reset into enter and exit Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 11/20] drm/amdgpu: add helpers for baco entry " Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 12/20] drm/amdgpu: add baco support to runtime suspend/resume Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 13/20] drm/amdgpu: start to disentangle boco from runtime pm Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 14/20] drm/amdgpu: disentangle runtime pm and vga_switcheroo Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 15/20] drm/amdgpu: enable runtime pm on BACO capable boards if runpm=1 Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 16/20] drm/amdgpu/runpm: enable runpm on baco capable VI+ asics (v2) Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 17/20] ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 18/20] ALSA: hda/hdmi - Add new pci ids for AMD GPU display audio Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 19/20] ALSA: hda/hdmi - enable runtime pm for newer AMD " Alex Deucher
2019-11-15 16:50 ` [alsa-devel] [PATCH 20/20] ALSA: hda/hdmi - enable automatic runtime pm for AMD HDMI codecs by default Alex Deucher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).