linux/drivers/gpu/drm/amd/amdgpu
Lukas Wunner 07f4f97d7b vga_switcheroo: Use device link for HDA controller
Back in 2013, runtime PM for GPUs with integrated HDA controller was
introduced with commits 0d69704ae3 ("gpu/vga_switcheroo: add driver
control power feature. (v3)") and 246efa4a07 ("snd/hda: add runtime
suspend/resume on optimus support (v4)").

Briefly, the idea was that the HDA controller is forced on and off in
unison with the GPU.

The original code is mostly still in place even though it was never a
100% perfect solution:  E.g. on access to the HDA controller, the GPU
is powered up via vga_switcheroo_runtime_resume_hdmi_audio() but there
are no provisions to keep it resumed until access to the HDA controller
has ceased:  The GPU autosuspends after 5 seconds, rendering the HDA
controller inaccessible.

Additionally, a kludge is required when hda_intel.c probes:  It has to
check whether the GPU is powered down (check_hdmi_disabled()) and defer
probing if so.

However in the meantime (in v4.10) the driver core has gained a feature
called device links which promises to solve such issues in a clean way:
It allows us to declare a dependency from the HDA controller (consumer)
to the GPU (supplier).  The PM core then automagically ensures that the
GPU is runtime resumed as long as the HDA controller's ->probe hook is
executed and whenever the HDA controller is accessed.

By default, the HDA controller has a dependency on its parent, a PCIe
Root Port.  Adding a device link creates another dependency on its
sibling:

                            PCIe Root Port
                             ^          ^
                             |          |
                             |          |
                            HDA  ===>  GPU

The device link is not only used for runtime PM, it also guarantees that
on system sleep, the HDA controller suspends before the GPU and resumes
after the GPU, and on system shutdown the HDA controller's ->shutdown
hook is executed before the one of the GPU.  It is a complete solution.

Using this functionality is as simple as calling device_link_add(),
which results in a dmesg entry like this:

        pci 0000:01:00.1: Linked as a consumer to 0000:01:00.0

The code for the GPU-governed audio power management can thus be removed
(except where it's still needed for legacy manual power control).

The device link is added in a PCI quirk rather than in hda_intel.c.
It is therefore legal for the GPU to runtime suspend to D3cold even if
the HDA controller is not bound to a driver or if CONFIG_SND_HDA_INTEL
is not enabled, for accesses to the HDA controller will cause the GPU to
wake up regardless if they're occurring outside of hda_intel.c (think
config space readout via sysfs).

Contrary to the previous implementation, the HDA controller's power
state is now self-governed, rather than GPU-governed, whereas the GPU's
power state is no longer fully self-governed.  (The HDA controller needs
to runtime suspend before the GPU can.)

It is thus crucial that runtime PM is always activated on the HDA
controller even if CONFIG_SND_HDA_POWER_SAVE_DEFAULT is set to 0 (which
is the default), lest the GPU stays awake.  This is achieved by setting
the auto_runtime_pm flag on every codec and the AZX_DCAPS_PM_RUNTIME
flag on the HDA controller.

A side effect is that power consumption might be reduced if the GPU is
in use but the HDA controller is not, because the HDA controller is now
allowed to go to D3hot.  Before, it was forced to stay in D0 as long as
the GPU was in use.  (There is no reduction in power consumption on my
Nvidia GK107, but there might be on other chips.)

The code paths for legacy manual power control are adjusted such that
runtime PM is disabled during power off, thereby preventing the PM core
from resuming the HDA controller.

Note that the device link is not only added on vga_switcheroo capable
systems, but for *any* GPU with integrated HDA controller.  The idea is
that the HDA controller streams audio via connectors located on the GPU,
so the GPU needs to be on for the HDA controller to do anything useful.

This commit implicitly fixes an unbalanced runtime PM ref upon unbind of
hda_intel.c:  On ->probe, a runtime PM ref was previously released under
the condition "azx_has_pm_runtime(chip) || hda->use_vga_switcheroo", but
on ->remove a runtime PM ref was only acquired under the first of those
conditions.  Thus, binding and unbinding the driver twice on a
vga_switcheroo capable system caused the runtime PM refcount to drop
below zero.  The issue is resolved because the AZX_DCAPS_PM_RUNTIME flag
is now always set if use_vga_switcheroo is true.

For more information on device links please refer to:
https://www.kernel.org/doc/html/latest/driver-api/device_link.html
Documentation/driver-api/device_link.rst

Cc: Dave Airlie <airlied@redhat.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Peter 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: Lukas Wunner <lukas@wunner.de>
Link: https://patchwork.freedesktop.org/patch/msgid/51bd38360ff502a8c42b1ebf4405ee1d3f27118d.1520068884.git.lukas@wunner.de
2018-03-13 22:58:09 +01:00
..
amdgpu_acp.c drm/amdgpu: rename ip block helper functions 2017-12-18 10:59:40 -05:00
amdgpu_acp.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
amdgpu_acpi.c drm/amdgpu: Make amdgpu_atif_handler static 2017-08-15 14:46:08 -04:00
amdgpu_afmt.c gpu: drm: amd/radeon: Convert printk(KERN_<LEVEL> to pr_<level> 2017-03-29 23:53:24 -04:00
amdgpu_amdkfd_gfx_v7.c Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-09 10:09:13 +10:00
amdgpu_amdkfd_gfx_v8.c Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-09 10:09:13 +10:00
amdgpu_amdkfd.c drm/amdgpu: use %pap format string for phys_addr_t 2018-01-09 10:59:28 +10:00
amdgpu_amdkfd.h drm/amdgpu: Add support for reporting VRAM usage 2017-12-08 23:09:05 -05:00
amdgpu_atombios.c drm/amdgpu: move atom functions from amdgpu_device.c 2017-12-18 10:58:35 -05:00
amdgpu_atombios.h drm/amdgpu: move atom functions from amdgpu_device.c 2017-12-18 10:58:35 -05:00
amdgpu_atomfirmware.c drm/amdgpu:add fw-vram-usage for atomfirmware 2017-11-01 23:31:12 -04:00
amdgpu_atomfirmware.h drm/amdgpu: add get_clock_info for atomfirmware 2017-07-14 11:06:38 -04:00
amdgpu_atpx_handler.c drm/amdgpu: add atpx quirk handling (v2) 2018-01-10 15:44:38 -05:00
amdgpu_benchmark.c drm/amdgpu: Add a parameter to amdgpu_bo_create() 2017-08-15 14:45:58 -04:00
amdgpu_bios.c drm/amdgpu: rename amdgpu_need_post 2017-12-18 10:59:46 -05:00
amdgpu_bo_list.c drm/amdgpu: Fix preferred typo 2017-08-15 14:46:16 -04:00
amdgpu_cgs.c drm/amd/pp: Get and save CZ/ST smu version 2017-12-27 11:34:15 -05:00
amdgpu_connectors.c Merge airlied/drm-next into drm-misc-next 2017-11-21 14:17:56 +01:00
amdgpu_connectors.h
amdgpu_cs.c drm/amdgpu: update VM PDs after the PTs 2018-01-10 15:44:53 -05:00
amdgpu_ctx.c drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_debugfs.c drm/amdgpu: move debugfs functions to their own file 2017-12-18 10:59:01 -05:00
amdgpu_debugfs.h drm/amdgpu: move debugfs functions to their own file 2017-12-18 10:59:01 -05:00
amdgpu_device.c drm/amdgpu: Avoid leaking PM domain on driver unbind (v2) 2018-01-23 10:24:41 -05:00
amdgpu_display.c drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-06 12:48:33 -05:00
amdgpu_display.h drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-06 12:48:33 -05:00
amdgpu_dpm.c drm/amdgpu: rename amdgpu_dpm_funcs to amd_pm_funcs 2017-09-18 23:30:34 -04:00
amdgpu_dpm.h drm/amdgpu: add new pp function point notify_smu_memory_info 2017-12-04 16:33:18 -05:00
amdgpu_drv.c vga_switcheroo: Use device link for HDA controller 2018-03-13 22:58:09 +01:00
amdgpu_drv.h
amdgpu_encoders.c
amdgpu_fb.c drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-06 12:48:33 -05:00
amdgpu_fence.c drm/amdgpu: rename amdgpu_gpu_recover 2017-12-18 10:59:58 -05:00
amdgpu_gart.c drm/amdgpu: move dummy page functions to amdgpu_gart.c 2017-12-18 10:59:52 -05:00
amdgpu_gart.h drm/amdgpu:partially revert 1cfd8e237f0318e330190ac21d63c58ae6a1f66c 2017-12-06 12:48:15 -05:00
amdgpu_gds.h amdgpu: move ttm stuff to amdgpu_ttm.h 2016-08-19 12:30:58 -04:00
amdgpu_gem.c drm/amdgpu: update VM PDs after the PTs 2018-01-10 15:44:53 -05:00
amdgpu_gfx.c drm/amdgpu: use queue 0 for kiq ring 2018-01-29 23:14:30 -05:00
amdgpu_gfx.h drm/amdgpu/gfx: consolidate mqd buffer setup code 2017-06-07 18:20:59 -04:00
amdgpu_gtt_mgr.c drm/amdgpu: move GART recovery into GTT manager v2 2017-12-04 16:41:33 -05:00
amdgpu_i2c.c drm/amdgpu: Remove checking for atombios 2017-01-27 11:12:39 -05:00
amdgpu_i2c.h drm/amdgpu/i2c: add const where appropriate 2016-09-27 13:00:52 -04:00
amdgpu_ib.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_ids.c drm/amdgpu: drop client_id from VM 2017-12-27 11:34:09 -05:00
amdgpu_ids.h drm/amdgpu: separate VMID and PASID handling 2017-12-27 11:33:52 -05:00
amdgpu_ih.c drm/amdgpu: rename amdgpu_wb_* functions 2017-12-18 10:59:07 -05:00
amdgpu_ih.h drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_ioc32.c
amdgpu_irq.c drm/amdgpu: rename amdgpu_gpu_recover 2017-12-18 10:59:58 -05:00
amdgpu_irq.h drm/amdgpu: switch ih handling to two levels (v3) 2017-03-29 23:53:37 -04:00
amdgpu_job.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_kms.c drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-06 12:48:33 -05:00
amdgpu_mn.c Merge branch 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-next 2017-09-28 08:37:02 +10:00
amdgpu_mn.h drm/amdgpu: move MMU notifier related defines to amdgpu_mn.h 2017-09-12 14:29:37 -04:00
amdgpu_mode.h drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-06 12:48:33 -05:00
amdgpu_object.c drm/amdgpu: fix test for shadow page tables 2017-12-20 16:02:48 -05:00
amdgpu_object.h drm/amdgpu: nuke amdgpu_ttm_is_bound() v2 2017-12-04 16:41:32 -05:00
amdgpu_pll.c drm/amdgpu: add missing header dependencies 2016-09-14 15:10:37 -04:00
amdgpu_pll.h
amdgpu_pm.c drm/amdgpu: rename ip block helper functions 2017-12-18 10:59:40 -05:00
amdgpu_pm.h drm/amdgpu: Fix amdgpu_pm_acpi_event_handler warning 2017-08-15 14:46:06 -04:00
amdgpu_powerplay.c Revert "drm/amdgpu: fix rmmod KCQ disable failed error" 2017-11-28 17:44:13 -05:00
amdgpu_powerplay.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
amdgpu_prime.c drm/amdgpu: set f_mapping on exported DMA-bufs 2017-11-14 11:35:43 -05:00
amdgpu_psp.c drm/amdgpu/sriov:fix memory leak in psp_load_fw 2017-12-04 16:41:31 -05:00
amdgpu_psp.h drm/amdgpu: Add GPU reset functionality for Vega10 2017-09-26 15:14:06 -04:00
amdgpu_queue_mgr.c drm/amdgpu: Downgrade DRM_ERROR to DRM_DEBUG in amdgpu_queue_mgr_map 2017-12-06 12:48:06 -05:00
amdgpu_ring.c drm/amdgpu: rename amdgpu_wb_* functions 2017-12-18 10:59:07 -05:00
amdgpu_ring.h drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_sa.c drm/amdgpu: Add a parameter to amdgpu_bo_create() 2017-08-15 14:45:58 -04:00
amdgpu_sched.c drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_sched.h drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_sync.c drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_sync.h drm/amdgpu: Get rid of dep_sync as a seperate object. 2017-12-06 12:48:31 -05:00
amdgpu_test.c drm/amdgpu: Add a parameter to amdgpu_bo_create() 2017-08-15 14:45:58 -04:00
amdgpu_trace_points.c main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
amdgpu_trace.h drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_ttm.c drm/amdgpu: only enable swiotlb alloc when need v2 2018-02-13 13:33:32 -05:00
amdgpu_ttm.h drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_ucode.c drm/amdgpu:cleanup firmware.fw_buf alloc/free 2017-12-06 12:47:51 -05:00
amdgpu_ucode.h drm/amdgpu: add new member in gpu_info fw 2017-06-15 11:50:22 -04:00
amdgpu_uvd.c drm/amdgpu: restore uvd fence seq in uvd resume 2017-12-18 11:52:39 -05:00
amdgpu_uvd.h drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_vce.c drm/amdgpu: fix typo in amdgpu_vce_validate_bo 2018-01-16 15:35:27 -05:00
amdgpu_vce.h drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
amdgpu_vcn.c drm/admgpu: Reduce the usage of soc15ip.h 2017-12-08 11:35:19 -05:00
amdgpu_vcn.h drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
amdgpu_vf_error.c drm/amdgpu:fix vf_error_put 2017-10-20 13:28:44 -04:00
amdgpu_vf_error.h drm/amdgpu: fix vf error handling 2017-09-28 16:03:20 -04:00
amdgpu_virt.c drm/amdgpu:free CSA in unified place 2017-12-06 12:47:51 -05:00
amdgpu_virt.h drm/amdgpu:free CSA in unified place 2017-12-06 12:47:51 -05:00
amdgpu_vm.c drm/amdgpu: fix another potential cause of VM faults 2018-01-29 23:15:26 -05:00
amdgpu_vm.h drm/amdgpu: drop client_id from VM 2017-12-27 11:34:09 -05:00
amdgpu_vram_mgr.c drm/amdgpu:fix memleak in takedown 2017-11-16 13:35:48 -05:00
amdgpu.h drm/amdgpu: only enable swiotlb alloc when need v2 2018-02-13 13:33:32 -05:00
atom.c drm/amdgpu: Add debugfs file for VBIOS and version 2017-08-29 15:27:54 -04:00
atom.h drm/amdgpu: Add debugfs file for VBIOS and version 2017-08-29 15:27:54 -04:00
atombios_crtc.c drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating 2017-06-20 12:06:49 -04:00
atombios_crtc.h
atombios_dp.c drm/amdgpu: Don't retry 7 times in amdgpu_atombios_dp_get_dpcd() 2016-08-08 13:28:39 -04:00
atombios_dp.h
atombios_encoders.c drm/amdgpu: Remove checking for atombios 2017-01-27 11:12:39 -05:00
atombios_encoders.h
atombios_i2c.c drm/amd/amdgpu: Fix missing null check in atombios_i2c.c 2017-12-06 12:47:59 -05:00
atombios_i2c.h drm/amdgpu: fix power distribution issue for Polaris10 XT 2016-07-14 16:39:35 -04:00
ci_dpm.c drm/amdgpu: rename ip block helper functions 2017-12-18 10:59:40 -05:00
ci_dpm.h drm/amd/amdgpu: add power profile support for CI 2017-03-29 23:52:52 -04:00
ci_smc.c drm/amd: fix include notation and remove -Iinclude/drm flag 2017-05-16 17:17:41 +02:00
cik_dpm.h drm/amdgpu: unify the interface of amd_pm_funcs 2017-09-18 23:30:35 -04:00
cik_ih.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
cik_ih.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
cik_sdma.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
cik_sdma.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
cik.c drm/amdgpu: rename amdgpu_get_pcie_info 2017-12-18 11:00:08 -05:00
cik.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
cikd.h drm/amdgpu: Fix definition of KFD_CIK_SDMA_QUEUE_OFFSET 2017-11-27 18:29:47 -05:00
clearstate_ci.h
clearstate_defs.h
clearstate_gfx9.h drm/amdgpu: remove some old gc 9.x registers 2017-12-13 17:28:08 -05:00
clearstate_si.h drm/amdgpu: move misc si headers into amdgpu 2017-01-27 12:20:41 -05:00
clearstate_vi.h
cz_ih.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
cz_ih.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
dce_v6_0.c amdgpu/dce: Use actual number of CRTCs and HPDs in set_irq_funcs 2017-12-04 16:41:40 -05:00
dce_v6_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
dce_v8_0.c amdgpu/dce: Use actual number of CRTCs and HPDs in set_irq_funcs 2017-12-04 16:41:40 -05:00
dce_v8_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
dce_v10_0.c drm/amdgpu: rename amdgpu_program_register_sequence 2017-12-18 10:59:13 -05:00
dce_v10_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
dce_v11_0.c drm/amdgpu: rename amdgpu_program_register_sequence 2017-12-18 10:59:13 -05:00
dce_v11_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
dce_virtual.c drm/amdgpu:cancel timer of virtual DCE(v2) 2017-12-06 12:47:52 -05:00
dce_virtual.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
gfx_v6_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
gfx_v6_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
gfx_v7_0.c Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-09 10:09:13 +10:00
gfx_v7_0.h drm/amdgpu: unify MQD programming sequence for kfd and amdgpu v2 2017-05-31 16:48:48 -04:00
gfx_v8_0.c Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-09 10:09:13 +10:00
gfx_v8_0.h drm/amdgpu: unify MQD programming sequence for kfd and amdgpu v2 2017-05-31 16:48:48 -04:00
gfx_v9_0.c drm/amdgpu/gfx9: fix ngg enablement to clear gds reserved memory (v2) 2018-01-16 15:35:28 -05:00
gfx_v9_0.h drm/amdgpu: set gfx_v9_0_ip_funcs as static 2017-08-15 14:46:13 -04:00
gfxhub_v1_0.c drm/amdgpu: implement 2+1 PD support for Raven v3 2017-12-18 11:53:08 -05:00
gfxhub_v1_0.h drm/amdgpu: drop old ip definitions for gfxhub and mmhub 2017-08-15 14:46:00 -04:00
gmc_v6_0.c drm/amdgpu: only enable swiotlb alloc when need v2 2018-02-13 13:33:32 -05:00
gmc_v6_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
gmc_v7_0.c drm/amdgpu: only enable swiotlb alloc when need v2 2018-02-13 13:33:32 -05:00
gmc_v7_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
gmc_v8_0.c drm/amdgpu: only enable swiotlb alloc when need v2 2018-02-13 13:33:32 -05:00
gmc_v8_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
gmc_v9_0.c drm-misc-next for 4.17: 2018-02-16 09:29:27 +10:00
gmc_v9_0.h drm/amdgpu: Add GMC 9.0 support (v2) 2017-03-29 23:54:44 -04:00
iceland_ih.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
iceland_ih.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
iceland_sdma_pkt_open.h
Kconfig drm/amd/dc: Add dc display driver (v2) 2017-09-26 17:01:32 -04:00
kv_dpm.c drm/amdgpu: rename ip block helper functions 2017-12-18 10:59:40 -05:00
kv_dpm.h
kv_smc.c drm/amd: fix include notation and remove -Iinclude/drm flag 2017-05-16 17:17:41 +02:00
Makefile drm/amdgpu: separate VMID and PASID handling 2017-12-27 11:33:52 -05:00
mmhub_v1_0.c drm/amdgpu: implement 2+1 PD support for Raven v3 2017-12-18 11:53:08 -05:00
mmhub_v1_0.h drm/amdgpu: drop old ip definitions for gfxhub and mmhub 2017-08-15 14:46:00 -04:00
mmsch_v1_0.h drm/amdgpu/vce4: move mm table constructions functions into mmsch header file 2017-04-28 17:32:57 -04:00
mxgpu_ai.c drm/amdgpu: rename amdgpu_gpu_recover 2017-12-18 10:59:58 -05:00
mxgpu_ai.h drm/amdgpu/sriov:increate mailbox polling timeout 2017-09-26 15:14:12 -04:00
mxgpu_vi.c drm/amdgpu: rename amdgpu_gpu_recover 2017-12-18 10:59:58 -05:00
mxgpu_vi.h drm/amdgpu/sriov:increate mailbox polling timeout 2017-09-26 15:14:12 -04:00
nbio_v6_1.c drm/amdgpu: drop the bios scratch reg callbacks from nbio 2017-12-13 17:28:07 -05:00
nbio_v6_1.h drm/amdgpu: convert nbio to use callbacks (v2) 2017-12-13 17:28:07 -05:00
nbio_v7_0.c drm/amdgpu: drop the bios scratch reg callbacks from nbio 2017-12-13 17:28:07 -05:00
nbio_v7_0.h drm/amdgpu: convert nbio to use callbacks (v2) 2017-12-13 17:28:07 -05:00
ObjectID.h Revert "drm/amdgpu: Add virtual connector and encoder macros." 2016-10-25 14:38:06 -04:00
ppsmc.h drm/amdgpu: add new definitions into ppsmc.h for iceland 2016-07-15 12:33:31 -04:00
psp_gfx_if.h drm/amdgpu: add PSP driver for vega10 (v2) 2017-03-29 23:54:48 -04:00
psp_v3_1.c drm/admgpu: Reduce the usage of soc15ip.h 2017-12-08 11:35:19 -05:00
psp_v3_1.h drm/amdgpu: Add GPU reset functionality for Vega10 2017-09-26 15:14:06 -04:00
psp_v10_0.c drm/admgpu: Reduce the usage of soc15ip.h 2017-12-08 11:35:19 -05:00
psp_v10_0.h drm/amdgpu: Add GPU reset functionality for Vega10 2017-09-26 15:14:06 -04:00
r600_dpm.h drm/amdgpu: add SI DPM support (v4) 2016-08-31 15:21:09 -04:00
sdma_v2_4.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
sdma_v2_4.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
sdma_v3_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
sdma_v3_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
sdma_v4_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
sdma_v4_0.h drm/amdgpu: add SDMA v4.0 implementation (v2) 2017-03-29 23:54:45 -04:00
si_dma.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
si_dma.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
si_dpm.c drm/amdgpu: Add dpm quirk for Jet PRO (v2) 2018-01-10 15:44:27 -05:00
si_dpm.h drm/amdgpu: unify the interface of amd_pm_funcs 2017-09-18 23:30:35 -04:00
si_enums.h drm/amdgpu: update HAINAN_GB_ADDR_CONFIG_GOLDEN 2017-02-08 17:25:02 -05:00
si_ih.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
si_ih.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
si_smc.c drm/amd: fix include notation and remove -Iinclude/drm flag 2017-05-16 17:17:41 +02:00
si.c drm/amdgpu: rename ip block helper functions 2017-12-18 10:59:40 -05:00
si.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
sid.h drm/amdgpu: move misc si headers into amdgpu 2017-01-27 12:20:41 -05:00
sislands_smc.h drm/amdgpu/si/dpm: fix phase shedding setup 2016-09-28 16:13:17 -04:00
soc15_common.h drm/amdgpu: convert nbio to use callbacks (v2) 2017-12-13 17:28:07 -05:00
soc15.c drm/amdgpu: disable MMHUB power gating on raven 2018-01-19 17:32:07 -05:00
soc15.h drm/amdgpu: Avoid use SOC15_REG_OFFSET in static const array 2017-12-08 11:18:51 -05:00
soc15d.h drm/amdgpu: fix vega10 graphic hang issue in S3 test 2017-08-18 12:02:11 -04:00
tonga_ih.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
tonga_ih.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
tonga_sdma_pkt_open.h
uvd_v4_2.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
uvd_v4_2.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
uvd_v5_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
uvd_v5_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
uvd_v6_0.c drm/amd/amdgpu: Add Polaris version check 2018-01-23 01:43:15 -05:00
uvd_v6_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
uvd_v7_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
uvd_v7_0.h drm/amdgpu: add initial uvd 7.0 support for vega10 2017-03-29 23:54:47 -04:00
vce_v2_0.c drm/amdgpu: various cleanups for uvd/vce. 2017-04-04 13:40:33 -04:00
vce_v2_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
vce_v3_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
vce_v3_0.h drm/amdgpu: rework IP block registration (v2) 2016-10-25 14:38:45 -04:00
vce_v4_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
vce_v4_0.h drm/amdgpu: add initial vce 4.0 support for vega10 2017-03-29 23:54:47 -04:00
vcn_v1_0.c drm/amdgpu: rename vm_id to vmid 2017-12-27 11:34:02 -05:00
vcn_v1_0.h drm/amdgpu: add vcn ip block and type 2017-05-24 17:41:27 -04:00
vega10_ih.c drm/amdgpu: remove WARN_ON when VM isn't found v2 2018-01-29 23:17:20 -05:00
vega10_ih.h drm/amdgpu: add vega10 interrupt handler 2017-03-29 23:54:46 -04:00
vega10_reg_init.c drm/amdgpu: Dynamic initialize IP base offset 2017-12-08 11:16:51 -05:00
vega10_sdma_pkt_open.h drm/amdgpu: add SDMA 4.0 packet header 2017-03-29 23:54:30 -04:00
vi_dpm.h drm/amdgpu: cleanup useless extern functions 2017-01-27 11:12:43 -05:00
vi.c drm/amdgpu: re-enable CGCG on CZ and disable on ST 2018-02-06 00:05:22 -05:00
vi.h drm/amdgpu/gfx8: move CE&DE meta data structure to vi_structs.h 2017-03-29 23:53:31 -04:00
vid.h drm/amdgpu: Implement amdgpu SDMA functions for VI 2017-11-01 19:22:00 -04:00