summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2017-03-02 16:42:58 -0500
committerAlex Deucher <alexander.deucher@amd.com>2017-03-29 23:54:28 -0400
commit7008d577d6c90a3a6a8cd0d6fb41d469326d9077 (patch)
treeef4a733ee14b6637d672b460ca951d500d3f920c
parent893f25540e698326ac696fa56b99fd6a9b285b61 (diff)
downloadlinux-7008d577d6c90a3a6a8cd0d6fb41d469326d9077.tar.gz
linux-7008d577d6c90a3a6a8cd0d6fb41d469326d9077.tar.bz2
linux-7008d577d6c90a3a6a8cd0d6fb41d469326d9077.zip
drm/amdgpu: add the UVD 7.0 register headers
These are the Unifed Video Decoder registers for vega10. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_default.h127
-rw-r--r--drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_offset.h222
-rw-r--r--drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_sh_mask.h811
3 files changed, 1160 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_default.h b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_default.h
new file mode 100644
index 000000000000..48963caac534
--- /dev/null
+++ b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_default.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2017 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+#ifndef _uvd_7_0_DEFAULT_HEADER
+#define _uvd_7_0_DEFAULT_HEADER
+
+
+// addressBlock: uvd0_uvd_pg_dec
+#define mmUVD_POWER_STATUS_DEFAULT 0x00000000
+#define mmUVD_DPG_RBC_RB_CNTL_DEFAULT 0x01000101
+#define mmUVD_DPG_RBC_RB_BASE_LOW_DEFAULT 0x00000000
+#define mmUVD_DPG_RBC_RB_BASE_HIGH_DEFAULT 0x00000000
+#define mmUVD_DPG_RBC_RB_WPTR_CNTL_DEFAULT 0x00000000
+#define mmUVD_DPG_RBC_RB_RPTR_DEFAULT 0x00000000
+#define mmUVD_DPG_RBC_RB_WPTR_DEFAULT 0x00000000
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_DPG_VCPU_CACHE_OFFSET0_DEFAULT 0x00000000
+
+
+// addressBlock: uvd0_uvdnpdec
+#define mmUVD_JPEG_ADDR_CONFIG_DEFAULT 0x22010010
+#define mmUVD_GPCOM_VCPU_CMD_DEFAULT 0x00000000
+#define mmUVD_GPCOM_VCPU_DATA0_DEFAULT 0x00000000
+#define mmUVD_GPCOM_VCPU_DATA1_DEFAULT 0x00000000
+#define mmUVD_UDEC_ADDR_CONFIG_DEFAULT 0x22010010
+#define mmUVD_UDEC_DB_ADDR_CONFIG_DEFAULT 0x22010010
+#define mmUVD_UDEC_DBW_ADDR_CONFIG_DEFAULT 0x22010010
+#define mmUVD_SUVD_CGC_GATE_DEFAULT 0x00000000
+#define mmUVD_SUVD_CGC_CTRL_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_POWER_STATUS_U_DEFAULT 0x00000000
+#define mmUVD_NO_OP_DEFAULT 0x00000000
+#define mmUVD_GP_SCRATCH8_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_LO2_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_HI2_DEFAULT 0x00000000
+#define mmUVD_RB_SIZE2_DEFAULT 0x00000000
+#define mmUVD_RB_RPTR2_DEFAULT 0x00000000
+#define mmUVD_RB_WPTR2_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_LO_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_HI_DEFAULT 0x00000000
+#define mmUVD_RB_SIZE_DEFAULT 0x00000000
+#define mmUVD_RB_RPTR_DEFAULT 0x00000000
+#define mmUVD_RB_WPTR_DEFAULT 0x00000000
+#define mmUVD_JRBC_RB_RPTR_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_HIGH_DEFAULT 0x00000000
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_LOW_DEFAULT 0x00000000
+
+
+// addressBlock: uvd0_uvddec
+#define mmUVD_SEMA_CNTL_DEFAULT 0x00000003
+#define mmUVD_LMI_JRBC_RB_64BIT_BAR_LOW_DEFAULT 0x00000000
+#define mmUVD_JRBC_RB_WPTR_DEFAULT 0x00000000
+#define mmUVD_RB_RPTR3_DEFAULT 0x00000000
+#define mmUVD_RB_WPTR3_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_LO3_DEFAULT 0x00000000
+#define mmUVD_RB_BASE_HI3_DEFAULT 0x00000000
+#define mmUVD_RB_SIZE3_DEFAULT 0x00000000
+#define mmJPEG_CGC_GATE_DEFAULT 0x00300000
+#define mmUVD_CTX_INDEX_DEFAULT 0x00000000
+#define mmUVD_CTX_DATA_DEFAULT 0x00000000
+#define mmUVD_CGC_GATE_DEFAULT 0x000fffff
+#define mmUVD_CGC_CTRL_DEFAULT 0x1fff018d
+#define mmUVD_GP_SCRATCH4_DEFAULT 0x00000000
+#define mmUVD_LMI_CTRL2_DEFAULT 0x003e0000
+#define mmUVD_MASTINT_EN_DEFAULT 0x00000000
+#define mmJPEG_CGC_CTRL_DEFAULT 0x0000018d
+#define mmUVD_LMI_CTRL_DEFAULT 0x00104340
+#define mmUVD_LMI_VM_CTRL_DEFAULT 0x00000000
+#define mmUVD_LMI_SWAP_CNTL_DEFAULT 0x00000000
+#define mmUVD_MP_SWAP_CNTL_DEFAULT 0x00000000
+#define mmUVD_MPC_SET_MUXA0_DEFAULT 0x00002040
+#define mmUVD_MPC_SET_MUXA1_DEFAULT 0x00000000
+#define mmUVD_MPC_SET_MUXB0_DEFAULT 0x00002040
+#define mmUVD_MPC_SET_MUXB1_DEFAULT 0x00000000
+#define mmUVD_MPC_SET_MUX_DEFAULT 0x00000088
+#define mmUVD_MPC_SET_ALU_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_OFFSET0_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_SIZE0_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_OFFSET1_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_SIZE1_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_OFFSET2_DEFAULT 0x00000000
+#define mmUVD_VCPU_CACHE_SIZE2_DEFAULT 0x00000000
+#define mmUVD_VCPU_CNTL_DEFAULT 0x0ff20000
+#define mmUVD_SOFT_RESET_DEFAULT 0x00000008
+#define mmUVD_LMI_RBC_IB_VMID_DEFAULT 0x00000000
+#define mmUVD_RBC_IB_SIZE_DEFAULT 0x00000000
+#define mmUVD_LMI_RBC_RB_VMID_DEFAULT 0x00000000
+#define mmUVD_RBC_RB_RPTR_DEFAULT 0x00000000
+#define mmUVD_RBC_RB_WPTR_DEFAULT 0x00000000
+#define mmUVD_RBC_RB_WPTR_CNTL_DEFAULT 0x00000000
+#define mmUVD_RBC_RB_CNTL_DEFAULT 0x01000101
+#define mmUVD_RBC_RB_RPTR_ADDR_DEFAULT 0x00000000
+#define mmUVD_STATUS_DEFAULT 0x00000000
+#define mmUVD_SEMA_TIMEOUT_STATUS_DEFAULT 0x00000000
+#define mmUVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL_DEFAULT 0x02000000
+#define mmUVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL_DEFAULT 0x02000000
+#define mmUVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL_DEFAULT 0x02000000
+#define mmUVD_CONTEXT_ID_DEFAULT 0x00000000
+#define mmUVD_CONTEXT_ID2_DEFAULT 0x00000000
+
+
+#endif
diff --git a/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_offset.h b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_offset.h
new file mode 100644
index 000000000000..07aceffb108a
--- /dev/null
+++ b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_offset.h
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2017 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+#ifndef _uvd_7_0_OFFSET_HEADER
+#define _uvd_7_0_OFFSET_HEADER
+
+
+
+// addressBlock: uvd0_uvd_pg_dec
+// base address: 0x1fb00
+#define mmUVD_POWER_STATUS 0x00c4
+#define mmUVD_POWER_STATUS_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_CNTL 0x00cb
+#define mmUVD_DPG_RBC_RB_CNTL_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_BASE_LOW 0x00cc
+#define mmUVD_DPG_RBC_RB_BASE_LOW_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_BASE_HIGH 0x00cd
+#define mmUVD_DPG_RBC_RB_BASE_HIGH_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_WPTR_CNTL 0x00ce
+#define mmUVD_DPG_RBC_RB_WPTR_CNTL_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_RPTR 0x00cf
+#define mmUVD_DPG_RBC_RB_RPTR_BASE_IDX 1
+#define mmUVD_DPG_RBC_RB_WPTR 0x00d0
+#define mmUVD_DPG_RBC_RB_WPTR_BASE_IDX 1
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW 0x00e5
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH 0x00e6
+#define mmUVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_DPG_VCPU_CACHE_OFFSET0 0x00e7
+#define mmUVD_DPG_VCPU_CACHE_OFFSET0_BASE_IDX 1
+
+
+// addressBlock: uvd0_uvdnpdec
+// base address: 0x20000
+#define mmUVD_JPEG_ADDR_CONFIG 0x021f
+#define mmUVD_JPEG_ADDR_CONFIG_BASE_IDX 1
+#define mmUVD_GPCOM_VCPU_CMD 0x03c3
+#define mmUVD_GPCOM_VCPU_CMD_BASE_IDX 1
+#define mmUVD_GPCOM_VCPU_DATA0 0x03c4
+#define mmUVD_GPCOM_VCPU_DATA0_BASE_IDX 1
+#define mmUVD_GPCOM_VCPU_DATA1 0x03c5
+#define mmUVD_GPCOM_VCPU_DATA1_BASE_IDX 1
+#define mmUVD_UDEC_ADDR_CONFIG 0x03d3
+#define mmUVD_UDEC_ADDR_CONFIG_BASE_IDX 1
+#define mmUVD_UDEC_DB_ADDR_CONFIG 0x03d4
+#define mmUVD_UDEC_DB_ADDR_CONFIG_BASE_IDX 1
+#define mmUVD_UDEC_DBW_ADDR_CONFIG 0x03d5
+#define mmUVD_UDEC_DBW_ADDR_CONFIG_BASE_IDX 1
+#define mmUVD_SUVD_CGC_GATE 0x03e4
+#define mmUVD_SUVD_CGC_GATE_BASE_IDX 1
+#define mmUVD_SUVD_CGC_CTRL 0x03e6
+#define mmUVD_SUVD_CGC_CTRL_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_LOW 0x03ec
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_HIGH 0x03ed
+#define mmUVD_LMI_VCPU_CACHE1_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_LOW 0x03f0
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_HIGH 0x03f1
+#define mmUVD_LMI_VCPU_CACHE2_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_POWER_STATUS_U 0x03fd
+#define mmUVD_POWER_STATUS_U_BASE_IDX 1
+#define mmUVD_NO_OP 0x03ff
+#define mmUVD_NO_OP_BASE_IDX 1
+#define mmUVD_GP_SCRATCH8 0x040a
+#define mmUVD_GP_SCRATCH8_BASE_IDX 1
+#define mmUVD_RB_BASE_LO2 0x0421
+#define mmUVD_RB_BASE_LO2_BASE_IDX 1
+#define mmUVD_RB_BASE_HI2 0x0422
+#define mmUVD_RB_BASE_HI2_BASE_IDX 1
+#define mmUVD_RB_SIZE2 0x0423
+#define mmUVD_RB_SIZE2_BASE_IDX 1
+#define mmUVD_RB_RPTR2 0x0424
+#define mmUVD_RB_RPTR2_BASE_IDX 1
+#define mmUVD_RB_WPTR2 0x0425
+#define mmUVD_RB_WPTR2_BASE_IDX 1
+#define mmUVD_RB_BASE_LO 0x0426
+#define mmUVD_RB_BASE_LO_BASE_IDX 1
+#define mmUVD_RB_BASE_HI 0x0427
+#define mmUVD_RB_BASE_HI_BASE_IDX 1
+#define mmUVD_RB_SIZE 0x0428
+#define mmUVD_RB_SIZE_BASE_IDX 1
+#define mmUVD_RB_RPTR 0x0429
+#define mmUVD_RB_RPTR_BASE_IDX 1
+#define mmUVD_RB_WPTR 0x042a
+#define mmUVD_RB_WPTR_BASE_IDX 1
+#define mmUVD_JRBC_RB_RPTR 0x0457
+#define mmUVD_JRBC_RB_RPTR_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_HIGH 0x045e
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_LOW 0x045f
+#define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_HIGH 0x0466
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_LOW 0x0467
+#define mmUVD_LMI_RBC_IB_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_HIGH 0x0468
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_HIGH_BASE_IDX 1
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_LOW 0x0469
+#define mmUVD_LMI_RBC_RB_64BIT_BAR_LOW_BASE_IDX 1
+
+
+// addressBlock: uvd0_uvddec
+// base address: 0x20c00
+#define mmUVD_SEMA_CNTL 0x0500
+#define mmUVD_SEMA_CNTL_BASE_IDX 1
+#define mmUVD_LMI_JRBC_RB_64BIT_BAR_LOW 0x0503
+#define mmUVD_LMI_JRBC_RB_64BIT_BAR_LOW_BASE_IDX 1
+#define mmUVD_JRBC_RB_WPTR 0x0509
+#define mmUVD_JRBC_RB_WPTR_BASE_IDX 1
+#define mmUVD_RB_RPTR3 0x051b
+#define mmUVD_RB_RPTR3_BASE_IDX 1
+#define mmUVD_RB_WPTR3 0x051c
+#define mmUVD_RB_WPTR3_BASE_IDX 1
+#define mmUVD_RB_BASE_LO3 0x051d
+#define mmUVD_RB_BASE_LO3_BASE_IDX 1
+#define mmUVD_RB_BASE_HI3 0x051e
+#define mmUVD_RB_BASE_HI3_BASE_IDX 1
+#define mmUVD_RB_SIZE3 0x051f
+#define mmUVD_RB_SIZE3_BASE_IDX 1
+#define mmJPEG_CGC_GATE 0x0526
+#define mmJPEG_CGC_GATE_BASE_IDX 1
+#define mmUVD_CTX_INDEX 0x0528
+#define mmUVD_CTX_INDEX_BASE_IDX 1
+#define mmUVD_CTX_DATA 0x0529
+#define mmUVD_CTX_DATA_BASE_IDX 1
+#define mmUVD_CGC_GATE 0x052a
+#define mmUVD_CGC_GATE_BASE_IDX 1
+#define mmUVD_CGC_CTRL 0x052c
+#define mmUVD_CGC_CTRL_BASE_IDX 1
+#define mmUVD_GP_SCRATCH4 0x0538
+#define mmUVD_GP_SCRATCH4_BASE_IDX 1
+#define mmUVD_LMI_CTRL2 0x053d
+#define mmUVD_LMI_CTRL2_BASE_IDX 1
+#define mmUVD_MASTINT_EN 0x0540
+#define mmUVD_MASTINT_EN_BASE_IDX 1
+#define mmJPEG_CGC_CTRL 0x0565
+#define mmJPEG_CGC_CTRL_BASE_IDX 1
+#define mmUVD_LMI_CTRL 0x0566
+#define mmUVD_LMI_CTRL_BASE_IDX 1
+#define mmUVD_LMI_VM_CTRL 0x0568
+#define mmUVD_LMI_VM_CTRL_BASE_IDX 1
+#define mmUVD_LMI_SWAP_CNTL 0x056d
+#define mmUVD_LMI_SWAP_CNTL_BASE_IDX 1
+#define mmUVD_MP_SWAP_CNTL 0x056f
+#define mmUVD_MP_SWAP_CNTL_BASE_IDX 1
+#define mmUVD_MPC_SET_MUXA0 0x0579
+#define mmUVD_MPC_SET_MUXA0_BASE_IDX 1
+#define mmUVD_MPC_SET_MUXA1 0x057a
+#define mmUVD_MPC_SET_MUXA1_BASE_IDX 1
+#define mmUVD_MPC_SET_MUXB0 0x057b
+#define mmUVD_MPC_SET_MUXB0_BASE_IDX 1
+#define mmUVD_MPC_SET_MUXB1 0x057c
+#define mmUVD_MPC_SET_MUXB1_BASE_IDX 1
+#define mmUVD_MPC_SET_MUX 0x057d
+#define mmUVD_MPC_SET_MUX_BASE_IDX 1
+#define mmUVD_MPC_SET_ALU 0x057e
+#define mmUVD_MPC_SET_ALU_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_OFFSET0 0x0582
+#define mmUVD_VCPU_CACHE_OFFSET0_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_SIZE0 0x0583
+#define mmUVD_VCPU_CACHE_SIZE0_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_OFFSET1 0x0584
+#define mmUVD_VCPU_CACHE_OFFSET1_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_SIZE1 0x0585
+#define mmUVD_VCPU_CACHE_SIZE1_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_OFFSET2 0x0586
+#define mmUVD_VCPU_CACHE_OFFSET2_BASE_IDX 1
+#define mmUVD_VCPU_CACHE_SIZE2 0x0587
+#define mmUVD_VCPU_CACHE_SIZE2_BASE_IDX 1
+#define mmUVD_VCPU_CNTL 0x0598
+#define mmUVD_VCPU_CNTL_BASE_IDX 1
+#define mmUVD_SOFT_RESET 0x05a0
+#define mmUVD_SOFT_RESET_BASE_IDX 1
+#define mmUVD_LMI_RBC_IB_VMID 0x05a1
+#define mmUVD_LMI_RBC_IB_VMID_BASE_IDX 1
+#define mmUVD_RBC_IB_SIZE 0x05a2
+#define mmUVD_RBC_IB_SIZE_BASE_IDX 1
+#define mmUVD_RBC_RB_RPTR 0x05a4
+#define mmUVD_RBC_RB_RPTR_BASE_IDX 1
+#define mmUVD_RBC_RB_WPTR 0x05a5
+#define mmUVD_RBC_RB_WPTR_BASE_IDX 1
+#define mmUVD_RBC_RB_WPTR_CNTL 0x05a6
+#define mmUVD_RBC_RB_WPTR_CNTL_BASE_IDX 1
+#define mmUVD_RBC_RB_CNTL 0x05a9
+#define mmUVD_RBC_RB_CNTL_BASE_IDX 1
+#define mmUVD_RBC_RB_RPTR_ADDR 0x05aa
+#define mmUVD_RBC_RB_RPTR_ADDR_BASE_IDX 1
+#define mmUVD_STATUS 0x05af
+#define mmUVD_STATUS_BASE_IDX 1
+#define mmUVD_SEMA_TIMEOUT_STATUS 0x05b0
+#define mmUVD_SEMA_TIMEOUT_STATUS_BASE_IDX 1
+#define mmUVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL 0x05b1
+#define mmUVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL_BASE_IDX 1
+#define mmUVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL 0x05b2
+#define mmUVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL_BASE_IDX 1
+#define mmUVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL 0x05b3
+#define mmUVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL_BASE_IDX 1
+#define mmUVD_CONTEXT_ID 0x05bd
+#define mmUVD_CONTEXT_ID_BASE_IDX 1
+#define mmUVD_CONTEXT_ID2 0x05bf
+#define mmUVD_CONTEXT_ID2_BASE_IDX 1
+
+
+#endif
diff --git a/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_sh_mask.h b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_sh_mask.h
new file mode 100644
index 000000000000..b427f73bd536
--- /dev/null
+++ b/drivers/gpu/drm/amd/include/asic_reg/vega10/UVD/uvd_7_0_sh_mask.h
@@ -0,0 +1,811 @@
+/*
+ * Copyright (C) 2017 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+#ifndef _uvd_7_0_SH_MASK_HEADER
+#define _uvd_7_0_SH_MASK_HEADER
+
+
+// addressBlock: uvd0_uvd_pg_dec
+//UVD_POWER_STATUS
+#define UVD_POWER_STATUS__UVD_POWER_STATUS__SHIFT 0x0
+#define UVD_POWER_STATUS__UVD_PG_MODE__SHIFT 0x2
+#define UVD_POWER_STATUS__UVD_STATUS_CHECK_TIMEOUT__SHIFT 0x3
+#define UVD_POWER_STATUS__PWR_ON_CHECK_TIMEOUT__SHIFT 0x4
+#define UVD_POWER_STATUS__PWR_OFF_CHECK_TIMEOUT__SHIFT 0x5
+#define UVD_POWER_STATUS__UVD_PGFSM_TIMEOUT_MODE__SHIFT 0x6
+#define UVD_POWER_STATUS__UVD_PG_EN__SHIFT 0x8
+#define UVD_POWER_STATUS__PAUSE_DPG_REQ__SHIFT 0x9
+#define UVD_POWER_STATUS__PAUSE_DPG_ACK__SHIFT 0xa
+#define UVD_POWER_STATUS__UVD_POWER_STATUS_MASK 0x00000003L
+#define UVD_POWER_STATUS__UVD_PG_MODE_MASK 0x00000004L
+#define UVD_POWER_STATUS__UVD_STATUS_CHECK_TIMEOUT_MASK 0x00000008L
+#define UVD_POWER_STATUS__PWR_ON_CHECK_TIMEOUT_MASK 0x00000010L
+#define UVD_POWER_STATUS__PWR_OFF_CHECK_TIMEOUT_MASK 0x00000020L
+#define UVD_POWER_STATUS__UVD_PGFSM_TIMEOUT_MODE_MASK 0x000000C0L
+#define UVD_POWER_STATUS__UVD_PG_EN_MASK 0x00000100L
+#define UVD_POWER_STATUS__PAUSE_DPG_REQ_MASK 0x00000200L
+#define UVD_POWER_STATUS__PAUSE_DPG_ACK_MASK 0x00000400L
+//UVD_DPG_RBC_RB_CNTL
+#define UVD_DPG_RBC_RB_CNTL__RB_BUFSZ__SHIFT 0x0
+#define UVD_DPG_RBC_RB_CNTL__RB_BLKSZ__SHIFT 0x8
+#define UVD_DPG_RBC_RB_CNTL__RB_NO_FETCH__SHIFT 0x10
+#define UVD_DPG_RBC_RB_CNTL__RB_WPTR_POLL_EN__SHIFT 0x14
+#define UVD_DPG_RBC_RB_CNTL__RB_NO_UPDATE__SHIFT 0x18
+#define UVD_DPG_RBC_RB_CNTL__RB_RPTR_WR_EN__SHIFT 0x1c
+#define UVD_DPG_RBC_RB_CNTL__RB_BUFSZ_MASK 0x0000001FL
+#define UVD_DPG_RBC_RB_CNTL__RB_BLKSZ_MASK 0x00001F00L
+#define UVD_DPG_RBC_RB_CNTL__RB_NO_FETCH_MASK 0x00010000L
+#define UVD_DPG_RBC_RB_CNTL__RB_WPTR_POLL_EN_MASK 0x00100000L
+#define UVD_DPG_RBC_RB_CNTL__RB_NO_UPDATE_MASK 0x01000000L
+#define UVD_DPG_RBC_RB_CNTL__RB_RPTR_WR_EN_MASK 0x10000000L
+//UVD_DPG_RBC_RB_BASE_LOW
+#define UVD_DPG_RBC_RB_BASE_LOW__RB_BASE_LOW__SHIFT 0x0
+#define UVD_DPG_RBC_RB_BASE_LOW__RB_BASE_LOW_MASK 0xFFFFFFFFL
+//UVD_DPG_RBC_RB_BASE_HIGH
+#define UVD_DPG_RBC_RB_BASE_HIGH__RB_BASE_HIGH__SHIFT 0x0
+#define UVD_DPG_RBC_RB_BASE_HIGH__RB_BASE_HIGH_MASK 0xFFFFFFFFL
+//UVD_DPG_RBC_RB_WPTR_CNTL
+#define UVD_DPG_RBC_RB_WPTR_CNTL__RB_PRE_WRITE_TIMER__SHIFT 0x0
+#define UVD_DPG_RBC_RB_WPTR_CNTL__RB_PRE_WRITE_TIMER_MASK 0x00007FFFL
+//UVD_DPG_RBC_RB_RPTR
+#define UVD_DPG_RBC_RB_RPTR__RB_RPTR__SHIFT 0x4
+#define UVD_DPG_RBC_RB_RPTR__RB_RPTR_MASK 0x007FFFF0L
+//UVD_DPG_RBC_RB_WPTR
+#define UVD_DPG_RBC_RB_WPTR__RB_WPTR__SHIFT 0x4
+#define UVD_DPG_RBC_RB_WPTR__RB_WPTR_MASK 0x007FFFF0L
+//UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW
+#define UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW__BITS_31_0__SHIFT 0x0
+#define UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_LOW__BITS_31_0_MASK 0xFFFFFFFFL
+//UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH
+#define UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH__BITS_63_32__SHIFT 0x0
+#define UVD_DPG_LMI_VCPU_CACHE_64BIT_BAR_HIGH__BITS_63_32_MASK 0xFFFFFFFFL
+//UVD_DPG_VCPU_CACHE_OFFSET0
+#define UVD_DPG_VCPU_CACHE_OFFSET0__CACHE_OFFSET0__SHIFT 0x0
+#define UVD_DPG_VCPU_CACHE_OFFSET0__CACHE_OFFSET0_MASK 0x01FFFFFFL
+
+
+// addressBlock: uvd0_uvdnpdec
+//UVD_JPEG_ADDR_CONFIG
+#define UVD_JPEG_ADDR_CONFIG__NUM_PIPES__SHIFT 0x0
+#define UVD_JPEG_ADDR_CONFIG__PIPE_INTERLEAVE_SIZE__SHIFT 0x3
+#define UVD_JPEG_ADDR_CONFIG__MAX_COMPRESSED_FRAGS__SHIFT 0x6
+#define UVD_JPEG_ADDR_CONFIG__BANK_INTERLEAVE_SIZE__SHIFT 0x8
+#define UVD_JPEG_ADDR_CONFIG__NUM_BANKS__SHIFT 0xc
+#define UVD_JPEG_ADDR_CONFIG__SHADER_ENGINE_TILE_SIZE__SHIFT 0x10
+#define UVD_JPEG_ADDR_CONFIG__NUM_SHADER_ENGINES__SHIFT 0x13
+#define UVD_JPEG_ADDR_CONFIG__NUM_GPUS__SHIFT 0x15
+#define UVD_JPEG_ADDR_CONFIG__MULTI_GPU_TILE_SIZE__SHIFT 0x18
+#define UVD_JPEG_ADDR_CONFIG__NUM_RB_PER_SE__SHIFT 0x1a
+#define UVD_JPEG_ADDR_CONFIG__ROW_SIZE__SHIFT 0x1c
+#define UVD_JPEG_ADDR_CONFIG__NUM_LOWER_PIPES__SHIFT 0x1e
+#define UVD_JPEG_ADDR_CONFIG__SE_ENABLE__SHIFT 0x1f
+#define UVD_JPEG_ADDR_CONFIG__NUM_PIPES_MASK 0x00000007L
+#define UVD_JPEG_ADDR_CONFIG__PIPE_INTERLEAVE_SIZE_MASK 0x00000038L
+#define UVD_JPEG_ADDR_CONFIG__MAX_COMPRESSED_FRAGS_MASK 0x000000C0L
+#define UVD_JPEG_ADDR_CONFIG__BANK_INTERLEAVE_SIZE_MASK 0x00000700L
+#define UVD_JPEG_ADDR_CONFIG__NUM_BANKS_MASK 0x00007000L
+#define UVD_JPEG_ADDR_CONFIG__SHADER_ENGINE_TILE_SIZE_MASK 0x00070000L
+#define UVD_JPEG_ADDR_CONFIG__NUM_SHADER_ENGINES_MASK 0x00180000L
+#define UVD_JPEG_ADDR_CONFIG__NUM_GPUS_MASK 0x00E00000L
+#define UVD_JPEG_ADDR_CONFIG__MULTI_GPU_TILE_SIZE_MASK 0x03000000L
+#define UVD_JPEG_ADDR_CONFIG__NUM_RB_PER_SE_MASK 0x0C000000L
+#define UVD_JPEG_ADDR_CONFIG__ROW_SIZE_MASK 0x30000000L
+#define UVD_JPEG_ADDR_CONFIG__NUM_LOWER_PIPES_MASK 0x40000000L
+#define UVD_JPEG_ADDR_CONFIG__SE_ENABLE_MASK 0x80000000L
+//UVD_GPCOM_VCPU_CMD
+#define UVD_GPCOM_VCPU_CMD__CMD_SEND__SHIFT 0x0
+#define UVD_GPCOM_VCPU_CMD__CMD__SHIFT 0x1
+#define UVD_GPCOM_VCPU_CMD__CMD_SOURCE__SHIFT 0x1f
+#define UVD_GPCOM_VCPU_CMD__CMD_SEND_MASK 0x00000001L
+#define UVD_GPCOM_VCPU_CMD__CMD_MASK 0x7FFFFFFEL
+#define UVD_GPCOM_VCPU_CMD__CMD_SOURCE_MASK 0x80000000L
+//UVD_GPCOM_VCPU_DATA0
+#define UVD_GPCOM_VCPU_DATA0__DATA0__SHIFT 0x0
+#define UVD_GPCOM_VCPU_DATA0__DATA0_MASK 0xFFFFFFFFL
+//UVD_GPCOM_VCPU_DATA1
+#define UVD_GPCOM_VCPU_DATA1__DATA1__SHIFT 0x0
+#define UVD_GPCOM_VCPU_DATA1__DATA1_MASK 0xFFFFFFFFL
+//UVD_UDEC_ADDR_CONFIG
+#define UVD_UDEC_ADDR_CONFIG__NUM_PIPES__SHIFT 0x0
+#define UVD_UDEC_ADDR_CONFIG__PIPE_INTERLEAVE_SIZE__SHIFT 0x3
+#define UVD_UDEC_ADDR_CONFIG__MAX_COMPRESSED_FRAGS__SHIFT 0x6
+#define UVD_UDEC_ADDR_CONFIG__BANK_INTERLEAVE_SIZE__SHIFT 0x8
+#define UVD_UDEC_ADDR_CONFIG__NUM_BANKS__SHIFT 0xc
+#define UVD_UDEC_ADDR_CONFIG__SHADER_ENGINE_TILE_SIZE__SHIFT 0x10
+#define UVD_UDEC_ADDR_CONFIG__NUM_SHADER_ENGINES__SHIFT 0x13
+#define UVD_UDEC_ADDR_CONFIG__NUM_GPUS__SHIFT 0x15
+#define UVD_UDEC_ADDR_CONFIG__MULTI_GPU_TILE_SIZE__SHIFT 0x18
+#define UVD_UDEC_ADDR_CONFIG__NUM_RB_PER_SE__SHIFT 0x1a
+#define UVD_UDEC_ADDR_CONFIG__ROW_SIZE__SHIFT 0x1c
+#define UVD_UDEC_ADDR_CONFIG__NUM_LOWER_PIPES__SHIFT 0x1e
+#define UVD_UDEC_ADDR_CONFIG__SE_ENABLE__SHIFT 0x1f
+#define UVD_UDEC_ADDR_CONFIG__NUM_PIPES_MASK 0x00000007L
+#define UVD_UDEC_ADDR_CONFIG__PIPE_INTERLEAVE_SIZE_MASK 0x00000038L
+#define UVD_UDEC_ADDR_CONFIG__