Hi Dave, This is the main 4.8 pull for radeon and amdgpu. Sorry for the delay, I meant to send this out last week, but I was moving house. Lots of changes here: - ATPX improvements for better dGPU power control on PX systems - New power features for CZ/BR/ST - Pipelined BO moves and evictions in TTM - GPU scheduler improvements - GPU reset improvements - Overclocking on dGPUs with amdgpu - Lots of code cleanup - Bug fixes The following changes since commit 5dd0775e502b26b44e5bcb5f504a977a565f2f3e: Merge tag 'asoc-hdmi-codec-pdata' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into drm-next (2016-07-05 09:57:23 +1000) are available in the git repository at: git://people.freedesktop.org/~agd5f/linux drm-next-4.8 for you to fetch changes up to b1814a1def0564a2a1d3be7fa5bf7243ff899a28: drm/amd/powerplay: don't add invalid voltage. (2016-07-07 15:06:24 -0400) ---------------------------------------------------------------- Alex Deucher (49): drm/amdgpu: load different smc firmware on some CI variants drm/radeon: load different smc firmware on some SI variants drm/radeon: load different smc firmware on some CI variants drm/amdgpu/gfx7: expand cp jt size to handle GDS as well drm/radeon/gfx7: expand cp jt size to handle GDS as well drm/amdgpu/gfx8: add state setup for CZ/ST GFX power gating drm/amdgpu/gfx8: rename some pg functions drm/amdgpu: add new GFX powergating types drm/amdgpu/gfx8: add powergating support for CZ/ST drm/amdgpu/gfx8: clean up polaris11 PG enable drm/amdgpu: disable power control on hybrid laptops drm/amdgpu: clean up atpx power control handling drm/amdgpu: add a delay after ATPX dGPU power off drm/amdgpu/atpx: add a query for ATPX dGPU power control drm/amdgpu: use PCI_D3hot for PX systems without dGPU power control drm/amdgpu/atpx: drop forcing of dGPU power control drm/radeon: disable power control on hybrid laptops drm/radeon: clean up atpx power control handling drm/radeon: add a delay after ATPX dGPU power off drm/radeon/atpx: add a query for ATPX dGPU power control drm/radeon: use PCI_D3hot for PX systems without dGPU power control drm/radeon/atpx: drop forcing of dGPU power control drm/amdgpu/atpx: track whether if this is a hybrid graphics platform drm/amdgpu/atpx: hybrid platforms use d3cold drm/amdgpu: drop explicit pci D3/D0 setting for ATPX power control drm/radeon/atpx: track whether if this is a hybrid graphics platform drm/radeon/atpx: hybrid platforms use d3cold drm/radeon: drop explicit pci D3/D0 setting for ATPX power control drm/amdgpu: work around lack of upstream ACPI support for D3cold drm/radeon: work around lack of upstream ACPI support for D3cold drm/amdgpu: properly clean up runtime pm drm/amdgpu/gfx8: fix CP jump table size drm/amdgpu/gfx7: fix CP jump table size drm/radeon/cik: fix CP jump table size drm/amdgpu: disable compute pipeline sync workaround when using fixed fw drm/amdgpu/gmc: make some functions static drm/amdgpu: drop wait_for_mc_idle asic callback drm/amdgpu: move get_gpu_clock_counter into the gfx struct drm/amdgpu: move select_se_sh into the gfx struct drm/amdgpu/gfx7: switch to using the existing rlc callbacks drm/amdgpu/gfx7: make gfx_v7_0_rlc_stop static drm/amdgpu/dce11: update async flip update time drm/amdgpu/powerplay/cz: add missing call to powergate VCE drm/amdgpu: add IP helpers for wait_for_idle and is_idle drm/amdgpu: add missing breaks drm/amdgpu: skip invalid ip blocks in ip helpers drm/amdgpu/gmc8: remove duplicate wait_for_idle functions drm/amdgpu/gmc7: remove duplicate wait_for_idle functions drm/amdgpu: remove more of the ring backup code Alex Xie (3): drm/amdgpu: Change some variable names to make code easier understood drm/amdgpu: Add comment to describe the purpose of one difficult if statement drm/amdgpu: Initialize the variables in a straight-forward way Alexandre Demers (2): drm/amd/powerplay: fix trivial typo and tidy comment drm/amd/powerplay: fix typos in comment in polaris' hwmgr Arindam Nath (2): drm/amd/amdgpu: make sure VCE is disabled by default drm/amd/powerplay: make sure VCE is disabled by default Arnd Bergmann (1): amdgpu: use NULL instead of 0 for pointer Christian König (44): drm/amdgpu: fix coding style in the scheduler v2 drm/amdgpu: remove begin_job/finish_job drm/amdgpu: remove duplicated timeout callback drm/amdgpu: fix coding style in amdgpu_job_free drm/amdgpu: remove use_shed hack in job cleanup drm/amdgpu: properly abstract scheduler timeout handling drm/amdgpu: move locking into the functions who need it drm/amdgpu: fix and cleanup job destruction drm/amdgpu: document amdgpu_sync_get_fence drm/amdgpu: generalize the scheduler fence drm/amdgpu: remove amdgpu_sync_wait drm/amdgpu: add optional ring to amdgpu_sync_is_idle drm/amdgpu: prefer VMIDs idle on the current ring drm/amdgpu: reuse VMIDs assigned to a VM only if there is also a free one drm/amdgpu: use a fence array for VMID management drm/amdgpu: remove now unnecessary checks drm/amdgpu: stop trying to schedule() with a spin held drm/ttm: cleanup ttm_tt_(unbind|destroy) drm/ttm: remove NULL checks when calling ttm_tt_destroy drm/ttm: remove dummy bo_move implementations drm/ttm: add wait for idle in all drivers bo_move functions drm/ttm: wait for BO idle in ttm_bo_move_memcpy drm/ttm: drop wait for idle in ttm_bo_move_buffer drm/ttm: drop waiting for idle in ttm_bo_evict. drm/ttm: wait for BO idle after the move in ttm_bo_swapout drm/amdgpu: sync to buffer moves before VM updates drm/amdgpu: remove pre move wait drm/ttm: remove no_gpu_wait param from ttm_bo_move_accel_cleanup drm/ttm: remove TTM_BO_PRIV_FLAG_MOVING drm/ttm: simplify ttm_bo_wait drm/ttm: add the infrastructure for pipelined evictions drm/amdgpu: save the PD addr before scheduling the job drm/amdgpu: pipeline evictions as well drm/amdgpu: add eviction counter drm/amdgpu: validate VM PTs only on eviction drm/amdgpu: implement HDP functions for UVD v2 drm/amdgpu: don't update page tables for VM emulation drm/ttm: wait for eviction in ttm_bo_force_list_clean drm/ttm: fix stupid parameter inversion in the pipeline code drm/amdgpu: stop disabling irqs when it isn't neccessary drm/amdgpu: fix user fence handling once more drm/amdgpu: shorten amdgpu_job_free_resources drm/amdgpu: earlier free SA resources drm/amdgpu: remove fence parameter from amd_sched_job_init Chunming Zhou (22): drm/amdgpu: add gpu reset to timeout handler drm/amdgpu: add return value for pci config reset drm/amdgpu: enable BUS master after pci reset drm/amdgpu: block scheduler when gpu reset drm/amdgpu: evict vram when gpu reset drm/amdgpu: add amdgpu_irq_gpu_reset_resume_helper drm/amdgpu: must update page table after gpu reset drm/amdgpu: save/restore bios scratch when gpu reset drm/amdgpu: must update page table after gpu reset drm/amdgpu: stop/resume fb access when gpu reset V3 drm/amdgpu: put old hw fence of job if gpu reset drm/amdgpu: remove evict vram drm/amd: add parent for sched fence drm/amd: add amd_sched_hw_job_reset drm/amdgpu: block ttm first before parking scheduler drm/amdgpu: force completion for gpu reset drm/amdgpu: add amd_sched_job_recovery drm/amdgpu: add a bool to specify if needing vm flush V2 drm/amdgpu: abstract amdgpu_vm_is_gpu_reset drm/amdgpu: recovery hw jobs when gpu reset V3 drm/amdgpu: ib test first after gpu reset drm/amdgpu: clean up ring_backup code, no need more David Mao (2): drm/amd/amdgpu : Refine tracepoints to track more information drm/amd/amdgpu : adding new tracepoints to track memory information. Edmondo Tommasina (1): drm/radeon: allow PACKET3_PFP_SYNC_ME on evergreen Eric Huang (24): drm/amdgpu: add powerplay sclk OD support through sysfs (v2) drm/amd/powerplay: add sclk OD support on Fiji drm/amd/powerplay: add sclk OD support on Tonga drm/amd/powerplay: add sclk OD support on Polaris10 drm/amdgpu: add the new common pm code to select the clock levels drm/amdgpu: add the new common pm code to support sclk OD drm/amdgpu: add the CI code to enable clock level selection drm/amdgpu: add the CI code to enable sclk OD(OverDrive) drm/amdgpu: add the common code to support mclk OD drm/amdgpu: add mclk OD(overdrive) support for CI drm/amd/powerplay: add mclk OD(overdrive) support for Tonga drm/amd/powerplay: add mclk OD(overdrive) support for Fiji drm/amd/powerplay: add mclk OD(overdrive) support for Polaris10 drm/amd/powerplay: set UVD clocks bypass mode for Polaris10 drm/amd/powerplay: keep soft_pp_table pointer value for re-uploading drm/amd/powerplay: add event task of disable dynamic state management drm/amd/powerplay: add function disable_dpm_tasks for Fiji drm/amd/powerplay: add disable dpm tasks for Tonga drm/amd/powerplay: add disable dpm tasks for Polaris10 drm/amd/powerplay: change backend allocation to backend init drm/amd/powerplay: add uploading pptable and resetting powerplay support drm/amd/powerplay: remove useless pp_table codes for Tonga/Fiji/Polaris10 drm/amd/powerplay: remove useless soft pptable in Asic related backend drm/amdgpu: some improvement in parsing inputs Frank Binns (1): drm/amd/amdgpu: Set DRIVER_MODESET feature flag at build time Huang Rui (4): drm/amdgpu: add powercontainment module parameter drm/amdgpu: factor out the AMDGPU_INFO_FW_VERSION case branch into amdgpu_firmware_info drm/amdgpu: introduce a firmware debugfs to dump all current firmware versions drm/amdgpu: change pcie_gen_cap magic code to macro Junwei Zhang (1): drm/amdgpu/dce8: fix flash with white screen on monitor Ken Wang (1): drm/amdgpu: remove gfx8 registers that vary between asics Lyude (2): drm/radeon: Poll for both connect/disconnect on analog connectors drm/amdgpu: Poll for both connect/disconnect on analog connectors Michel Dänzer (1): drm/amdgpu: Unpin BO if we can't get fences in amdgpu_crtc_page_flip Monk Liu (2): drm/amdgpu: clear RB at ring init drm/amdgpu: fix ring debugfs bug Nicolai Hähnle (5): drm/amdgpu: add amdgpu.cg_mask and amdgpu.pg_mask parameters drm/amdgpu: remove cgs_acpi_method_argument member method_length drm/amdgpu: add disable_cu parameter drm/amdgpu/gfx7: set USER_SHADER_ARRAY_CONFIG based on disable_cu parameter drm/amdgpu/gfx8: set USER_SHADER_ARRAY_CONFIG based on disable_cu parameter Rex Zhu (8): drm/amd/powerplay: functions's return state was reversed drm/amd/powerplay: change condition judgment as function's return value changed. drm/amdgpu: get number of shade engine by cgs interface. drm/amd/powerplay: add mvdd dpm support. drm/amd/powerplay: add shared definitions for di/dt feature. drm/amd/powerplay: add definitions related to di/dt feature for fiji and polaris. drm/amdgpu: add read/write function for GC CAC programming drm/amd/powerplay: don't add invalid voltage. Tom St Denis (15): drm/amdgpu/gfx8: Enable GFX PG on CZ drm/amdgpu/gfx8: Add serdes wait for idle in CGCG en/disable drm/amd/amdgpu: Convert ring debugfs entries to binary drm/amd/amdgpu: ring debugfs is read in increments of 4 bytes drm/amdgpu/trace: Add tracepoints to MMIO read/writes drm/amdgpu/gfx8: Switch Stoney to share CZ's RLC functions drm/amdgpu/gfx8: Enable CG on Stoney drm/amdgpu/gfx8: Enable PG on Stoney drm/amdgpu/gfx8: Tidy up various PG helpers drm/amdgpu/gfx80: Add QUICK_PG bit to GFX header and use it. drm/amdgpu/uvd6: De-numberify startup drm/amd/gfx: add instance field to select_se_sh (v3) drm/amd/amdgpu: Add gca config debug entry (v4) drm/amd/amdgpu: Add bank selection for MMIO debugfs (v3) drm/amd/powerplay: Unify family defines yanyang1 (1): drm/amdgpu: print smc fw info in CGS. drivers/gpu/drm/amd/amdgpu/amdgpu.h | 96 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 66 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 15 +- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 7 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 41 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 270 ++++++++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 8 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 28 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 44 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 12 + drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 72 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 245 +++++++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 172 +++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 221 ++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 90 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 99 ++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 15 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 329 ++++++++++------ drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 210 +++++++++- drivers/gpu/drm/amd/amdgpu/ci_dpm.h | 1 + drivers/gpu/drm/amd/amdgpu/cik.c | 23 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 11 - drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 1 + drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 5 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 67 +--- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 103 ++--- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h | 7 - drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 433 ++++++++++++++++----- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 1 - drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 41 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h | 7 - drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 46 +-- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h | 7 - drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 13 - drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 12 - drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 30 ++ drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 29 ++ drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 71 +++- drivers/gpu/drm/amd/amdgpu/vi.c | 71 +++- drivers/gpu/drm/amd/include/amd_pcie.h | 14 + drivers/gpu/drm/amd/include/amd_shared.h | 11 +- .../gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h | 3 + .../drm/amd/include/asic_reg/gca/gfx_8_0_sh_mask.h | 108 +++-- drivers/gpu/drm/amd/include/cgs_common.h | 3 +- drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 151 ++++++- .../gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 3 +- .../drm/amd/powerplay/hwmgr/cz_clockpowergating.c | 3 +- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 17 +- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 374 +++++++++++++++--- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 3 - .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c | 74 +++- .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.h | 15 + .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 26 +- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 8 +- .../powerplay/hwmgr/polaris10_clockpowergating.c | 6 + .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c | 378 ++++++++++++++---- .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h | 4 - .../drm/amd/powerplay/hwmgr/polaris10_powertune.c | 59 +++ .../drm/amd/powerplay/hwmgr/polaris10_powertune.h | 15 + drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 4 +- .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 20 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 167 +++++--- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 3 - .../amd/powerplay/hwmgr/tonga_processpptables.c | 3 - drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 7 + .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 1 + drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 10 +- drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 5 +- drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h | 4 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 184 ++++++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 60 +-- drivers/gpu/drm/amd/scheduler/sched_fence.c | 81 ++-- drivers/gpu/drm/ast/ast_ttm.c | 13 +- drivers/gpu/drm/bochs/bochs_mm.c | 11 +- drivers/gpu/drm/cirrus/cirrus_ttm.c | 13 +- drivers/gpu/drm/mgag200/mgag200_ttm.c | 13 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 7 +- drivers/gpu/drm/qxl/qxl_ttm.c | 10 +- drivers/gpu/drm/radeon/cik.c | 17 +- drivers/gpu/drm/radeon/evergreen_cs.c | 7 + drivers/gpu/drm/radeon/evergreend.h | 1 + drivers/gpu/drm/radeon/radeon_atpx_handler.c | 65 +++- drivers/gpu/drm/radeon/radeon_connectors.c | 15 +- drivers/gpu/drm/radeon/radeon_drv.c | 16 +- drivers/gpu/drm/radeon/radeon_ttm.c | 10 +- drivers/gpu/drm/radeon/si.c | 45 ++- drivers/gpu/drm/ttm/ttm_bo.c | 164 ++++---- drivers/gpu/drm/ttm/ttm_bo_util.c | 112 +++++- drivers/gpu/drm/ttm/ttm_bo_vm.c | 19 +- drivers/gpu/drm/ttm/ttm_tt.c | 19 +- drivers/gpu/drm/virtio/virtgpu_ttm.c | 6 + include/drm/ttm/ttm_bo_api.h | 4 +- include/drm/ttm/ttm_bo_driver.h | 44 ++- include/uapi/drm/amdgpu_drm.h | 32 +- 103 files changed, 3924 insertions(+), 1596 deletions(-)