[PATCH] radeon and amdgpu drm-next-4.8

Alex Deucher alexdeucher at gmail.com
Thu Jul 7 20:14:06 UTC 2016

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(-)

More information about the dri-devel mailing list