Hi Dave, First drm-next pull for radeon and amdgpu for 4.9. Highlights: - powerplay support for iceland asics - improved GPU reset (both full asic and per block) - UVD and VCE powergating for CZ and ST - VCE clockgating for CZ and ST - Support for pre-initialized (e.g., zeroed) vram buffers - ttm cleanups - virtual display support - core and radeon/amdgpu support for page_flip_target - lots of bug fixes and clean ups The following changes since commit 5c6c201ccbaf9d3901f829441d457293f7ca8ef4: drm: Paper over locking inversion after registration rework (2016-08-08 16:08:25 +1000) are available in the git repository at: git://people.freedesktop.org/~agd5f/linux drm-next-4.9 for you to fetch changes up to 7b4d3e297e8a7d3b82e68231ff077e891c370349: drm/amdgpu: use memcpy_toio for VCE firmware upload (2016-08-24 16:25:07 -0400) ---------------------------------------------------------------- Alex Deucher (14): drm/amdgpu/powerplay: enable powerplay by default on TOPAZ drm/amdgpu/gmc7: add missing mullins case drm/amdgpu/ci: add mullins to default case for smc ucode drm/amdgpu/gfx8: remove stale function declaration drm/amdgpu: move all Kconfig options to amdgpu/Kconfig drm/amdgpu: move vsync_timer_enabled setup to dce virtual early_init drm/amdgpu/virtual_dce: add case for topaz for disable_dce drm/amdgpu: add virtual dce support for iceland drm/amdgpu: fix IB alignment for UVD drm/amdgpu: fix VCE ib alignment value drm/amdgpu: add support for UVD_NO_OP register drm/radeon: add support for UVD_NO_OP register drm/amdgpu: switch UVD code to use UVD_NO_OP for padding drm/radeon: switch UVD code to use UVD_NO_OP for padding Alexandre Demers (3): Fixing copy-paste errors and removing unneeded newlines drm/amdgpu: Use correct mask in dce_v8_0_afmt_setmode() and fix comment typos. drm/amdgpu: Fix indentation in dce_v8_0_audio_write_sad_regs() Christian König (25): drm/amdgpu: add new helper for in kernel allocations drm/amdgpu: pin shared GWS, GDS and OA resources drm/amdgpu: add more warning to amdgpu_bo_offset drm/amdgpu: user amdgpu_bo_create_kernel for the UVD BO drm/amdgpu: use amdgpu_bo_create_kernel in amdgpu_ih.c drm/amdgpu: use amdgpu_bo_create_kernel in amdgpu_ring.c drm/amdgpu: remove unused VM defines drm/amdgpu: cleanup VM fragment defines drm/amdgpu: rename amdgpu_vm_update_params drm/amdgpu: add adev to the pte_update_params drm/amdgpu: flip frag_ptes and update_pts drm/amdgpu: use more than 64KB fragment size if possible drm/amdgpu: write PTEs directly into the IB. drm/amdgpu: remove pages_addr handling from the VM code drm/amdgpu: cleanup the write_pte implementations drm/amdgpu: remove AMDGPU_VM_NO_FLUSH define drm/amdgpu: stop splitting PTE commands into smaller ones drm/amdgpu: add function pointer to the pte_update_params drm/amdgpu: fix coding style in amdgpu_object.c drm/amdgpu: fix lru size grouping v2 drm/amdgpu: cleanup amdgpu_ttm_placement_init drm/amdgpu: stop adding dummy entry in amdgpu_ttm_placement_init drm/amdgpu: cleanup amdgpu_vm_bo_update params drm/amdgpu: use memcpy_to/fromio for UVD fw upload drm/amdgpu: use memcpy_toio for VCE firmware upload Chunming Zhou (26): drm/amdgpu: add check_soft_reset ip func drm/amdgpu: implement gfx8 check_soft_reset drm/amdgpu: add pre_soft_reset ip func drm/amdgpu: add gfx8 pre soft reset drm/amdgpu: add amdgpu soft reset drm/amdgpu: implement gfx8 post_soft_reset drm/amdgpu: implement sdma3 check/pre/post_soft_reset drm/amdgpu: implement gmc8 check/pre/post_soft_reset drm/amdgpu: implement vi ih check/pre/post_soft_reset drm/amdgpu: implement UVD6 check/pre/post_soft_reset drm/amdgpu: implement vce3 check/post_soft_reset drm/amdgpu: add dce10 check_soft_reset drm/amdgpu: irq resume should be immediately after gpu resume drm/amdgpu: fix harvest config checking in vce3 check_soft_reset drm/amdgpu: enable VCE soft reset drm/amdgpu: add shadow bo support V2 drm/amdgpu: validate shadow as well when validating bo drm/amdgpu: allocate shadow for pd/pt bo V2 drm/amdgpu: add shadow flag V2 drm/amdgpu: add need backup function V2 drm/amdgpu: add direct submision option for copy_buffer drm/amdgpu: sync bo and shadow V3 drm/amdgpu: update pd shadow while updating pd V2 drm/amdgpu: update pt shadow while updating pt V2 drm/amdgpu: link all shadow bo V2 drm/amdgpu: recover vram bo from shadow after gpu reset V2 Emily Deng (16): drm/amdgpu: Add virtual connector and encoder macros. drm/amdgpu: Initialize dce_virtual_ip_funcs drm/amdgpu: Initialize dce_virtual_display_funcs. drm/amdgpu: Initialize crtc, pageflip irq funcs (v2) drm/amdgpu: Initialize dce_virtual_crtc_helper_funcs drm/amdgpu: Initialize dce_virtual_crtc_funcs. (v2) drm/amdgpu: To define whether the GPU has DCE engine. drm/amdgpu: Disable VGA render and crtc when init GMC. drm/amdgpu: Use software timer to generate vsync interrupt. drm/amdgpu: Call pageflip irq funtion when receiced vsync interrupt. drm/amdgpu: Add DRM_MODE_CONNECTOR_VIRTUAL connector in amdgpu_connector_add. drm/amdgpu: Define virtual display ip blocks. drm/amdgpu: Define one variable for virtual display. drm/amdgpu: Set ip_blocks according variable amdgpu_virtual_display. drm/amdgpu: Change the virtual_display type from int to char*. drm/amdgpu: Hardcode virtual DCE vblank / scanout position return values Eric Huang (1): drm/amd/amdgpu: change pptable output format from ASCII to binary Flora Cui (6): drm/amdgpu: implement amdgpu_fill_buffer() drm/amdgpu: expose AMDGPU_GEM_CREATE_VRAM_CLEARED to user space amdgpu: move ttm stuff to amdgpu_ttm.h drm/amdgpu: check domain sanity in amdgpu_bo_pin_restricted() drm/amdgpu: update gart_pin_size only if the bo is pined to GTT drm/amdgpu: use domain's gpu_offset for start addr Heinrich Schuchardt (6): drm/amdgpu/gmc7: remove dead code (v2) drm/amdgpu/gmc8: remove dead code (v2) drm/amd/powerplay: avoid NULL pointer dereference drm/amd/powerplay: avoid NULL dereference, cz_hwmgr.c drm/radeon/cik: remove dead code (v2) drm/radeon: remove dead code, si_mc_load_microcode (v2) Huang Rui (11): drm/amd/powerplay: add SMU71 header files for iceland (v2) drm/amd/powerplay: add iceland SMU mananger drm/amd/powerplay: add iceland_dyn_defaults header drm/amd/powerplay: add iceland HW manager drm/amdgpu: enable iceland powerplay manually drm/amd/powerplay: fix the incorrect checking condition drm/amd/powerplay: add deep sleep initialization drm/amd/powerplay: set the platform capability flags for iceland drm/amd/powerplay: add enabling voltage controller back drm/amd/powerplay: add DPM running checking back drm/amd/powerplay: enable powerplay as default on CZ/ST Ken Wang (2): drm/ttm: Add interface to export kernel_zone max memory size in ttm drm/amdgpu: use the kernel zone memory size as the max remote memory in amdgpu Leo Liu (1): drm/amdgpu: remove the check for sessions being closed Lyude (4): drm/radeon: Don't print error on aux transaction timeouts drm/radeon: Don't retry 7 times in radeon_dp_dpcd() drm/amdgpu: Don't print error on aux transaction timeouts drm/amdgpu: Don't retry 7 times in amdgpu_atombios_dp_get_dpcd() Marek Olšák (2): drm/amdgpu: print more accurate error messages on IB submission failure drm/amdgpu: add AMDGPU_INFO_NUM_EVICTIONS Michel Dänzer (9): drm/ttm: Wait for a BO to become idle before unbinding it from GTT drm/ttm: Remove unused parameter evict from ttm_bo_move_ttm drm/ttm: Remove unused parameter evict from ttm_bo_move_memcpy drm: Add page_flip_target CRTC hook v2 drm/amdgpu: Provide page_flip_target hook drm/amdgpu: Set MASTER_UPDATE_MODE to 0 again drm/radeon: Provide page_flip_target hook drm/radeon: Set MASTER_UPDATE_MODE to 0 again drm: Add DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags v2 Rex Zhu (13): drm/amd/powerplay: fix typos of volt/millivolt symbols in comment. drm/amdgpu: add module parameters to ctrl powerplay feature drm/amdgpu: use modules parameter to ctrl deep sleep feature in dpm drm/amd/powerplay: delete useless code in hwmgr. drm/amd/powerplay: pass sub_device_id and sub_vendor_id to powerplay. drm/amdgpu: AMD SW workaround for certain partner boards drm/amd/powrplay: workaround Memory EDC Error for certain partner boards. drm/amd/powrplay: delete code no longer in use on Polaris. drm/amdgpu: remove RB1_BUSY bit checking drm/amd/powerplay: delete code set/unset deep_sleep/power_containment. drm/amd/powerplay: change structure variable name. drm/amd/powerplay: enable power containment features for tonga. drm/amd/powerplay: delete useless code in iceland_hwmgr.c. Tom St Denis (29): drm/amd/amdgpu: add mutex locking for both DPM and PP based powergating for UVD/VCE drm/amd/amdgpu: add pm lock to debugfs mmio entry drm/amd/amdgpu: don't set clockgating in uvd_v6_0_start() drm/amd/amdgpu: don't track state in UVD clockgating drm/amd/amdgpu: enable PG_EN bit in powergating UVD drm/amd/amdgpu: Add error messages to UVD PG in DPM drm/amd/amdgpu: Enable carrizo GFX PG drm/amd/amdgpu: Enable carrizo UVD PG drm/amd/amdgpu: Enable carrizo VCE PG drm/amd/amdgpu: Enable stoney GFX PG drm/amd/amdgpu: Enable stoney UVD PG drm/amd/amdgpu: Enable stoney VCE PG drm/amd/amdgpu: fix indentation in vce3 CG drm/amd/amdgpu: Fix VCE CG order and resume defaults drm/amd/amdgpu: Don't set VCE CG in startup drm/amd/amdgpu: Enable VCE MGCG for Carrizo drm/amd/amdgpu: Enable VCE MGCG for Stoney drm/amd/amdgpu: Partially revert change to UVD v3 CG drm/amd/amdgpu: Correct whitespace in GFX v8 drm/amd/amdgpu: Simplify various gfx v8 functions drm/amd/amdgpu: Simplify bitfield operations in gfx v8 drm/amd/amdgpu: Cleanup register access in VCE v3 drm/amd/amdgpu: add mutex in check_soft for VCE v3 drm/amd/amdgpu: VCE v2 register cleanup drm/amd/amdgpu: UVD v6 register cleanup drm/amd/amdgpu: Add more config data for debugfs drm/amd/amdgpu: Add more debugfs config data drm/amd/powerplay: Tidy up cz_hwmgr.c drm/amd/amdgpu: Print ring name in amdgpu_ib_schedule() Wolfram Sang (2): gpu: drm: amd: amdgpu: amdgpu_i2c: don't print error when adding adapter fails gpu: drm: radeon: radeon_i2c: don't print error when adding adapter fails jimqu (1): drm/amd/amdgpu: S3 resumed failed after 4-5 times loop drivers/gpu/drm/Kconfig | 3 - drivers/gpu/drm/amd/amdgpu/Kconfig | 2 + drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/ObjectID.h | 7 + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 94 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 27 + drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 91 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 95 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 266 +- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 101 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h | 8 - drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 27 +- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 7 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 423 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 32 +- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 65 +- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 10 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 27 +- drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 112 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 80 + drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 58 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 454 +- drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 22 +- drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 6 +- drivers/gpu/drm/amd/amdgpu/cik.c | 417 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 113 +- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 47 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 68 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.h | 2 + drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 59 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.h | 2 + drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 85 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.h | 2 + drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 806 +++ drivers/gpu/drm/amd/amdgpu/dce_virtual.h | 31 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 21 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 628 +-- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 2 - drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 18 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 76 +- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 113 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 195 +- drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 49 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 121 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 160 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 293 +- drivers/gpu/drm/amd/amdgpu/vi.c | 438 +- drivers/gpu/drm/amd/include/amd_shared.h | 6 + .../gpu/drm/amd/include/asic_reg/uvd/uvd_4_2_d.h | 1 + .../gpu/drm/amd/include/asic_reg/uvd/uvd_5_0_d.h | 1 + .../gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h | 1 + drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 5 +- drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 6 +- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 58 +- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 3 - .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c | 7 +- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 64 +- .../amd/powerplay/hwmgr/iceland_clockpowergating.c | 119 + .../amd/powerplay/hwmgr/iceland_clockpowergating.h | 38 + .../drm/amd/powerplay/hwmgr/iceland_dyn_defaults.h | 41 + .../gpu/drm/amd/powerplay/hwmgr/iceland_hwmgr.c | 5692 ++++++++++++++++++++ .../gpu/drm/amd/powerplay/hwmgr/iceland_hwmgr.h | 424 ++ .../drm/amd/powerplay/hwmgr/iceland_powertune.c | 490 ++ .../drm/amd/powerplay/hwmgr/iceland_powertune.h | 74 + .../gpu/drm/amd/powerplay/hwmgr/iceland_thermal.c | 595 ++ .../gpu/drm/amd/powerplay/hwmgr/iceland_thermal.h | 58 + .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c | 32 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 24 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 11 +- .../gpu/drm/amd/powerplay/hwmgr/tonga_powertune.c | 498 ++ .../gpu/drm/amd/powerplay/hwmgr/tonga_powertune.h | 22 +- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 4 +- drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 112 +- drivers/gpu/drm/amd/powerplay/inc/smu71.h | 510 ++ drivers/gpu/drm/amd/powerplay/inc/smu71_discrete.h | 631 +++ drivers/gpu/drm/amd/powerplay/smumgr/Makefile | 3 +- .../gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 713 +++ .../gpu/drm/amd/powerplay/smumgr/iceland_smumgr.h | 64 + .../drm/amd/powerplay/smumgr/polaris10_smumgr.c | 4 +- drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 4 + drivers/gpu/drm/drm_crtc.c | 66 +- drivers/gpu/drm/drm_ioctl.c | 8 + drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +- drivers/gpu/drm/qxl/qxl_ttm.c | 4 +- drivers/gpu/drm/radeon/atombios_crtc.c | 8 +- drivers/gpu/drm/radeon/atombios_dp.c | 21 +- drivers/gpu/drm/radeon/cik.c | 12 +- drivers/gpu/drm/radeon/cikd.h | 1 + drivers/gpu/drm/radeon/evergreen.c | 5 +- drivers/gpu/drm/radeon/evergreend.h | 1 + drivers/gpu/drm/radeon/ni.c | 2 +- drivers/gpu/drm/radeon/nid.h | 1 + drivers/gpu/drm/radeon/r600.c | 2 +- drivers/gpu/drm/radeon/r600d.h | 1 + drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_display.c | 89 +- drivers/gpu/drm/radeon/radeon_dp_auxch.c | 1 - drivers/gpu/drm/radeon/radeon_drv.c | 3 +- drivers/gpu/drm/radeon/radeon_i2c.c | 8 +- drivers/gpu/drm/radeon/radeon_ttm.c | 7 +- drivers/gpu/drm/radeon/radeon_uvd.c | 7 +- drivers/gpu/drm/radeon/rv515.c | 3 +- drivers/gpu/drm/radeon/rv770.c | 2 +- drivers/gpu/drm/radeon/rv770d.h | 1 + drivers/gpu/drm/radeon/si.c | 12 +- drivers/gpu/drm/radeon/sid.h | 1 + drivers/gpu/drm/ttm/ttm_bo.c | 5 +- drivers/gpu/drm/ttm/ttm_bo_util.c | 15 +- drivers/gpu/drm/ttm/ttm_memory.c | 6 + include/drm/drm_crtc.h | 18 + include/drm/ttm/ttm_bo_driver.h | 8 +- include/drm/ttm/ttm_memory.h | 1 + include/uapi/drm/amdgpu_drm.h | 6 + include/uapi/drm/drm.h | 1 + include/uapi/drm/drm_mode.h | 39 +- 127 files changed, 14481 insertions(+), 2026 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h create mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.c create mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_clockpowergating.c create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_clockpowergating.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_dyn_defaults.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_hwmgr.c create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_hwmgr.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_powertune.c create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_powertune.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_thermal.c create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/iceland_thermal.h create mode 100644 drivers/gpu/drm/amd/powerplay/hwmgr/tonga_powertune.c create mode 100644 drivers/gpu/drm/amd/powerplay/inc/smu71.h create mode 100644 drivers/gpu/drm/amd/powerplay/inc/smu71_discrete.h create mode 100644 drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c create mode 100644 drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.h