Hi Dave, First new feature pull for 4.10. Highlights: - Support for multple virtual displays in the virtual dce component - New VM mgr to support non-contiguous vram buffers - Support for UVD powergating on additional asics - Power management improvements - lots of code cleanup and bug fixes The following changes since commit 5481e27f6fd06b7cb902072e81d6b083db8155eb: Merge tag 'drm-intel-next-2016-10-24' of git://anongit.freedesktop.org/drm-intel into drm-next (2016-10-25 16:39:43 +1000) are available in the git repository at: git://people.freedesktop.org/~agd5f/linux drm-next-4.10 for you to fetch changes up to 3495a103579380288a130dc1862488cd8a4293f5: drm/amdgpu: turn on/off uvd clock when dpm enable/disable on CI (2016-10-27 15:18:58 -0400) ---------------------------------------------------------------- Alex Deucher (37): drm/amdgpu/dce6: add dce_v6_0_disable_dce drm/amdgpu/virtual_dce: add dce6 support drm/amdgpu/virtual_dce: drop empty function drm/amdgpu/virtual_dce: drop pageflip_irq funcs drm/amdgpu/virtual_dce: no need to an irq process callback drm/amdgpu/virtual_dce: clean up interrupt handling drm/amdgpu: simplify encoder and connector setup (v2) Revert "drm/amdgpu: Add virtual connector and encoder macros." drm/amdgpu: rename amdgpu_whether_enable_virtual_display drm/amdgpu/dce8: simplify hpd code drm/amdgpu/dce10: simplify hpd code drm/amdgpu/dce8: RMW hpd registers drm/amdgpu/dce11: simplify hpd code drm/amdgpu/dce6: simplify hpd code drm/amdgpu/dce6: RMW hpd registers drm/amdgpu/dce6: don't enable HPD Rx interrupts drm/amdgpu: add additional cached gca config variables drm/amdgpu/gfx8: cache rb config values drm/amdgpu/gfx8: use cached raster config values in csb setup drm/amdgpu: used cached gca values for vi_read_register (v2) drm/amdgpu: clarify why we evict vram twice on suspend drm/radeon: clarify why we evict vram twice on suspend drm/amdgpu: move dpm related definitions to amdgpu_dpm.h drm/amdgpu: add info ioctl query for vce clock info (v3) drm/amdgpu/dpm: add new callback to fetch vce clock state (v2) drm/amdgpu/dpm: add an implementation for get_vce_clock_state (v2) drm/amdgpu/powerplay: add an implementation for get_vce_clock_state (v3) drm/amdgpu: fill in vce clock info ioctl query (v2) drm/amdgpu: enable virtual dce on SI drm/amdgpu/virtual_dce: move define into source file drm/amdgpu/powerplay: fix spelling in amdgpu_powerplay.h drm/amdgpu: rework IP block registration (v2) drm/amdgpu: add an implement for check_power_state equal for KV drm/amdgpu: use amdgpu_bo_[create|free]_kernel for wb drm/amdgpu: consolidate atom scratch reg handling for hangs drm/amdgpu/atom: remove a bunch of unused functions drm/amdgpu: s/amdgpuCrtc/amdgpu_crtc/ in pageflip code Baoyou Xie (5): drm/radeon: add missing header dependencies drm/radeon: mark symbols static where possible drm/amd/powerplay: mark symbols static where possible drm/amdgpu: change function declarations and add missing header dependencies drm/amdgpu: mark symbols static where possible Christian König (26): drm/amdgpu: add AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS flag v3 drm/amdgpu: use explicit limit for VRAM_CONTIGUOUS drm/amdgpu: set at least the node size in the gtt manager drm/amdgpu: handle multiple MM nodes in the VMs v2 drm/amdgpu: enable amdgpu_move_blit to handle multiple MM nodes v2 drm/amdgpu: add VRAM manager v2 drm/amdgpu: update the shadow PD together with the real one v2 drm/amdgpu: remove adev pointer from struct amdgpu_bo v2 drm/amdgpu: move PT validation back into VM code v2 drm/amdgpu: stop using a bo list entry for the VM PTs drm/amdgpu: move sync handling into a separate header drm/amdgpu: move fence and ring defines into amdgpu_ring.h drm/amdgpu: move VM defines into amdgpu_vm.h drm/amdgpu: use amdgpu_vm_get_pd_bo in the GEM code drm/amdgpu: pad gfx and compute rings to 256 dw drm/amdgpu: remove ring type check for conditional execution drm/amdgpu: remove 128 NOP hack from vm_flush v2 drm/amdgpu: remove explicit NULL init for parse_cs drm/amdgpu: move IB and frame size directly into the engine description drm/amdgpu: move the ring type into the funcs structure (v2) drm/amdgpu: move align_mask and nop into ring funcs as well (v2) drm/amdgpu: improve parse_cs handling a bit drm/amdgpu: add VCE VM session tracking drm/ttm: fix coding style in ttm_bo_driver.h drm/ttm: make eviction decision a driver callback v2 drm/amdgpu: add amdgpu_ttm_bo_eviction_valuable callback Colin Ian King (1): drm/amd/powerplay: fix spelling mistake and add KERN_WARNING to printks Emily Deng (1): drm/amd/amdgpu: For virtual display, enable multi crtcs. (v3) Frank Min (5): drm/amdgpu:add one more fiji device id drm/amdgpu:keep bo pinned in prefered domain drm/amdgpu:fw bo should be in VRAM for SRIOV drm/amdgpu:add callback in cgs for sriov detect drm/amdgpu:wptr poll address of gfx8 is needed Huang Rui (1): drm/amdgpu: use failed label to handle context init failure Junwei Zhang (4): drm/amd/amdgpu: add info about vram and gtt total size drm/amd/amdgpu: add info about vram and gtt max allocation size drm/amd/amdgpu: unify memory query info interface drm/amd/amdgpu: bump version for memory query info Lucas Stach (1): drm/radeon/pm: autoswitch power state when in balanced mode Monk Liu (4): drm/amdgpu:use smc_index_11 for VI drm/amdgpu:add MEC_STORAGE ucode id for sriov drm/amdgpu:properly fix some JumpTable issues drm/amdgpu:new ids flag for preempt Rex Zhu (14): drm/amdgpu: use same vce state definition in dpm and powerplay drm/amdgpu: save number of vce states in dpm struct. drm/amdgpu: check min clock set by DAL before set ps. drm/amdgpu: add new callback to check power state info drm/amdgpu: add an implement for check_power_state equal for CI drm/amdgpu: add an implement for check_power_state equal for Cz. drm/amdgpu: add an implement for check_power_state equal for Si. drm/amdgpu: update current ps/requeset ps in adev with real ps. drm/amdgpu: refine set power state logic for dpm. drm/amdgpu: when suspend, set boot state instand of disable dpm. drm/amdgpu: just not load smc firmware if smu is already running drm/amdgpu: enable uvd bypass mode for CI/VI. drm/amdgpu: disable dpm before turn off clock when vce idle. drm/amdgpu: turn on/off uvd clock when dpm enable/disable on CI Tom St Denis (8): drm/amd/powerplay: Enable UVD powergating for SMU7 drm/amd/amdgpu: Enable UVD PG on Tonga drm/amd/amdgpu: Add wave reader to debugfs drm/amd/amdgpu: Fix debugfs wave reader drm/amd/amdgpu: Allow broadcast on debugfs read (v2) drm/amd/amdgpu: Make debugfs write compliment read drm/amd/amdgpu: re-factor debugfs wave reader drm/amd/amdgpu: Put in rest of wave fields drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/ObjectID.h | 7 - drivers/gpu/drm/amd/amdgpu/amdgpu.h | 852 +----------------- drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 17 +- drivers/gpu/drm/amd/amdgpu/amdgpu_acp.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 95 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 51 +- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 93 -- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 74 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 18 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 456 ++++++---- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 16 +- drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h | 443 +++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 41 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 62 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 71 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 82 +- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 11 +- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.h | 8 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 21 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 185 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h | 56 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 189 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 41 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 11 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 108 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 284 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 205 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 222 +++++ drivers/gpu/drm/amd/amdgpu/atombios_crtc.c | 1 + drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 122 ++- drivers/gpu/drm/amd/amdgpu/cik.c | 834 ++--------------- drivers/gpu/drm/amd/amdgpu/cik.h | 2 - drivers/gpu/drm/amd/amdgpu/cik_ih.c | 11 +- drivers/gpu/drm/amd/amdgpu/cik_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 49 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.h | 2 +- drivers/gpu/drm/amd/amdgpu/cikd.h | 8 + drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 28 +- drivers/gpu/drm/amd/amdgpu/cz_ih.c | 10 +- drivers/gpu/drm/amd/amdgpu/cz_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 135 +-- drivers/gpu/drm/amd/amdgpu/dce_v10_0.h | 4 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 135 +-- drivers/gpu/drm/amd/amdgpu/dce_v11_0.h | 3 +- drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 317 +++---- drivers/gpu/drm/amd/amdgpu/dce_v6_0.h | 5 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 293 +++--- drivers/gpu/drm/amd/amdgpu/dce_v8_0.h | 6 +- drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 432 ++++----- drivers/gpu/drm/amd/amdgpu/dce_virtual.h | 3 +- drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 77 +- drivers/gpu/drm/amd/amdgpu/gfx_v6_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 146 ++- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h | 5 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 209 +++-- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 3 +- drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/gmc_v6_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 20 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h | 3 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 29 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h | 4 +- drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 10 +- drivers/gpu/drm/amd/amdgpu/iceland_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 25 +- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 49 +- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.h | 2 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 58 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.h | 3 +- drivers/gpu/drm/amd/amdgpu/si.c | 162 +--- drivers/gpu/drm/amd/amdgpu/si.h | 2 - drivers/gpu/drm/amd/amdgpu/si_dma.c | 45 +- drivers/gpu/drm/amd/amdgpu/si_dma.h | 2 +- drivers/gpu/drm/amd/amdgpu/si_dpm.c | 65 +- drivers/gpu/drm/amd/amdgpu/si_ih.c | 10 +- drivers/gpu/drm/amd/amdgpu/si_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 10 +- drivers/gpu/drm/amd/amdgpu/tonga_ih.h | 4 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 63 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.h | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 56 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 90 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.h | 4 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 22 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 74 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.h | 4 +- drivers/gpu/drm/amd/amdgpu/vi.c | 988 +++++---------------- drivers/gpu/drm/amd/amdgpu/vi.h | 2 - drivers/gpu/drm/amd/include/amd_shared.h | 23 + .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_1_d.h | 2 + .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_2_d.h | 2 + .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_3_d.h | 2 + drivers/gpu/drm/amd/include/cgs_common.h | 6 + drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 21 +- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 12 +- drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c | 1 + .../amd/powerplay/hwmgr/process_pptables_v1_0.c | 10 +- .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 6 +- .../amd/powerplay/hwmgr/smu7_clockpowergating.c | 22 +- drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 59 +- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 1 + drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 16 +- drivers/gpu/drm/amd/powerplay/inc/power_state.h | 9 - drivers/gpu/drm/amd/powerplay/inc/pp_acpi.h | 9 +- drivers/gpu/drm/amd/powerplay/smumgr/fiji_smc.c | 6 +- drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 12 +- drivers/gpu/drm/amd/powerplay/smumgr/iceland_smc.c | 4 +- .../gpu/drm/amd/powerplay/smumgr/polaris10_smc.c | 4 +- .../drm/amd/powerplay/smumgr/polaris10_smumgr.c | 5 +- drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c | 7 + drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.h | 2 - drivers/gpu/drm/amd/powerplay/smumgr/tonga_smc.c | 4 +- drivers/gpu/drm/ast/ast_ttm.c | 1 + drivers/gpu/drm/bochs/bochs_mm.c | 1 + drivers/gpu/drm/cirrus/cirrus_ttm.c | 1 + drivers/gpu/drm/mgag200/mgag200_ttm.c | 1 + drivers/gpu/drm/nouveau/nouveau_bo.c | 1 + drivers/gpu/drm/qxl/qxl_ttm.c | 1 + drivers/gpu/drm/radeon/atombios_encoders.c | 1 + drivers/gpu/drm/radeon/evergreen_cs.c | 1 + drivers/gpu/drm/radeon/r600_cs.c | 1 + drivers/gpu/drm/radeon/radeon_atombios.c | 1 + drivers/gpu/drm/radeon/radeon_clocks.c | 1 + drivers/gpu/drm/radeon/radeon_device.c | 5 +- drivers/gpu/drm/radeon/radeon_dp_mst.c | 8 +- drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 1 + drivers/gpu/drm/radeon/radeon_pm.c | 6 +- drivers/gpu/drm/radeon/radeon_ttm.c | 1 + drivers/gpu/drm/radeon/si.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 35 +- drivers/gpu/drm/virtio/virtgpu_ttm.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 1 + include/drm/ttm/ttm_bo_api.h | 13 + include/drm/ttm/ttm_bo_driver.h | 42 +- include/uapi/drm/amdgpu_drm.h | 53 ++ 153 files changed, 4293 insertions(+), 4595 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c