diff options
author | Huang Rui <ray.huang@amd.com> | 2017-01-05 07:18:43 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-01-27 11:13:09 -0500 |
commit | 41c360f6a6ccd477481a3309608e9b3388bdd83d (patch) | |
tree | a7734bfb3fe2e8693bdb1e2b3e78647793249a23 /drivers/gpu | |
parent | 8bcab092f8635002fa8fca0e14deb9ff46bdeeb8 (diff) |
drm/amdgpu: add get clockgating_state method for sdma v3
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c index 034ace79ed49..4bb8bec13c47 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | |||
@@ -1533,6 +1533,22 @@ static int sdma_v3_0_set_powergating_state(void *handle, | |||
1533 | return 0; | 1533 | return 0; |
1534 | } | 1534 | } |
1535 | 1535 | ||
1536 | static void sdma_v3_0_get_clockgating_state(void *handle, u32 *flags) | ||
1537 | { | ||
1538 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | ||
1539 | int data; | ||
1540 | |||
1541 | /* AMD_CG_SUPPORT_SDMA_MGCG */ | ||
1542 | data = RREG32(mmSDMA0_CLK_CTRL + sdma_offsets[0]); | ||
1543 | if (!(data & SDMA0_CLK_CTRL__SOFT_OVERRIDE0_MASK)) | ||
1544 | *flags |= AMD_CG_SUPPORT_SDMA_MGCG; | ||
1545 | |||
1546 | /* AMD_CG_SUPPORT_SDMA_LS */ | ||
1547 | data = RREG32(mmSDMA0_POWER_CNTL + sdma_offsets[0]); | ||
1548 | if (data & SDMA0_POWER_CNTL__MEM_POWER_OVERRIDE_MASK) | ||
1549 | *flags |= AMD_CG_SUPPORT_SDMA_LS; | ||
1550 | } | ||
1551 | |||
1536 | static const struct amd_ip_funcs sdma_v3_0_ip_funcs = { | 1552 | static const struct amd_ip_funcs sdma_v3_0_ip_funcs = { |
1537 | .name = "sdma_v3_0", | 1553 | .name = "sdma_v3_0", |
1538 | .early_init = sdma_v3_0_early_init, | 1554 | .early_init = sdma_v3_0_early_init, |
@@ -1551,6 +1567,7 @@ static const struct amd_ip_funcs sdma_v3_0_ip_funcs = { | |||
1551 | .soft_reset = sdma_v3_0_soft_reset, | 1567 | .soft_reset = sdma_v3_0_soft_reset, |
1552 | .set_clockgating_state = sdma_v3_0_set_clockgating_state, | 1568 | .set_clockgating_state = sdma_v3_0_set_clockgating_state, |
1553 | .set_powergating_state = sdma_v3_0_set_powergating_state, | 1569 | .set_powergating_state = sdma_v3_0_set_powergating_state, |
1570 | .get_clockgating_state = sdma_v3_0_get_clockgating_state, | ||
1554 | }; | 1571 | }; |
1555 | 1572 | ||
1556 | static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = { | 1573 | static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = { |