diff options
author | Likun Gao <Likun.Gao@amd.com> | 2018-07-10 08:30:42 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-09-14 10:35:28 -0400 |
commit | 84ad2e1bd6e6fededa7ed389d0a171d0822abaac (patch) | |
tree | 079a356697021177b9b8330674e94d2a2f74c9a3 /drivers/gpu/drm/amd/amdgpu | |
parent | 501a580ae6a4087ed7c8e4fdcf3de7a5ca56bdd1 (diff) |
drm/amdgpu: add picasso support for sdma_v4
Add sdma support to picasso
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index ee0213edca8e..ca8a26178e2f 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | |||
@@ -48,6 +48,7 @@ MODULE_FIRMWARE("amdgpu/vega12_sdma1.bin"); | |||
48 | MODULE_FIRMWARE("amdgpu/vega20_sdma.bin"); | 48 | MODULE_FIRMWARE("amdgpu/vega20_sdma.bin"); |
49 | MODULE_FIRMWARE("amdgpu/vega20_sdma1.bin"); | 49 | MODULE_FIRMWARE("amdgpu/vega20_sdma1.bin"); |
50 | MODULE_FIRMWARE("amdgpu/raven_sdma.bin"); | 50 | MODULE_FIRMWARE("amdgpu/raven_sdma.bin"); |
51 | MODULE_FIRMWARE("amdgpu/picasso_sdma.bin"); | ||
51 | 52 | ||
52 | #define SDMA0_POWER_CNTL__ON_OFF_CONDITION_HOLD_TIME_MASK 0x000000F8L | 53 | #define SDMA0_POWER_CNTL__ON_OFF_CONDITION_HOLD_TIME_MASK 0x000000F8L |
53 | #define SDMA0_POWER_CNTL__ON_OFF_STATUS_DURATION_TIME_MASK 0xFC000000L | 54 | #define SDMA0_POWER_CNTL__ON_OFF_STATUS_DURATION_TIME_MASK 0xFC000000L |
@@ -221,6 +222,7 @@ static void sdma_v4_0_init_golden_registers(struct amdgpu_device *adev) | |||
221 | ARRAY_SIZE(golden_settings_sdma1_4_2)); | 222 | ARRAY_SIZE(golden_settings_sdma1_4_2)); |
222 | break; | 223 | break; |
223 | case CHIP_RAVEN: | 224 | case CHIP_RAVEN: |
225 | case CHIP_PICASSO: | ||
224 | soc15_program_register_sequence(adev, | 226 | soc15_program_register_sequence(adev, |
225 | golden_settings_sdma_4_1, | 227 | golden_settings_sdma_4_1, |
226 | ARRAY_SIZE(golden_settings_sdma_4_1)); | 228 | ARRAY_SIZE(golden_settings_sdma_4_1)); |
@@ -269,6 +271,9 @@ static int sdma_v4_0_init_microcode(struct amdgpu_device *adev) | |||
269 | case CHIP_RAVEN: | 271 | case CHIP_RAVEN: |
270 | chip_name = "raven"; | 272 | chip_name = "raven"; |
271 | break; | 273 | break; |
274 | case CHIP_PICASSO: | ||
275 | chip_name = "picasso"; | ||
276 | break; | ||
272 | default: | 277 | default: |
273 | BUG(); | 278 | BUG(); |
274 | } | 279 | } |
@@ -849,6 +854,7 @@ static void sdma_v4_0_init_pg(struct amdgpu_device *adev) | |||
849 | 854 | ||
850 | switch (adev->asic_type) { | 855 | switch (adev->asic_type) { |
851 | case CHIP_RAVEN: | 856 | case CHIP_RAVEN: |
857 | case CHIP_PICASSO: | ||
852 | sdma_v4_1_init_power_gating(adev); | 858 | sdma_v4_1_init_power_gating(adev); |
853 | sdma_v4_1_update_power_gating(adev, true); | 859 | sdma_v4_1_update_power_gating(adev, true); |
854 | break; | 860 | break; |
@@ -1256,7 +1262,7 @@ static int sdma_v4_0_early_init(void *handle) | |||
1256 | { | 1262 | { |
1257 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 1263 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
1258 | 1264 | ||
1259 | if (adev->asic_type == CHIP_RAVEN) | 1265 | if (adev->asic_type == CHIP_RAVEN || adev->asic_type == CHIP_PICASSO) |
1260 | adev->sdma.num_instances = 1; | 1266 | adev->sdma.num_instances = 1; |
1261 | else | 1267 | else |
1262 | adev->sdma.num_instances = 2; | 1268 | adev->sdma.num_instances = 2; |
@@ -1599,6 +1605,7 @@ static int sdma_v4_0_set_clockgating_state(void *handle, | |||
1599 | case CHIP_VEGA12: | 1605 | case CHIP_VEGA12: |
1600 | case CHIP_VEGA20: | 1606 | case CHIP_VEGA20: |
1601 | case CHIP_RAVEN: | 1607 | case CHIP_RAVEN: |
1608 | case CHIP_PICASSO: | ||
1602 | sdma_v4_0_update_medium_grain_clock_gating(adev, | 1609 | sdma_v4_0_update_medium_grain_clock_gating(adev, |
1603 | state == AMD_CG_STATE_GATE ? true : false); | 1610 | state == AMD_CG_STATE_GATE ? true : false); |
1604 | sdma_v4_0_update_medium_grain_light_sleep(adev, | 1611 | sdma_v4_0_update_medium_grain_light_sleep(adev, |
@@ -1617,6 +1624,7 @@ static int sdma_v4_0_set_powergating_state(void *handle, | |||
1617 | 1624 | ||
1618 | switch (adev->asic_type) { | 1625 | switch (adev->asic_type) { |
1619 | case CHIP_RAVEN: | 1626 | case CHIP_RAVEN: |
1627 | case CHIP_PICASSO: | ||
1620 | sdma_v4_1_update_power_gating(adev, | 1628 | sdma_v4_1_update_power_gating(adev, |
1621 | state == AMD_PG_STATE_GATE ? true : false); | 1629 | state == AMD_PG_STATE_GATE ? true : false); |
1622 | break; | 1630 | break; |