diff options
author | Dave Airlie <airlied@redhat.com> | 2016-10-27 20:35:59 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-10-27 20:35:59 -0400 |
commit | a1873c62710b23e9afbd2faeed5f28649cbe4739 (patch) | |
tree | fd07fb6b1dc0c61a15ba563cad3ef2e46687f45c /drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | |
parent | 5481e27f6fd06b7cb902072e81d6b083db8155eb (diff) | |
parent | 3495a103579380288a130dc1862488cd8a4293f5 (diff) |
Merge branch 'drm-next-4.10' of git://people.freedesktop.org/~agd5f/linux into drm-next
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
* 'drm-next-4.10' of git://people.freedesktop.org/~agd5f/linux: (107 commits)
drm/amdgpu: turn on/off uvd clock when dpm enable/disable on CI
drm/amdgpu: disable dpm before turn off clock when vce idle.
drm/amdgpu: enable uvd bypass mode for CI/VI.
drm/amdgpu: just not load smc firmware if smu is already running
drm/amdgpu: when suspend, set boot state instand of disable dpm.
drm/amdgpu: use failed label to handle context init failure
drm/amdgpu: add amdgpu_ttm_bo_eviction_valuable callback
drm/ttm: make eviction decision a driver callback v2
drm/ttm: fix coding style in ttm_bo_driver.h
drm/radeon/pm: autoswitch power state when in balanced mode
drm/amd/powerplay: fix spelling mistake and add KERN_WARNING to printks
drm/amdgpu:new ids flag for preempt
drm/amdgpu: mark symbols static where possible
drm/amdgpu: change function declarations and add missing header dependencies
drm/amdgpu: s/amdgpuCrtc/amdgpu_crtc/ in pageflip code
drm/amdgpu/atom: remove a bunch of unused functions
drm/amdgpu: consolidate atom scratch reg handling for hangs
drm/amdgpu: use amdgpu_bo_[create|free]_kernel for wb
drm/amdgpu: add VCE VM session tracking
drm/amdgpu: improve parse_cs handling a bit
...
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c index 14f57d9915e3..6ca0333ca4c0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | |||
@@ -553,9 +553,10 @@ int amdgpu_parse_extended_power_table(struct amdgpu_device *adev) | |||
553 | entry = (ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record *) | 553 | entry = (ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record *) |
554 | ((u8 *)entry + sizeof(ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record)); | 554 | ((u8 *)entry + sizeof(ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record)); |
555 | } | 555 | } |
556 | for (i = 0; i < states->numEntries; i++) { | 556 | adev->pm.dpm.num_of_vce_states = |
557 | if (i >= AMDGPU_MAX_VCE_LEVELS) | 557 | states->numEntries > AMD_MAX_VCE_LEVELS ? |
558 | break; | 558 | AMD_MAX_VCE_LEVELS : states->numEntries; |
559 | for (i = 0; i < adev->pm.dpm.num_of_vce_states; i++) { | ||
559 | vce_clk = (VCEClockInfo *) | 560 | vce_clk = (VCEClockInfo *) |
560 | ((u8 *)&array->entries[0] + | 561 | ((u8 *)&array->entries[0] + |
561 | (state_entry->ucVCEClockInfoIndex * sizeof(VCEClockInfo))); | 562 | (state_entry->ucVCEClockInfoIndex * sizeof(VCEClockInfo))); |
@@ -955,3 +956,12 @@ u8 amdgpu_encode_pci_lane_width(u32 lanes) | |||
955 | 956 | ||
956 | return encoded_lanes[lanes]; | 957 | return encoded_lanes[lanes]; |
957 | } | 958 | } |
959 | |||
960 | struct amd_vce_state* | ||
961 | amdgpu_get_vce_clock_state(struct amdgpu_device *adev, unsigned idx) | ||
962 | { | ||
963 | if (idx < adev->pm.dpm.num_of_vce_states) | ||
964 | return &adev->pm.dpm.vce_states[idx]; | ||
965 | |||
966 | return NULL; | ||
967 | } | ||