diff options
author | Christian König <deathsimple@vodafone.de> | 2013-04-08 06:41:29 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-04-09 10:31:33 -0400 |
commit | f2ba57b5eab8817d86d0f108fdf1878e51dc0a37 (patch) | |
tree | e784f0573069f6341768968fe3d49df6d2c9a534 /drivers/gpu/drm/radeon/r600d.h | |
parent | 4474f3a91f95e3fcc62d97e36f1e8e3392c96ee0 (diff) |
drm/radeon: UVD bringup v8
Just everything needed to decode videos using UVD.
v6: just all the bugfixes and support for R7xx-SI merged in one patch
v7: UVD_CGC_GATE is a write only register, lockup detection fix
v8: split out VRAM fallback changes, remove support for RV770,
add support for HEMLOCK, add buffer sizes checks
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600d.h')
-rw-r--r-- | drivers/gpu/drm/radeon/r600d.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h index a42ba11a3bed..441bdb809a0b 100644 --- a/drivers/gpu/drm/radeon/r600d.h +++ b/drivers/gpu/drm/radeon/r600d.h | |||
@@ -691,6 +691,7 @@ | |||
691 | #define SRBM_SOFT_RESET 0xe60 | 691 | #define SRBM_SOFT_RESET 0xe60 |
692 | # define SOFT_RESET_DMA (1 << 12) | 692 | # define SOFT_RESET_DMA (1 << 12) |
693 | # define SOFT_RESET_RLC (1 << 13) | 693 | # define SOFT_RESET_RLC (1 << 13) |
694 | # define SOFT_RESET_UVD (1 << 18) | ||
694 | # define RV770_SOFT_RESET_DMA (1 << 20) | 695 | # define RV770_SOFT_RESET_DMA (1 << 20) |
695 | 696 | ||
696 | #define CP_INT_CNTL 0xc124 | 697 | #define CP_INT_CNTL 0xc124 |
@@ -1143,6 +1144,66 @@ | |||
1143 | # define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) | 1144 | # define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) |
1144 | 1145 | ||
1145 | /* | 1146 | /* |
1147 | * UVD | ||
1148 | */ | ||
1149 | #define UVD_SEMA_ADDR_LOW 0xef00 | ||
1150 | #define UVD_SEMA_ADDR_HIGH 0xef04 | ||
1151 | #define UVD_SEMA_CMD 0xef08 | ||
1152 | |||
1153 | #define UVD_GPCOM_VCPU_CMD 0xef0c | ||
1154 | #define UVD_GPCOM_VCPU_DATA0 0xef10 | ||
1155 | #define UVD_GPCOM_VCPU_DATA1 0xef14 | ||
1156 | #define UVD_ENGINE_CNTL 0xef18 | ||
1157 | |||
1158 | #define UVD_SEMA_CNTL 0xf400 | ||
1159 | #define UVD_RB_ARB_CTRL 0xf480 | ||
1160 | |||
1161 | #define UVD_LMI_EXT40_ADDR 0xf498 | ||
1162 | #define UVD_CGC_GATE 0xf4a8 | ||
1163 | #define UVD_LMI_CTRL2 0xf4f4 | ||
1164 | #define UVD_MASTINT_EN 0xf500 | ||
1165 | #define UVD_LMI_ADDR_EXT 0xf594 | ||
1166 | #define UVD_LMI_CTRL 0xf598 | ||
1167 | #define UVD_LMI_SWAP_CNTL 0xf5b4 | ||
1168 | #define UVD_MP_SWAP_CNTL 0xf5bC | ||
1169 | #define UVD_MPC_CNTL 0xf5dC | ||
1170 | #define UVD_MPC_SET_MUXA0 0xf5e4 | ||
1171 | #define UVD_MPC_SET_MUXA1 0xf5e8 | ||
1172 | #define UVD_MPC_SET_MUXB0 0xf5eC | ||
1173 | #define UVD_MPC_SET_MUXB1 0xf5f0 | ||
1174 | #define UVD_MPC_SET_MUX 0xf5f4 | ||
1175 | #define UVD_MPC_SET_ALU 0xf5f8 | ||
1176 | |||
1177 | #define UVD_VCPU_CNTL 0xf660 | ||
1178 | #define UVD_SOFT_RESET 0xf680 | ||
1179 | #define RBC_SOFT_RESET (1<<0) | ||
1180 | #define LBSI_SOFT_RESET (1<<1) | ||
1181 | #define LMI_SOFT_RESET (1<<2) | ||
1182 | #define VCPU_SOFT_RESET (1<<3) | ||
1183 | #define CSM_SOFT_RESET (1<<5) | ||
1184 | #define CXW_SOFT_RESET (1<<6) | ||
1185 | #define TAP_SOFT_RESET (1<<7) | ||
1186 | #define LMI_UMC_SOFT_RESET (1<<13) | ||
1187 | #define UVD_RBC_IB_BASE 0xf684 | ||
1188 | #define UVD_RBC_IB_SIZE 0xf688 | ||
1189 | #define UVD_RBC_RB_BASE 0xf68c | ||
1190 | #define UVD_RBC_RB_RPTR 0xf690 | ||
1191 | #define UVD_RBC_RB_WPTR 0xf694 | ||
1192 | #define UVD_RBC_RB_WPTR_CNTL 0xf698 | ||
1193 | |||
1194 | #define UVD_STATUS 0xf6bc | ||
1195 | |||
1196 | #define UVD_SEMA_TIMEOUT_STATUS 0xf6c0 | ||
1197 | #define UVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL 0xf6c4 | ||
1198 | #define UVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL 0xf6c8 | ||
1199 | #define UVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL 0xf6cc | ||
1200 | |||
1201 | #define UVD_RBC_RB_CNTL 0xf6a4 | ||
1202 | #define UVD_RBC_RB_RPTR_ADDR 0xf6a8 | ||
1203 | |||
1204 | #define UVD_CONTEXT_ID 0xf6f4 | ||
1205 | |||
1206 | /* | ||
1146 | * PM4 | 1207 | * PM4 |
1147 | */ | 1208 | */ |
1148 | #define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ | 1209 | #define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ |