aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-04-07 23:16:00 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-05-04 20:22:05 -0400
commit146f256faea7762d42c1b2aae14b816a92f2eb10 (patch)
tree82d583468e32a8650323c53affa20ab3147c5f01
parent79deaaf4a9eb3fd2ba92616a5212564fd6ae06a1 (diff)
drm/amdgpu/gfx: adjust gfx_v8_0_send_serdes_cmd for ST
Acked-by: Tom St Denis <tom.stdenis@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 7e94a85daef5..b15162dc14ea 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -4292,7 +4292,8 @@ static void gfx_v8_0_send_serdes_cmd(struct amdgpu_device *adev,
4292 WREG32(mmRLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff); 4292 WREG32(mmRLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
4293 4293
4294 data = RREG32(mmRLC_SERDES_WR_CTRL); 4294 data = RREG32(mmRLC_SERDES_WR_CTRL);
4295 data &= ~(RLC_SERDES_WR_CTRL__WRITE_COMMAND_MASK | 4295 if (adev->asic_type == CHIP_STONEY)
4296 data &= ~(RLC_SERDES_WR_CTRL__WRITE_COMMAND_MASK |
4296 RLC_SERDES_WR_CTRL__READ_COMMAND_MASK | 4297 RLC_SERDES_WR_CTRL__READ_COMMAND_MASK |
4297 RLC_SERDES_WR_CTRL__P1_SELECT_MASK | 4298 RLC_SERDES_WR_CTRL__P1_SELECT_MASK |
4298 RLC_SERDES_WR_CTRL__P2_SELECT_MASK | 4299 RLC_SERDES_WR_CTRL__P2_SELECT_MASK |
@@ -4300,13 +4301,23 @@ static void gfx_v8_0_send_serdes_cmd(struct amdgpu_device *adev,
4300 RLC_SERDES_WR_CTRL__POWER_DOWN_MASK | 4301 RLC_SERDES_WR_CTRL__POWER_DOWN_MASK |
4301 RLC_SERDES_WR_CTRL__POWER_UP_MASK | 4302 RLC_SERDES_WR_CTRL__POWER_UP_MASK |
4302 RLC_SERDES_WR_CTRL__SHORT_FORMAT_MASK | 4303 RLC_SERDES_WR_CTRL__SHORT_FORMAT_MASK |
4303 RLC_SERDES_WR_CTRL__BPM_DATA_MASK |
4304 RLC_SERDES_WR_CTRL__REG_ADDR_MASK |
4305 RLC_SERDES_WR_CTRL__SRBM_OVERRIDE_MASK); 4304 RLC_SERDES_WR_CTRL__SRBM_OVERRIDE_MASK);
4305 else
4306 data &= ~(RLC_SERDES_WR_CTRL__WRITE_COMMAND_MASK |
4307 RLC_SERDES_WR_CTRL__READ_COMMAND_MASK |
4308 RLC_SERDES_WR_CTRL__P1_SELECT_MASK |
4309 RLC_SERDES_WR_CTRL__P2_SELECT_MASK |
4310 RLC_SERDES_WR_CTRL__RDDATA_RESET_MASK |
4311 RLC_SERDES_WR_CTRL__POWER_DOWN_MASK |
4312 RLC_SERDES_WR_CTRL__POWER_UP_MASK |
4313 RLC_SERDES_WR_CTRL__SHORT_FORMAT_MASK |
4314 RLC_SERDES_WR_CTRL__BPM_DATA_MASK |
4315 RLC_SERDES_WR_CTRL__REG_ADDR_MASK |
4316 RLC_SERDES_WR_CTRL__SRBM_OVERRIDE_MASK);
4306 data |= (RLC_SERDES_WR_CTRL__RSVD_BPM_ADDR_MASK | 4317 data |= (RLC_SERDES_WR_CTRL__RSVD_BPM_ADDR_MASK |
4307 (cmd << RLC_SERDES_WR_CTRL__BPM_DATA__SHIFT) | 4318 (cmd << RLC_SERDES_WR_CTRL__BPM_DATA__SHIFT) |
4308 (reg_addr << RLC_SERDES_WR_CTRL__REG_ADDR__SHIFT) | 4319 (reg_addr << RLC_SERDES_WR_CTRL__REG_ADDR__SHIFT) |
4309 (0xff << RLC_SERDES_WR_CTRL__BPM_ADDR__SHIFT)); 4320 (0xff << RLC_SERDES_WR_CTRL__BPM_ADDR__SHIFT));
4310 4321
4311 WREG32(mmRLC_SERDES_WR_CTRL, data); 4322 WREG32(mmRLC_SERDES_WR_CTRL, data);
4312} 4323}