aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600d.h
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2013-04-08 06:41:29 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-04-09 10:31:33 -0400
commitf2ba57b5eab8817d86d0f108fdf1878e51dc0a37 (patch)
treee784f0573069f6341768968fe3d49df6d2c9a534 /drivers/gpu/drm/radeon/r600d.h
parent4474f3a91f95e3fcc62d97e36f1e8e3392c96ee0 (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.h61
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) | \