summaryrefslogtreecommitdiff
path: root/manuals
diff options
context:
space:
mode:
Diffstat (limited to 'manuals')
-rw-r--r--manuals/index.html7
-rw-r--r--manuals/volta/gv100/dev_bus.ref.txt316
-rw-r--r--manuals/volta/gv100/dev_display.ref.txt6028
-rw-r--r--manuals/volta/gv100/dev_fifo.ref.txt639
-rw-r--r--manuals/volta/gv100/dev_master.ref.txt363
-rw-r--r--manuals/volta/gv100/dev_pbdma.ref.txt4261
-rw-r--r--manuals/volta/gv100/dev_ram.ref.txt1269
-rw-r--r--manuals/volta/gv100/dev_timer.ref.txt79
-rw-r--r--manuals/volta/gv100/dev_usermode.ref.txt134
-rw-r--r--manuals/volta/gv100/index.html14
-rw-r--r--manuals/volta/index.html7
11 files changed, 13117 insertions, 0 deletions
diff --git a/manuals/index.html b/manuals/index.html
new file mode 100644
index 0000000..32cc7fb
--- /dev/null
+++ b/manuals/index.html
@@ -0,0 +1,7 @@
+<html>
+ <head><title>manuals</title></head>
+ <body>
+ <h1>manuals</h1>
+ <a href="volta">volta</a><br/>
+ </body>
+</html>
diff --git a/manuals/volta/gv100/dev_bus.ref.txt b/manuals/volta/gv100/dev_bus.ref.txt
new file mode 100644
index 0000000..488e265
--- /dev/null
+++ b/manuals/volta/gv100/dev_bus.ref.txt
@@ -0,0 +1,316 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+#define NV_PBUS_SW_SCRATCH(i) (0x00001580+(i)*4) /* RW-4A */
+#define NV_PBUS_SW_SCRATCH__SIZE_1 32 /* */
+#define NV_PBUS_SW_SCRATCH_FIELD 31:0 /* RWIVF */
+#define NV_PBUS_SW_SCRATCH_FIELD_INIT 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_0 0x00001100 /* RW-4R */
+#define NV_PBUS_INTR_0_PRI_SQUASH 1:1 /* RWIVF */
+#define NV_PBUS_INTR_0_PRI_SQUASH_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_PRI_SQUASH_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_PRI_SQUASH_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_PRI_FECSERR 2:2 /* RWIVF */
+#define NV_PBUS_INTR_0_PRI_FECSERR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_PRI_FECSERR_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_PRI_FECSERR_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_PRI_TIMEOUT 3:3 /* RWIVF */
+#define NV_PBUS_INTR_0_PRI_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_PRI_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_PRI_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_FB_REQ_TIMEOUT 4:4 /* RWIVF */
+#define NV_PBUS_INTR_0_FB_REQ_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_FB_REQ_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_FB_REQ_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_FB_ACK_TIMEOUT 5:5 /* RWIVF */
+#define NV_PBUS_INTR_0_FB_ACK_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_FB_ACK_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_FB_ACK_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_FB_ACK_EXTRA 6:6 /* RWIVF */
+#define NV_PBUS_INTR_0_FB_ACK_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_FB_ACK_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_FB_ACK_EXTRA_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_FB_RDATA_TIMEOUT 7:7 /* RWIVF */
+#define NV_PBUS_INTR_0_FB_RDATA_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_FB_RDATA_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_FB_RDATA_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_FB_RDATA_EXTRA 8:8 /* RWIVF */
+#define NV_PBUS_INTR_0_FB_RDATA_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_FB_RDATA_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_FB_RDATA_EXTRA_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_SW 26:26 /* RWIVF */
+#define NV_PBUS_INTR_0_SW_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_SW_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_SW_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_POSTED_DEADLOCK_TIMEOUT 27:27 /* RWIVF */
+#define NV_PBUS_INTR_0_POSTED_DEADLOCK_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_POSTED_DEADLOCK_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_POSTED_DEADLOCK_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_0_ACCESS_TIMEOUT 31:31 /* RWIVF */
+#define NV_PBUS_INTR_0_ACCESS_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PBUS_INTR_0_ACCESS_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PBUS_INTR_0_ACCESS_TIMEOUT_RESET 0x00000001 /* -W--C */
+#define NV_PBUS_INTR_EN_0 0x00001140 /* RW-4R */
+#define NV_PBUS_INTR_EN_0_PRI_SQUASH 1:1 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_PRI_SQUASH_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_PRI_SQUASH_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_PRI_FECSERR 2:2 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_PRI_FECSERR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_PRI_FECSERR_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_PRI_TIMEOUT 3:3 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_PRI_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_PRI_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_FB_REQ_TIMEOUT 4:4 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_FB_REQ_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_FB_REQ_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_FB_ACK_TIMEOUT 5:5 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_FB_ACK_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_FB_ACK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_FB_ACK_EXTRA 6:6 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_FB_ACK_EXTRA_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_FB_ACK_EXTRA_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_TIMEOUT 7:7 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_EXTRA 8:8 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_EXTRA_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_FB_RDATA_EXTRA_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_SW 26:26 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_SW_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_SW_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_POSTED_DEADLOCK_TIMEOUT 27:27 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_POSTED_DEADLOCK_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_POSTED_DEADLOCK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_0_ACCESS_TIMEOUT 31:31 /* RWIVF */
+#define NV_PBUS_INTR_EN_0_ACCESS_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_0_ACCESS_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1 0x00001144 /* RW-4R */
+#define NV_PBUS_INTR_EN_1_PRI_SQUASH 1:1 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_PRI_SQUASH_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_PRI_SQUASH_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_PRI_FECSERR 2:2 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_PRI_FECSERR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_PRI_FECSERR_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_PRI_TIMEOUT 3:3 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_PRI_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_PRI_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_FB_REQ_TIMEOUT 4:4 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_FB_REQ_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_FB_REQ_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_FB_ACK_TIMEOUT 5:5 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_FB_ACK_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_FB_ACK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_FB_ACK_EXTRA 6:6 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_FB_ACK_EXTRA_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_FB_ACK_EXTRA_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_TIMEOUT 7:7 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_EXTRA 8:8 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_EXTRA_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_FB_RDATA_EXTRA_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_SW 26:26 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_SW_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_SW_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_POSTED_DEADLOCK_TIMEOUT 27:27 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_POSTED_DEADLOCK_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_POSTED_DEADLOCK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_INTR_EN_1_ACCESS_TIMEOUT 31:31 /* RWIVF */
+#define NV_PBUS_INTR_EN_1_ACCESS_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_INTR_EN_1_ACCESS_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_SW_INTR_0 0x00001150 /* -W-4R */
+#define NV_PBUS_SW_INTR_0_SET 0:0 /* -W-VF */
+#define NV_PBUS_SW_INTR_0_SET_PENDING 0x00000001 /* -W--V */
+#define NV_PBUS_SW_INTR_1 0x00001154 /* RW-4R */
+#define NV_PBUS_SW_INTR_1_SCRATCH 31:0 /* RWIVF */
+#define NV_PBUS_SW_INTR_1_SCRATCH_DATA 0x00000000 /* RWI-V */
+#define NV_PBUS_SW_INTR_2 0x00001158 /* RW-4R */
+#define NV_PBUS_SW_INTR_2_SCRATCH 31:0 /* RWIVF */
+#define NV_PBUS_SW_INTR_2_SCRATCH_DATA 0x00000000 /* RWI-V */
+#define NV_PBUS_SW_INTR_3 0x0000115C /* RW-4R */
+#define NV_PBUS_SW_INTR_3_SCRATCH 31:0 /* RWIVF */
+#define NV_PBUS_SW_INTR_3_SCRATCH_FLAG 0x00000000 /* RWI-V */
+#define NV_PBUS_SW_INTR_4 0x00001160 /* RW-4R */
+#define NV_PBUS_SW_INTR_4_SCRATCH 31:0 /* RWIVF */
+#define NV_PBUS_SW_INTR_4_SCRATCH_FLAG 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR0_WINDOW 0x00001700 /* RW-4R */
+#define NV_PBUS_BAR0_WINDOW_BASE 23:0 /* RWIUF */
+#define NV_PBUS_BAR0_WINDOW_BASE_0 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR0_WINDOW_TARGET 25:24 /* RWIUF */
+#define NV_PBUS_BAR0_WINDOW_TARGET_VID_MEM 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR0_WINDOW_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PBUS_BAR0_WINDOW_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PBUS_BAR0_WINDOW_BASE_SHIFT 16 /* */
+#define NV_PBUS_BAR1_BLOCK 0x00001704 /* RW-4R */
+#define NV_PBUS_BAR1_BLOCK_MAP 29:0 /* */
+#define NV_PBUS_BAR1_BLOCK_PTR 27:0 /* RWIUF */
+#define NV_PBUS_BAR1_BLOCK_PTR_0 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR1_BLOCK_TARGET 29:28 /* RWIUF */
+#define NV_PBUS_BAR1_BLOCK_TARGET_VID_MEM 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR1_BLOCK_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PBUS_BAR1_BLOCK_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PBUS_BAR1_BLOCK_MODE 31:31 /* RWIUF */
+#define NV_PBUS_BAR1_BLOCK_MODE_PHYSICAL 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR1_BLOCK_MODE_VIRTUAL 0x00000001 /* RW--V */
+#define NV_PBUS_BAR1_BLOCK_PTR_SHIFT 12 /* */
+#define NV_PBUS_BIND_STATUS 0x00001710 /* R--4R */
+#define NV_PBUS_BIND_STATUS_BAR1_PENDING 0:0 /* R-IUF */
+#define NV_PBUS_BIND_STATUS_BAR1_PENDING_EMPTY 0x00000000 /* R-I-V */
+#define NV_PBUS_BIND_STATUS_BAR1_PENDING_BUSY 0x00000001 /* R---V */
+#define NV_PBUS_BIND_STATUS_BAR1_OUTSTANDING 1:1 /* R-IUF */
+#define NV_PBUS_BIND_STATUS_BAR1_OUTSTANDING_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_BIND_STATUS_BAR1_OUTSTANDING_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_BIND_STATUS_BAR2_PENDING 2:2 /* R-IUF */
+#define NV_PBUS_BIND_STATUS_BAR2_PENDING_EMPTY 0x00000000 /* R-I-V */
+#define NV_PBUS_BIND_STATUS_BAR2_PENDING_BUSY 0x00000001 /* R---V */
+#define NV_PBUS_BIND_STATUS_BAR2_OUTSTANDING 3:3 /* R-IUF */
+#define NV_PBUS_BIND_STATUS_BAR2_OUTSTANDING_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_BIND_STATUS_BAR2_OUTSTANDING_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_BAR2_BLOCK 0x00001714 /* RW-4R */
+#define NV_PBUS_BAR2_BLOCK_MAP 29:0 /* */
+#define NV_PBUS_BAR2_BLOCK_PTR 27:0 /* RWIUF */
+#define NV_PBUS_BAR2_BLOCK_PTR_0 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR2_BLOCK_TARGET 29:28 /* RWIUF */
+#define NV_PBUS_BAR2_BLOCK_TARGET_VID_MEM 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR2_BLOCK_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PBUS_BAR2_BLOCK_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PBUS_BAR2_BLOCK_MODE 31:31 /* RWIUF */
+#define NV_PBUS_BAR2_BLOCK_MODE_PHYSICAL 0x00000000 /* RWI-V */
+#define NV_PBUS_BAR2_BLOCK_MODE_VIRTUAL 0x00000001 /* RW--V */
+#define NV_PBUS_BAR2_BLOCK_PTR_SHIFT 12 /* */
+#define NV_PBUS_EXT_CG 0x00001C00 /* RW-4R */
+#define NV_PBUS_EXT_CG_IDLE_CG_DLY_CNT 5:0 /* RWIVF */
+#define NV_PBUS_EXT_CG_IDLE_CG_DLY_CNT_HWINIT 0x00000000 /* RWI-V */
+#define NV_PBUS_EXT_CG_IDLE_CG_DLY_CNT__PROD 0x00000002 /* RW--V */
+#define NV_PBUS_EXT_CG_IDLE_CG_EN 6:6 /* RWIVF */
+#define NV_PBUS_EXT_CG_IDLE_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_EXT_CG_IDLE_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_EXT_CG_IDLE_CG_EN__PROD 0x00000001 /* RW--V */
+#define NV_PBUS_EXT_CG_STALL_CG_EN 14:14 /* RWIVF */
+#define NV_PBUS_EXT_CG_STALL_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_EXT_CG_STALL_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_EXT_CG_STALL_CG_EN__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG_WAKEUP_DLY_CNT 19:16 /* RWIVF */
+#define NV_PBUS_EXT_CG_WAKEUP_DLY_CNT_HWINIT 0x00000000 /* RWI-V */
+#define NV_PBUS_EXT_CG_WAKEUP_DLY_CNT__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1 0x00001C04 /* RW-4R */
+#define NV_PBUS_EXT_CG1_MONITOR_CG_EN 0:0 /* RWIVF */
+#define NV_PBUS_EXT_CG1_MONITOR_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PBUS_EXT_CG1_MONITOR_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PBUS_EXT_CG1_MONITOR_CG_EN__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG 9:1 /* */
+#define NV_PBUS_EXT_CG1_SLCG_ENABLED 0x00000000 /* */
+#define NV_PBUS_EXT_CG1_SLCG_DISABLED 0x000001ff /* */
+#define NV_PBUS_EXT_CG1_SLCG__PROD 0x00000000 /* */
+#define NV_PBUS_EXT_CG1_SLCG_BL 1:1 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_BL_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_BL_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_BL__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_C11 2:2 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_C11_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_C11_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_C11__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_MAP 3:3 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_MAP_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_MAP_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_MAP__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_PRI 4:4 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_PRI_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_PRI_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_PRI__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_UNROLL 5:5 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_UNROLL_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_UNROLL_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_UNROLL__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_ASMBL 6:6 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_ASMBL_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_ASMBL_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_ASMBL__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_ROLL 7:7 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_ROLL_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_ROLL_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_ROLL__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_IFR 8:8 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_IFR_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_IFR_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_IFR__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_PM 9:9 /* RWIVF */
+#define NV_PBUS_EXT_CG1_SLCG_PM_ENABLED 0x00000000 /* RW--V */
+#define NV_PBUS_EXT_CG1_SLCG_PM_DISABLED 0x00000001 /* RWI-V */
+#define NV_PBUS_EXT_CG1_SLCG_PM__PROD 0x00000000 /* RW--V */
+#define NV_PBUS_IFR_STATUS1 0x00001724 /* R--4R */
+#define NV_PBUS_IFR_STATUS1_BAR0ADDR 23:0 /* R-IVF */
+#define NV_PBUS_IFR_STATUS1_BAR0ADDR_INIT 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_STATUS1_IFF_DONE 27:27 /* R-IVF */
+#define NV_PBUS_IFR_STATUS1_IFF_DONE_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_STATUS1_IFF_DONE_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_STATUS1_IDLE 29:29 /* R-IVF */
+#define NV_PBUS_IFR_STATUS1_IDLE_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_STATUS1_IDLE_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_STATUS1_LASTEXEC 30:30 /* R-IVF */
+#define NV_PBUS_IFR_STATUS1_LASTEXEC_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_STATUS1_LASTEXEC_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_STATUS1_READINRMW 31:31 /* R-IVF */
+#define NV_PBUS_IFR_STATUS1_READINRMW_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_STATUS1_READINRMW_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR 0x00001728 /* R--4R */
+#define NV_PBUS_IFR_ERROR_BADSIG 0:0 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_BADSIG_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_BADSIG_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_FAILSAFE_TIMEOUT 1:1 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_FAILSAFE_TIMEOUT_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_FAILSAFE_TIMEOUT_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_BADPARITY 8:8 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_BADPARITY_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_BADPARITY_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_BADROMLEN 12:12 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_BADROMLEN_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_BADROMLEN_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_BADCHECKSUM 16:16 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_BADCHECKSUM_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_BADCHECKSUM_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_BADFORMAT 20:20 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_BADFORMAT_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_BADFORMAT_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_PRI_ERROR 21:21 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_PRI_ERROR_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_PRI_ERROR_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_RESENSE_TIMEOUT 23:23 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_RESENSE_TIMEOUT_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_RESENSE_TIMEOUT_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_BADFIELDSPEC 24:24 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_BADFIELDSPEC_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_BADFIELDSPEC_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_BADSPACEID 25:25 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_BADSPACEID_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_BADSPACEID_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_BADFUSELEN 26:26 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_BADFUSELEN_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_BADFUSELEN_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_BADCMDOP 27:27 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_BADCMDOP_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_BADCMDOP_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_IFR_ERROR_IFF_PRI_ERROR 29:29 /* R-IVF */
+#define NV_PBUS_IFR_ERROR_IFF_PRI_ERROR_TRUE 0x00000001 /* R---V */
+#define NV_PBUS_IFR_ERROR_IFF_PRI_ERROR_FALSE 0x00000000 /* R-I-V */
+#define NV_PBUS_LVDS_USER 0x00001800 /* RW-4R */
+#define NV_PBUS_LVDS_USER_VALUE 3:0 /* RWIVF */
+#define NV_PBUS_LVDS_USER_VALUE_INIT 0x0000000F /* RWI-V */
diff --git a/manuals/volta/gv100/dev_display.ref.txt b/manuals/volta/gv100/dev_display.ref.txt
new file mode 100644
index 0000000..e287338
--- /dev/null
+++ b/manuals/volta/gv100/dev_display.ref.txt
@@ -0,0 +1,6028 @@
+Copyright (c) 2018 NVIDIA Corporation
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+#define NV_PDISP_FE 0x00615FFF:0x00610000 /* RW--D */
+#define NV_PDISP_HEADS 8 /* */
+#define NV_PDISP_SORS 8 /* */
+#define NV_PDISP_PIORS 4 /* */
+#define NV_PDISP_MAX_HEAD 4 /* */
+#define NV_PDISP_MAX_DAC 0 /* */
+#define NV_PDISP_MAX_SOR 4 /* */
+#define NV_PDISP_MAX_PIOR 3 /* */
+#define NV_PDISP_CHANNELS 84 /* */
+#define NV_PDISP_CHN_NUM_CORE 0 /* */
+#define NV_PDISP_CHN_NUM_WIN(i) (1+(i)) /* */
+#define NV_PDISP_CHN_NUM_WIN__SIZE_1 32 /* */
+#define NV_PDISP_CHN_NUM_WINIM(i) (33+(i)) /* */
+#define NV_PDISP_CHN_NUM_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_CHN_NUM_CURS(i) (73+(i)) /* */
+#define NV_PDISP_CHN_NUM_CURS__SIZE_1 8 /* */
+#define NV_PDISP_CHN_NUM_PCALC 82 /* */
+#define NV_PDISP_CHN_NUM_SUPERVISOR 83 /* */
+#define NV_PDISP_EXCEPT_CHN_NUM_CORE 0 /* */
+#define NV_PDISP_EXCEPT_CHN_NUM_WIN(i) (1+(i)) /* */
+#define NV_PDISP_EXCEPT_CHN_NUM_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_CLASSES 0x00610000 /* R--4R */
+#define NV_PDISP_FE_CLASSES_HW_REV 3:0 /* R--UF */
+#define NV_PDISP_FE_CLASSES_API_REV 7:4 /* R--UF */
+#define NV_PDISP_FE_CLASSES_CLASS_REV 15:8 /* R--UF */
+#define NV_PDISP_FE_CLASSES_CLASS_ID 31:16 /* R--UF */
+#define NV_PDISP_FE_CLASSES_0 3278897936 /* */
+#define NV_PDISP_FE_INST_MEM0 0x00610010 /* RW-4R */
+#define NV_PDISP_FE_INST_MEM0_TARGET 1:0 /* RWIVF */
+#define NV_PDISP_FE_INST_MEM0_TARGET_PHYS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_INST_MEM0_TARGET_PHYS_NVM 0x00000001 /* RW--V */
+#define NV_PDISP_FE_INST_MEM0_TARGET_PHYS_PCI 0x00000002 /* RW--V */
+#define NV_PDISP_FE_INST_MEM0_TARGET_PHYS_PCI_COHERENT 0x00000003 /* RW--V */
+#define NV_PDISP_FE_INST_MEM0_STATUS 3:3 /* RWIVF */
+#define NV_PDISP_FE_INST_MEM0_STATUS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_INST_MEM0_STATUS_INVALID 0x00000000 /* RW--V */
+#define NV_PDISP_FE_INST_MEM0_STATUS_VALID 0x00000001 /* RW--V */
+#define NV_PDISP_FE_INST_MEM1 0x00610014 /* RW-4R */
+#define NV_PDISP_FE_INST_MEM1_ADDR 30:0 /* RWIUF */
+#define NV_PDISP_FE_INST_MEM1_ADDR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_IP_VER 0x00610018 /* R--4R */
+#define NV_PDISP_FE_IP_VER_DEV 7:0 /* R-IVF */
+#define NV_PDISP_FE_IP_VER_DEV_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_IP_VER_ECO 15:8 /* R-IVF */
+#define NV_PDISP_FE_IP_VER_ECO_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_IP_VER_MINOR 23:16 /* R-IVF */
+#define NV_PDISP_FE_IP_VER_MINOR_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_IP_VER_MAJOR 31:24 /* R-IVF */
+#define NV_PDISP_FE_IP_VER_MAJOR_INIT 0x00000003 /* R-I-V */
+#define NV_PDISP_FE_ACQ_DELAY 0x00610040 /* RW-4R */
+#define NV_PDISP_FE_ACQ_DELAY_SEMA 7:0 /* RWIUF */
+#define NV_PDISP_FE_ACQ_DELAY_SEMA_INIT 0x0000000a /* RWI-V */
+#define NV_PDISP_FE_ACQ_DELAY_SEMA_10US 0x0000000a /* RW--V */
+#define NV_PDISP_FE_ACQ_DELAY_SYNCPT 15:8 /* RWIUF */
+#define NV_PDISP_FE_ACQ_DELAY_SYNCPT_INIT 0x0000000a /* RWI-V */
+#define NV_PDISP_FE_ACQ_DELAY_SYNCPT_10US 0x0000000a /* RW--V */
+#define NV_PDISP_FE_HW_SYS_CAP 0x00610060 /* R--4R */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD0_EXISTS 0:0 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD0_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD0_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD1_EXISTS 1:1 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD1_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD1_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD2_EXISTS 2:2 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD2_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD2_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD3_EXISTS 3:3 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD3_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD3_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD4_EXISTS 4:4 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD4_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD4_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD5_EXISTS 5:5 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD5_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD5_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD6_EXISTS 6:6 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD6_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD6_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD7_EXISTS 7:7 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD7_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD7_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD_EXISTS(i) (0+(i)):(0+(i)) /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD_EXISTS__SIZE_1 8 /* */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_HEAD_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR0_EXISTS 8:8 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR0_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR0_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR1_EXISTS 9:9 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR1_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR1_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR2_EXISTS 10:10 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR2_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR2_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR3_EXISTS 11:11 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR3_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR3_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR4_EXISTS 12:12 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR4_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR4_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR5_EXISTS 13:13 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR5_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR5_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR6_EXISTS 14:14 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR6_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR6_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR7_EXISTS 15:15 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR7_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR7_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR_EXISTS(i) (8+(i)):(8+(i)) /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR_EXISTS__SIZE_1 8 /* */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAP_SOR_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB 0x00610064 /* R--4R */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW0_EXISTS 0:0 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW0_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW0_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW1_EXISTS 1:1 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW1_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW1_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW2_EXISTS 2:2 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW2_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW2_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW3_EXISTS 3:3 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW3_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW3_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW4_EXISTS 4:4 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW4_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW4_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW5_EXISTS 5:5 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW5_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW5_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW6_EXISTS 6:6 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW6_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW6_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW7_EXISTS 7:7 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW7_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW7_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW8_EXISTS 8:8 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW8_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW8_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW9_EXISTS 9:9 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW9_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW9_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW10_EXISTS 10:10 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW10_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW10_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW11_EXISTS 11:11 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW11_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW11_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW12_EXISTS 12:12 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW12_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW12_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW13_EXISTS 13:13 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW13_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW13_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW14_EXISTS 14:14 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW14_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW14_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW15_EXISTS 15:15 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW15_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW15_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW16_EXISTS 16:16 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW16_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW16_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW17_EXISTS 17:17 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW17_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW17_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW18_EXISTS 18:18 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW18_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW18_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW19_EXISTS 19:19 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW19_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW19_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW20_EXISTS 20:20 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW20_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW20_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW21_EXISTS 21:21 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW21_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW21_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW22_EXISTS 22:22 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW22_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW22_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW23_EXISTS 23:23 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW23_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW23_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW24_EXISTS 24:24 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW24_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW24_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW25_EXISTS 25:25 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW25_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW25_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW26_EXISTS 26:26 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW26_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW26_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW27_EXISTS 27:27 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW27_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW27_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW28_EXISTS 28:28 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW28_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW28_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW29_EXISTS 29:29 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW29_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW29_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW30_EXISTS 30:30 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW30_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW30_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW31_EXISTS 31:31 /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW31_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW31_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW_EXISTS(i) (0+(i)):(0+(i)) /* R--VF */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW_EXISTS__SIZE_1 32 /* */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW_EXISTS_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_HW_SYS_CAPB_WINDOW_EXISTS_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_HW_LOCK_PIN_CAP 0x00610068 /* R--4R */
+#define NV_PDISP_FE_HW_LOCK_PIN_CAP_FLIP_LOCK_PINS 3:0 /* R--UF */
+#define NV_PDISP_FE_HW_LOCK_PIN_CAP_SCAN_LOCK_PINS 7:4 /* R--UF */
+#define NV_PDISP_FE_HW_LOCK_PIN_CAP_STEREO_PINS 11:8 /* R--UF */
+#define NV_PDISP_FE_MISC_CONFIGA 0x00610074 /* R--4R */
+#define NV_PDISP_FE_MISC_CONFIGA_NUM_HEADS 3:0 /* R--UF */
+#define NV_PDISP_FE_MISC_CONFIGA_NUM_SORS 11:8 /* R--UF */
+#define NV_PDISP_FE_MISC_CONFIGA_NUM_WINDOWS 25:20 /* R--UF */
+#define NV_PDISP_FE_LOCK_CAPS 0x00610078 /* RWI4R */
+#define NV_PDISP_FE_LOCK_CAPS_LOCK 0:0 /* RWIVF */
+#define NV_PDISP_FE_LOCK_CAPS_LOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_LOCK_CAPS_LOCK_UNLOCKED 0x00000000 /* RW--V */
+#define NV_PDISP_FE_LOCK_CAPS_LOCK_LOCKED 0x00000001 /* RW--V */
+#define NV_PDISP_FE_TRAP(i) (0x00610360+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_TRAP__SIZE_1 32 /* */
+#define NV_PDISP_FE_TRAP_METHOD 13:2 /* RWIUF */
+#define NV_PDISP_FE_TRAP_METHOD_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_TRAP_CHN_NUM 22:16 /* RWIUF */
+#define NV_PDISP_FE_TRAP_CHN_NUM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_TRAP_CHN_TYPE 22:16 /* RWIUF */
+#define NV_PDISP_FE_TRAP_CHN_TYPE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_TRAP_CHN_TYPE_CORE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_TRAP_CHN_TYPE_WIN 0x00000001 /* RW--V */
+#define NV_PDISP_FE_TRAP_CHN_TYPE_WRBK 0x00000002 /* RW--V */
+#define NV_PDISP_FE_TRAP_MODE 30:28 /* RWIVF */
+#define NV_PDISP_FE_TRAP_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_TRAP_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_TRAP_MODE_METHOD_CHANNEL 0x00000001 /* RW--V */
+#define NV_PDISP_FE_TRAP_MODE_METHOD_CHANNEL_TYPE 0x00000002 /* RW--V */
+#define NV_PDISP_FE_TRAP_MODE_ALL_CHANNEL 0x00000003 /* RW--V */
+#define NV_PDISP_FE_TRAP_MODE_ALL_CHANNEL_TYPE 0x00000004 /* RW--V */
+#define NV_PDISP_FE_ERRMASK(i) (0x006103E0+(i)*8) /* RW-4A */
+#define NV_PDISP_FE_ERRMASK__SIZE_1 32 /* */
+#define NV_PDISP_FE_ERRMASK_METHOD 13:2 /* RWIUF */
+#define NV_PDISP_FE_ERRMASK_METHOD_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASK_CHN_MODE 16:16 /* RWIUF */
+#define NV_PDISP_FE_ERRMASK_CHN_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASK_CHN_MODE_INSTANCE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_CHN_MODE_TYPE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_CHN_NUM 26:20 /* RWIUF */
+#define NV_PDISP_FE_ERRMASK_CHN_NUM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASK_CHN_TYPE 26:20 /* RWIUF */
+#define NV_PDISP_FE_ERRMASK_CHN_TYPE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASK_CHN_TYPE_CORE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_CHN_TYPE_WIN 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_CHN_TYPE_WRBK 0x00000002 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE 31:29 /* RWIVF */
+#define NV_PDISP_FE_ERRMASK_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASK_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE_ALL 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE_ALL_ARG 0x00000002 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE_ALL_STATE 0x00000003 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE_METHOD_ARG 0x00000004 /* RW--V */
+#define NV_PDISP_FE_ERRMASK_MODE_STATE_CODE 0x00000005 /* RW--V */
+#define NV_PDISP_FE_ERRMASKCODE(i) (0x006103E4+(i)*8) /* RW-4A */
+#define NV_PDISP_FE_ERRMASKCODE__SIZE_1 32 /* */
+#define NV_PDISP_FE_ERRMASKCODE_CODE 23:0 /* RWIUF */
+#define NV_PDISP_FE_ERRMASKCODE_CODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ERRMASKCODE_CODE_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ERRMASKCODE_MASK_SIZE 28:24 /* RWIUF */
+#define NV_PDISP_FE_ERRMASKCODE_MASK_SIZE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE 0x006104E0 /* RW-4R */
+#define NV_PDISP_FE_CHNCTL_CORE_ALLOCATION 0:0 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_ALLOCATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_ALLOCATION_DEALLOCATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_ALLOCATION_ALLOCATE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_CONNECTION 1:1 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_CONNECTION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_CONNECTION_DISCONNECT 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_CONNECTION_CONNECT 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_PUTPTR_WRITE 4:4 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_PUTPTR_WRITE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_PUTPTR_WRITE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_PUTPTR_WRITE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_EFI 5:5 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_EFI_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_EFI_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_EFI_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_SKIP_NOTIF 9:9 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_SKIP_NOTIF_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_SKIP_NOTIF_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_SKIP_NOTIF_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_IGNORE_INTERLOCK 11:11 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_IGNORE_INTERLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_IGNORE_INTERLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_IGNORE_INTERLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_ERRCHECK_WHEN_DISCONNECTED 12:12 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_ERRCHECK_WHEN_DISCONNECTED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_ERRCHECK_WHEN_DISCONNECTED_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_ERRCHECK_WHEN_DISCONNECTED_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_TRASH_MODE 14:13 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_TRASH_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_TRASH_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_TRASH_MODE_TRASH_ONLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_TRASH_MODE_TRASH_AND_ABORT 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_INTR_DURING_SHTDWN 15:15 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CORE_INTR_DURING_SHTDWN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CORE_INTR_DURING_SHTDWN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CORE_INTR_DURING_SHTDWN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN(i) (0x006104E4+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_CHNCTL_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_CHNCTL_WIN_ALLOCATION 0:0 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_ALLOCATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_ALLOCATION_DEALLOCATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_ALLOCATION_ALLOCATE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_CONNECTION 1:1 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_CONNECTION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_CONNECTION_DISCONNECT 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_CONNECTION_CONNECT 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_PUTPTR_WRITE 4:4 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_PUTPTR_WRITE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_PUTPTR_WRITE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_PUTPTR_WRITE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SYNCPOINT 6:6 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SYNCPOINT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SYNCPOINT_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SYNCPOINT_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_TIMESTAMP 7:7 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_TIMESTAMP_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_TIMESTAMP_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_TIMESTAMP_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_PI 8:8 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_PI_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_PI_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_PI_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_NOTIF 9:9 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_NOTIF_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_NOTIF_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_NOTIF_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SEMA 10:10 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SEMA_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SEMA_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_SKIP_SEMA_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_INTERLOCK 11:11 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_INTERLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_INTERLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_IGNORE_INTERLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_TRASH_MODE 14:13 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WIN_TRASH_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WIN_TRASH_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_TRASH_MODE_TRASH_ONLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WIN_TRASH_MODE_TRASH_AND_ABORT 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM(i) (0x00610564+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_CHNCTL_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_CHNCTL_WINIM_ALLOCATION 0:0 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WINIM_ALLOCATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WINIM_ALLOCATION_DEALLOCATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_ALLOCATION_ALLOCATE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_CONNECTION 1:1 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WINIM_CONNECTION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WINIM_CONNECTION_DISCONNECT 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_CONNECTION_CONNECT 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_PUTPTR_WRITE 4:4 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WINIM_PUTPTR_WRITE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WINIM_PUTPTR_WRITE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_PUTPTR_WRITE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_IGNORE_INTERLOCK 11:11 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WINIM_IGNORE_INTERLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WINIM_IGNORE_INTERLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_IGNORE_INTERLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_TRASH_MODE 14:13 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_WINIM_TRASH_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_WINIM_TRASH_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_TRASH_MODE_TRASH_ONLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_WINIM_TRASH_MODE_TRASH_AND_ABORT 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS(i) (0x00610604+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_CHNCTL_CURS__SIZE_1 8 /* */
+#define NV_PDISP_FE_CHNCTL_CURS_ALLOCATION 0:0 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CURS_ALLOCATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CURS_ALLOCATION_DEALLOCATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_ALLOCATION_ALLOCATE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_LOCK_PIO_FIFO 4:4 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CURS_LOCK_PIO_FIFO_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CURS_LOCK_PIO_FIFO_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_LOCK_PIO_FIFO_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_IGNORE_INTERLOCK 11:11 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CURS_IGNORE_INTERLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CURS_IGNORE_INTERLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_IGNORE_INTERLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_TRASH_MODE 14:13 /* RWIVF */
+#define NV_PDISP_FE_CHNCTL_CURS_TRASH_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CHNCTL_CURS_TRASH_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_TRASH_MODE_TRASH_ONLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CHNCTL_CURS_TRASH_MODE_TRASH_AND_ABORT 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CHNSTATUS_CORE 0x00610630 /* R--4R */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE 3:0 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_READ_METHOD 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_REQ_METHOD_INFO 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_CHK_METHOD_INFO 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_CHK_CTXDMA 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_CTX_DMA_LOOKUP 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_WAIT_FOR_STG2 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_WAIT_FOR_UPD 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG1_STATE_EXCEPTION 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE 7:4 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_SEND_PUBLIC 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_SEND_MISC 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_SEND_LIMIT 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_SEND_BASE 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STG2_STATE_SEND_SETPARAMSCRSR 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE 20:16 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_DEALLOC 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_DEALLOC_LIMBO 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_VBIOS_INIT1 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_VBIOS_INIT2 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_VBIOS_OPERATION 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_EFI_INIT1 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_EFI_INIT2 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_EFI_OPERATION 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_UNCONNECTED 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_INIT1 0x00000009 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_INIT2 0x0000000A /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_IDLE 0x0000000B /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_BUSY 0x0000000C /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_SHUTDOWN1 0x0000000D /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATE_SHUTDOWN2 0x0000000E /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_FIRSTTIME 24:24 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_FIRSTTIME_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_FIRSTTIME_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_FIRSTTIME_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_FIFO 25:25 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_FIFO_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_FIFO_EMPTY 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_FIFO_NOTEMPTY 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_READ_PENDING 26:26 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_READ_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_READ_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_READ_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_NOTIF_WRITE_PENDING 27:27 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_NOTIF_WRITE_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_NOTIF_WRITE_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_NOTIF_WRITE_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_SUBDEVICE_STATUS 29:29 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_SUBDEVICE_STATUS_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_SUBDEVICE_STATUS_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_SUBDEVICE_STATUS_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_QUIESCENT 30:30 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_QUIESCENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_QUIESCENT_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_QUIESCENT_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_EXEC 31:31 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_EXEC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_EXEC_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CORE_STATUS_METHOD_EXEC_RUNNING 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN(i) (0x00610664+(i)*4) /* R--4A */
+#define NV_PDISP_FE_CHNSTATUS_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE 3:0 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_READ_METHOD 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_REQ_METHOD_INFO 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_CHK_METHOD_INFO 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_CHK_CTXDMA 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_CTX_DMA_LOOKUP 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_WAIT_FOR_STG2 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_WAIT_FOR_UPD 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG1_STATE_EXCEPTION 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE 7:4 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_SEND_PUBLIC 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_SEND_MISC 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_SEND_LIMIT 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_SEND_BASE 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STG2_STATE_SEND_WIN_SETCONFIG 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE 11:8 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_IDLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_BLOCK 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_MPI 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_ILK_PH_1 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_STATE_ERRCHK 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_RDY_TO_FLIP 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_ILK_PH_2 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_CHECK_PEND_LOADV 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_SEND_UPD 0x00000009 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_PRM 0x0000000a /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_EXCEPTION 0x0000000b /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_UPD_STATE_WAIT_ILK_ABORT 0x0000000c /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE 19:16 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_DEALLOC 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_UNCONNECTED 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_INIT1 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_INIT2 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_IDLE 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_BUSY 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_SHUTDOWN1 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATE_SHUTDOWN2 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_FIRSTTIME 24:24 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_FIRSTTIME_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_FIRSTTIME_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_FIRSTTIME_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_FIFO 25:25 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_FIFO_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_FIFO_EMPTY 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_FIFO_NOTEMPTY 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_READ_PENDING 26:26 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_READ_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_READ_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_READ_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_WRITE_PENDING 27:27 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_WRITE_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_WRITE_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_WRITE_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_SUBDEVICE_STATUS 29:29 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_SUBDEVICE_STATUS_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_SUBDEVICE_STATUS_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_SUBDEVICE_STATUS_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_QUIESCENT 30:30 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_QUIESCENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_QUIESCENT_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_QUIESCENT_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_EXEC 31:31 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_EXEC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_EXEC_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WIN_STATUS_METHOD_EXEC_RUNNING 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM(i) (0x006106E4+(i)*4) /* R--4A */
+#define NV_PDISP_FE_CHNSTATUS_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE 3:0 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_EXCEPT 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_SEND_PUBLIC 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_WAIT_ILK1 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_WAIT_FLIP 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_WAIT_ILK2 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_WAIT_LOADV 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_SEND_UPDATE 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_MP_STATE_WAIT_PRM 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE 19:16 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_DEALLOC 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_UNCONNECTED 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_INIT1 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_INIT2 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_IDLE 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_BUSY 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_SHUTDOWN1 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATE_SHUTDOWN2 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_FIRSTTIME 24:24 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_FIRSTTIME_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_FIRSTTIME_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_FIRSTTIME_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_FIFO 25:25 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_FIFO_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_FIFO_EMPTY 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_FIFO_NOTEMPTY 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_READ_PENDING 26:26 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_READ_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_READ_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_READ_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_WRITE_PENDING 27:27 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_WRITE_PENDING_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_WRITE_PENDING_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_WRITE_PENDING_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_SUBDEVICE_STATUS 29:29 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_SUBDEVICE_STATUS_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_SUBDEVICE_STATUS_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_SUBDEVICE_STATUS_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_QUIESCENT 30:30 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_QUIESCENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_QUIESCENT_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_QUIESCENT_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_EXEC 31:31 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_EXEC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_EXEC_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_WINIM_STATUS_METHOD_EXEC_RUNNING 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS(i) (0x00610784+(i)*4) /* R--4A */
+#define NV_PDISP_FE_CHNSTATUS_CURS__SIZE_1 8 /* */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE 3:0 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_PBERR 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_RSVD 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_SND_PUBLIC 0x00000003 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_WAIT_PUBLIC 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_ILK1_START 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_ILK1_WAIT 0x00000006 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_ILK2_START 0x00000007 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_ILK2_WAIT 0x00000008 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_CHECK_PEND_LOADV 0x00000009 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_SEND_UPD 0x0000000a /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_MP_STATE_WAIT_PRM 0x0000000b /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_FIRSTTIME 24:24 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CURS_FIRSTTIME_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_FIRSTTIME_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_FIRSTTIME_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE 18:16 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE_DEALLOC 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE_INIT1 0x00000002 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE_IDLE 0x00000004 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATE_BUSY 0x00000005 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATUS_METHOD_EXEC 31:31 /* R-IVF */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATUS_METHOD_EXEC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATUS_METHOD_EXEC_IDLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CHNSTATUS_CURS_STATUS_METHOD_EXEC_RUNNING 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN 0x006107A8 /* RW-4R */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_MODE_SWITCH 4:4 /* R--VF */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_MODE_SWITCH_NOT_IN_PROGRESS 0x00000000 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_MODE_SWITCH_IN_PROGRESS 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_SECOND_INT 24:24 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_SECOND_INT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_SECOND_INT_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_SECOND_INT_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_THIRD_INT 25:25 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_THIRD_INT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_THIRD_INT_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_SKIP_THIRD_INT_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_RESTART 31:31 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_RESTART_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_RESTART_DONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_RESTART_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_MAIN_RESTART_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD(i) (0x006107AC+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_SUPERVISOR_HEAD__SIZE_1 8 /* */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_BLANK 8:8 /* R-IVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_BLANK_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_BLANK_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_BLANK_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_BLANK 9:9 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_BLANK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_BLANK_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_BLANK_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK 10:10 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_SHUTDOWN 12:12 /* R-IVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_SHUTDOWN_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_SHUTDOWN_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_SHUTDOWN_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_SHUTDOWN 13:13 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_SHUTDOWN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_SHUTDOWN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_SHUTDOWN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOSHUTDOWN 14:14 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOSHUTDOWN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOSHUTDOWN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOSHUTDOWN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_CHANGE_VPLL 16:16 /* R-IVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_CHANGE_VPLL_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_CHANGE_VPLL_NO 0x00000000 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_WILL_CHANGE_VPLL_YES 0x00000001 /* R---V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_CHANGE_VPLL 17:17 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_CHANGE_VPLL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_CHANGE_VPLL_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_CHANGE_VPLL_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOCHANGE_VPLL 18:18 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOCHANGE_VPLL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOCHANGE_VPLL_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOCHANGE_VPLL_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_WAKEUP 20:20 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_WAKEUP_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_WAKEUP_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_WAKEUP_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_SHUTDOWN 21:21 /* RWIVF */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_SHUTDOWN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_SHUTDOWN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SUPERVISOR_HEAD_FORCE_NOBLANK_SHUTDOWN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_PBBASEHI_REGBASE 0x00000b20 /* */
+#define NV_PDISP_FE_PBBASE_REGBASE 0x00000b24 /* */
+#define NV_PDISP_FE_PBSUBDEV_REGBASE 0x00000b28 /* */
+#define NV_PDISP_FE_PBCLIENT_REGBASE 0x00000b2c /* */
+#define NV_PDISP_FE_PBBASEHI(i) (0x00610B20+(i)*16) /* RW-4A */
+#define NV_PDISP_FE_PBBASEHI__SIZE_1 73 /* */
+#define NV_PDISP_FE_PBBASEHI_PUSHBUFFER_ADDR 6:0 /* RWIUF */
+#define NV_PDISP_FE_PBBASEHI_PUSHBUFFER_ADDR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_PBBASE(i) (0x00610B24+(i)*16) /* RW-4A */
+#define NV_PDISP_FE_PBBASE__SIZE_1 73 /* */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_TARGET 1:0 /* RWIVF */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_TARGET_PHYS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_TARGET_PHYS_NVM 0x00000001 /* RW--V */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_TARGET_PHYS_PCI 0x00000002 /* RW--V */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_TARGET_PHYS_PCI_COHERENT 0x00000003 /* RW--V */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_ADDR 31:4 /* RWIUF */
+#define NV_PDISP_FE_PBBASE_PUSHBUFFER_ADDR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_PBSUBDEV(i) (0x00610B28+(i)*16) /* RW-4A */
+#define NV_PDISP_FE_PBSUBDEV__SIZE_1 73 /* */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID 11:0 /* RWIVF */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_0 0x00000001 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_1 0x00000002 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_2 0x00000004 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_3 0x00000008 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_4 0x00000010 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_5 0x00000020 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_6 0x00000040 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_7 0x00000080 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_8 0x00000100 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_9 0x00000200 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_10 0x00000400 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_11 0x00000800 /* RW--V */
+#define NV_PDISP_FE_PBSUBDEV_SUBDEVICE_ID_ALL 0x00000FFF /* RW--V */
+#define NV_PDISP_FE_PBCLIENT(i) (0x00610B2C+(i)*16) /* RW-4A */
+#define NV_PDISP_FE_PBCLIENT__SIZE_1 73 /* */
+#define NV_PDISP_FE_PBCLIENT_CLIENT_ID 13:0 /* RWIUF */
+#define NV_PDISP_FE_PBCLIENT_CLIENT_ID_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_PBBASEHI_CORE (0x00610B20+0*16) /* */
+#define NV_PDISP_FE_PBBASE_CORE (0x00610B24+0*16) /* */
+#define NV_PDISP_FE_PBSUBDEV_CORE (0x00610B28+0*16) /* */
+#define NV_PDISP_FE_PBCLIENT_CORE (0x00610B2C+0*16) /* */
+#define NV_PDISP_FE_PBBASEHI_WIN(i) (0x00610B20+(1+(i))*16) /* */
+#define NV_PDISP_FE_PBBASEHI_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBBASE_WIN(i) (0x00610B24+(1+(i))*16) /* */
+#define NV_PDISP_FE_PBBASE_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBSUBDEV_WIN(i) (0x00610B28+(1+(i))*16) /* */
+#define NV_PDISP_FE_PBSUBDEV_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBCLIENT_WIN(i) (0x00610B2C+(1+(i))*16) /* */
+#define NV_PDISP_FE_PBCLIENT_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBBASEHI_WINIM(i) (0x00610B20+(33+(i))*16) /* */
+#define NV_PDISP_FE_PBBASEHI_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBBASE_WINIM(i) (0x00610B24+(33+(i))*16) /* */
+#define NV_PDISP_FE_PBBASE_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBSUBDEV_WINIM(i) (0x00610B28+(33+(i))*16) /* */
+#define NV_PDISP_FE_PBSUBDEV_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBCLIENT_WINIM(i) (0x00610B2C+(33+(i))*16) /* */
+#define NV_PDISP_FE_PBCLIENT_WINIM__SIZE_1 32 /* */
+#define NV_PDISP_FE_PBBASEHI_WRBK(i) (0x00610B20+(65+(i))*16) /* */
+#define NV_PDISP_FE_PBBASEHI_WRBK__SIZE_1 8 /* */
+#define NV_PDISP_FE_PBBASE_WRBK(i) (0x00610B24+(65+(i))*16) /* */
+#define NV_PDISP_FE_PBBASE_WRBK__SIZE_1 8 /* */
+#define NV_PDISP_FE_PBSUBDEV_WRBK(i) (0x00610B28+(65+(i))*16) /* */
+#define NV_PDISP_FE_PBSUBDEV_WRBK__SIZE_1 8 /* */
+#define NV_PDISP_FE_PBCLIENT_WRBK(i) (0x00610B2C+(65+(i))*16) /* */
+#define NV_PDISP_FE_PBCLIENT_WRBK__SIZE_1 8 /* */
+#define NV_PDISP_FE_EXCEPT(i) (0x00611020+(i)*12) /* RW-4A */
+#define NV_PDISP_FE_EXCEPT__SIZE_1 81 /* */
+#define NV_PDISP_FE_EXCEPT_METHOD_OFFSET 11:0 /* R--VF */
+#define NV_PDISP_FE_EXCEPT_METHOD_OFFSET_PBERR_INVALOP 0x00000000 /* R---V */
+#define NV_PDISP_FE_EXCEPT_METHOD_OFFSET_PBERR_PROTFAULT 0x00000000 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON 14:12 /* R--VF */
+#define NV_PDISP_FE_EXCEPT_REASON_NONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_PUSHBUFFER_ERR 0x00000001 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_TRAP 0x00000002 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_RESERVED_METHOD 0x00000003 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_INVALID_ARG 0x00000004 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_INVALID_STATE 0x00000005 /* R---V */
+#define NV_PDISP_FE_EXCEPT_REASON_UNRESOLVABLE_HANDLE 0x00000007 /* R---V */
+#define NV_PDISP_FE_EXCEPT_RESTART_MODE 29:28 /* RWIVF */
+#define NV_PDISP_FE_EXCEPT_RESTART_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_EXCEPT_RESTART_MODE_RESUME 0x00000000 /* RW--V */
+#define NV_PDISP_FE_EXCEPT_RESTART_MODE_SKIP 0x00000001 /* RW--V */
+#define NV_PDISP_FE_EXCEPT_RESTART_MODE_REPLAY 0x00000002 /* RW--V */
+#define NV_PDISP_FE_EXCEPT_RESTART 31:31 /* RWIVF */
+#define NV_PDISP_FE_EXCEPT_RESTART_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_EXCEPT_RESTART_DONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EXCEPT_RESTART_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EXCEPT_RESTART_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EXCEPTARG(i) (0x00611024+(i)*12) /* RW-4A */
+#define NV_PDISP_FE_EXCEPTARG__SIZE_1 41 /* */
+#define NV_PDISP_FE_EXCEPTARG_RDARG 31:0 /* RWIVF */
+#define NV_PDISP_FE_EXCEPTARG_RDARG_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EXCEPTARG_RDARG_PBERR_INVALOP 0x00000000 /* R---V */
+#define NV_PDISP_FE_EXCEPTARG_RDARG_PBERR_PROTFAULT 0x00000400 /* R---V */
+#define NV_PDISP_FE_EXCEPTARG_WRARG 31:0 /* -W-VF */
+#define NV_PDISP_FE_EXCEPTERR(i) (0x00611028+(i)*12) /* R--4A */
+#define NV_PDISP_FE_EXCEPTERR__SIZE_1 41 /* */
+#define NV_PDISP_FE_EXCEPTERR_CODE 23:0 /* R-IVF */
+#define NV_PDISP_FE_EXCEPTERR_CODE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EXCEPTERR_CODE_NONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_TIMEOUT 0x00611400 /* RW-4R */
+#define NV_PDISP_FE_TIMEOUT_PRI_VALUE 7:0 /* RWIVF */
+#define NV_PDISP_FE_TIMEOUT_PRI_VALUE_INIT 0x00000064 /* RWI-V */
+#define NV_PDISP_FE_TIMEOUT_BB_VALUE 15:8 /* RWIVF */
+#define NV_PDISP_FE_TIMEOUT_BB_VALUE_INIT 0x00000064 /* RWI-V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_SRC 0:0 /* R--VF */
+#define NV_PDISP_FE_TIMEOUT_STATUS_SRC_EXTERNAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_SRC_INTERNAL 0x00000001 /* R---V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_REQTYPE 1:1 /* R--VF */
+#define NV_PDISP_FE_TIMEOUT_STATUS_REQTYPE_READ 0x00000000 /* R---V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_REQTYPE_WRITE 0x00000001 /* R---V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_ADDR 21:2 /* R--VF */
+#define NV_PDISP_FE_TIMEOUT_STATUS_ERR 31:31 /* R-IVF */
+#define NV_PDISP_FE_TIMEOUT_STATUS_ERR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_TIMEOUT_STATUS_ERR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0 0x00611408 /* RW-4R */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_FE 0:0 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_FE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_FE_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_FE_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_FE_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_IHUB 1:1 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_IHUB_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_IHUB_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_IHUB_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_IHUB_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_VGA 2:2 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_VGA_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_VGA_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_VGA_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_VGA_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SEC 3:3 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SEC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SEC_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SEC_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SEC_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD0 8:8 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD0_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD0_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD0_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD1 9:9 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD1_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD1_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD1_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD2 10:10 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD2_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD2_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD2_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD3 11:11 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD3_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD3_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD3_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD4 12:12 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD4_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD4_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD4_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD5 13:13 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD5_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD5_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD5_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD6 14:14 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD6_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD6_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD6_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD7 15:15 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD7_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD7_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD7_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD(i) (8+(i)):(8+(i)) /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD__SIZE_1 8 /* */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_HEAD_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR0 16:16 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR0_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR0_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR0_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR1 17:17 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR1_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR1_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR1_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR2 18:18 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR2_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR2_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR2_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR3 19:19 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR3_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR3_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR3_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR4 20:20 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR4_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR4_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR4_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR5 21:21 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR5_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR5_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR5_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR6 22:22 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR6_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR6_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR6_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR7 23:23 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR7_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR7_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR7_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR(i) (16+(i)):(16+(i)) /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT0_SOR_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1 0x0061140C /* RW-4R */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN0 0:0 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN0_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN0_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN0_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN1 1:1 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN1_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN1_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN1_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN2 2:2 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN2_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN2_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN2_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN3 3:3 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN3_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN3_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN3_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN4 4:4 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN4_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN4_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN4_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN5 5:5 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN5_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN5_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN5_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN6 6:6 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN6_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN6_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN6_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN7 7:7 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN7_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN7_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN7_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN8 8:8 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN8_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN8_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN8_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN8_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN9 9:9 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN9_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN9_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN9_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN9_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN10 10:10 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN10_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN10_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN10_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN10_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN11 11:11 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN11_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN11_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN11_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN11_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN12 12:12 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN12_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN12_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN12_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN12_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN13 13:13 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN13_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN13_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN13_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN13_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN14 14:14 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN14_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN14_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN14_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN14_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN15 15:15 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN15_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN15_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN15_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN15_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN16 16:16 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN16_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN16_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN16_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN16_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN17 17:17 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN17_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN17_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN17_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN17_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN18 18:18 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN18_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN18_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN18_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN18_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN19 19:19 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN19_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN19_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN19_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN19_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN20 20:20 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN20_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN20_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN20_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN20_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN21 21:21 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN21_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN21_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN21_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN21_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN22 22:22 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN22_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN22_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN22_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN22_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN23 23:23 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN23_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN23_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN23_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN23_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN24 24:24 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN24_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN24_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN24_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN24_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN25 25:25 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN25_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN25_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN25_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN25_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN26 26:26 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN26_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN26_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN26_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN26_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN27 27:27 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN27_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN27_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN27_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN27_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN28 28:28 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN28_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN28_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN28_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN28_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN29 29:29 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN29_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN29_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN29_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN29_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN30 30:30 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN30_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN30_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN30_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN30_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN31 31:31 /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN31_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN31_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN31_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN31_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN__SIZE_1 32 /* */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN_LOCKED 0x00000001 /* R---V */
+#define NV_PDISP_FE_BB_BLOCK_STAT1_WIN_UNLOCK 0x00000001 /* -W--V */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY 0x00611704 /* RW-4R */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_VPLL 15:0 /* RWIUF */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_VPLL_INIT 0x00000064 /* RWI-V */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_VPLL_100US 0x00000064 /* RW--V */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_MACROPLL 31:16 /* RWIUF */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_MACROPLL_INIT 0x000000C8 /* RWI-V */
+#define NV_PDISP_FE_CMGR_LOCK_DELAY_MACROPLL_200US 0x000000C8 /* RW--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING(i) (0x00611800+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LOADV 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LOADV_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LOADV_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LOADV_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LOADV_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LAST_DATA 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LAST_DATA_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LAST_DATA_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LAST_DATA_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_LAST_DATA_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VBLANK 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VBLANK_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VBLANK_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VBLANK_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VBLANK_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VACTIVE_SPACE_VBLANK 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VACTIVE_SPACE_VBLANK_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VACTIVE_SPACE_VBLANK_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VACTIVE_SPACE_VBLANK_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_VACTIVE_SPACE_VBLANK_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_STALL 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_STALL_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_STALL_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_STALL_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_STALL_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_A 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_A_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_A_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_A_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_A_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_B 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_B_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_B_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_B_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_RG_LINE_B_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SD3_BUCKET_WALK_DONE 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SD3_BUCKET_WALK_DONE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SD3_BUCKET_WALK_DONE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SD3_BUCKET_WALK_DONE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SD3_BUCKET_WALK_DONE_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SEC_POLICY 8:8 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SEC_POLICY_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SEC_POLICY_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SEC_POLICY_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_HEAD_TIMING_SEC_POLICY_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC 0x00611840 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_OBUF_UNDERFLOW_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_0 8:8 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_1 9:9 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_2 10:10 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_3 11:11 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_4 12:12 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_5 13:13 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_6 14:14 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_7 15:15 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW(i) (8+(i)):(8+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_RBUF_OVERFLOW_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_0 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_1 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_2 18:18 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_3 19:19 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_4 20:20 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_5 21:21 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_6 22:22 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_7 23:23 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW(i) (16+(i)):(16+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_BBUF_OVERFLOW_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_0 24:24 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_1 25:25 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_2 26:26 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_3 27:27 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_4 28:28 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_5 29:29 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_6 30:30 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_7 31:31 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT(i) (24+(i)):(24+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DSC_TIMEOUT_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP 0x00611848 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_RG_UNDERFLOW_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_REG_TIMEOUT 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_REG_TIMEOUT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_REG_TIMEOUT_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_REG_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_REG_TIMEOUT_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_BUNDLE_TIMEOUT 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_BUNDLE_TIMEOUT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_BUNDLE_TIMEOUT_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_BUNDLE_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_ERROR_DISP_BUNDLE_TIMEOUT_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN 0x0061184C /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_8_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_8_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_8_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_8_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_9_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_9_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_9_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_9_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_10_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_10_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_10_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_10_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_11_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_11_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_11_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_11_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_12_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_12_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_12_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_12_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_13_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_13_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_13_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_13_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_14_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_14_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_14_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_14_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_15_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_15_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_15_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_15_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_16_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_16_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_16_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_16_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_17_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_17_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_17_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_17_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_18_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_18_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_18_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_18_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_19_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_19_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_19_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_19_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_20_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_20_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_20_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_20_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_21_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_21_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_21_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_21_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_22_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_22_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_22_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_22_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_23_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_23_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_23_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_23_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_24_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_24_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_24_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_24_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_25_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_25_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_25_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_25_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_26_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_26_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_26_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_26_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_27_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_27_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_27_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_27_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_28_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_28_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_28_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_28_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_29_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_29_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_29_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_29_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_30_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_30_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_30_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_30_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_31_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_31_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_31_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_31_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WIN_CH_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM 0x00611850 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_8_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_8_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_8_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_8_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_9_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_9_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_9_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_9_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_10_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_10_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_10_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_10_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_11_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_11_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_11_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_11_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_12_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_12_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_12_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_12_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_13_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_13_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_13_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_13_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_14_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_14_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_14_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_14_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_15_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_15_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_15_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_15_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_16_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_16_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_16_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_16_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_17_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_17_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_17_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_17_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_18_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_18_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_18_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_18_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_19_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_19_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_19_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_19_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_20_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_20_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_20_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_20_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_21_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_21_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_21_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_21_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_22_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_22_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_22_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_22_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_23_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_23_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_23_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_23_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_24_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_24_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_24_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_24_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_25_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_25_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_25_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_25_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_26_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_26_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_26_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_26_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_27_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_27_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_27_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_27_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_28_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_28_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_28_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_28_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_29_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_29_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_29_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_29_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_30_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_30_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_30_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_30_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_31_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_31_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_31_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_31_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_WINIM_CH_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER 0x00611854 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CORE 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CORE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CORE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CORE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CORE_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_0 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_1 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_2 18:18 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_3 19:19 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_4 20:20 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_5 21:21 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_6 22:22 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_7 23:23 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS(i) (16+(i)):(16+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_EXC_OTHER_CURS_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN 0x00611858 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_8_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_8_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_8_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_8_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_9_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_9_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_9_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_9_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_10_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_10_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_10_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_10_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_11_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_11_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_11_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_11_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_12_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_12_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_12_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_12_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_13_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_13_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_13_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_13_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_14_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_14_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_14_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_14_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_15_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_15_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_15_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_15_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_16_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_16_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_16_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_16_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_17_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_17_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_17_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_17_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_18_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_18_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_18_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_18_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_19_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_19_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_19_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_19_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_20_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_20_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_20_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_20_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_21_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_21_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_21_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_21_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_22_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_22_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_22_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_22_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_23_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_23_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_23_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_23_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_24_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_24_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_24_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_24_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_25_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_25_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_25_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_25_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_26_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_26_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_26_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_26_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_27_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_27_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_27_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_27_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_28_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_28_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_28_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_28_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_29_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_29_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_29_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_29_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_30_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_30_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_30_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_30_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_31_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_31_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_31_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_31_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_WIN_CH_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER 0x0061185C /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER_CORE 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER_CORE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER_CORE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER_CORE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_AWAKEN_OTHER_CORE_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP 0x00611860 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR1 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR2 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR3 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR__SIZE_1 3 /* */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SUPERVISOR_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_VBIOS_RELEASE 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_VBIOS_RELEASE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_VBIOS_RELEASE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_VBIOS_RELEASE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_VBIOS_RELEASE_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_A 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_A_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_A_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_A_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_A_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_B 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_B_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_B_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_B_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_SW_GENERIC_B_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_MSF_PIN 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_MSF_PIN_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_MSF_PIN_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_MSF_PIN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_CTRL_DISP_MSF_PIN_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR 0x00611864 /* RW-4R */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_0_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_0_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_1_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_1_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_2_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_2_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_3_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_3_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_4_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_4_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_5_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_5_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_6_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_6_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_7_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_7_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_STAT_OR_SOR_RESET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP 0x00611948 /* RW-4R */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_0_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_0_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_0_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_0_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_1_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_1_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_1_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_1_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_2_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_2_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_2_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_2_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_3_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_3_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_3_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_3_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_4_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_4_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_4_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_4_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_5_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_5_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_5_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_5_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_6_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_6_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_6_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_6_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_7_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_7_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_7_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_7_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_RG_UNDERFLOW_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_REG_TIMEOUT 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_REG_TIMEOUT_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_REG_TIMEOUT_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_REG_TIMEOUT_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_REG_TIMEOUT_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_BUNDLE_TIMEOUT 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_BUNDLE_TIMEOUT_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_BUNDLE_TIMEOUT_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_BUNDLE_TIMEOUT_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_CLR_ERROR_DISP_BUNDLE_TIMEOUT_CLEAR 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP 0x006119C8 /* RW-4R */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_0_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_0_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_0_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_0_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_1_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_1_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_1_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_1_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_2_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_2_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_2_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_2_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_3_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_3_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_3_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_3_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_4_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_4_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_4_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_4_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_5_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_5_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_5_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_5_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_6_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_6_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_6_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_6_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_7_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_7_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_7_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_7_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_RG_UNDERFLOW_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_REG_TIMEOUT 16:16 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_REG_TIMEOUT_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_REG_TIMEOUT_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_REG_TIMEOUT_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_REG_TIMEOUT_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_BUNDLE_TIMEOUT 17:17 /* RWIVF */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_BUNDLE_TIMEOUT_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_BUNDLE_TIMEOUT_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_BUNDLE_TIMEOUT_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_EN_SET_ERROR_DISP_BUNDLE_TIMEOUT_SET 0x00000001 /* -W--V */
+#define NV_PDISP_FE_EVT_DISPATCH 0x00611A00 /* R--4R */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_0 0:0 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_1 1:1 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_2 2:2 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_3 3:3 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_4 4:4 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_5 5:5 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_6 6:6 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_7 7:7 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING(i) (0+(i)):(0+(i)) /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_TIMING_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_0 8:8 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_1 9:9 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_2 10:10 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_3 11:11 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_4 12:12 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_5 13:13 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_6 14:14 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_7 15:15 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS(i) (8+(i)):(8+(i)) /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS__SIZE_1 8 /* */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_HEAD_NVDPS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DSC 16:16 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DSC_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DSC_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_FP16 17:17 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_FP16_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_FP16_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DISP 18:18 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DISP_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_ERROR_DISP_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WIN 19:19 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WIN_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WIN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WINIM 20:20 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WINIM_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_WINIM_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_OTHER 21:21 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_OTHER_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_EXC_OTHER_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_WIN 22:22 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_WIN_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_WIN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_OTHER 23:23 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_OTHER_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_AWAKEN_OTHER_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_CTRL_DISP 24:24 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_CTRL_DISP_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_CTRL_DISP_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_OR 25:25 /* R--VF */
+#define NV_PDISP_FE_EVT_DISPATCH_OR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_EVT_DISPATCH_OR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP 0x00611C30 /* R--4R */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR1 0:0 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR1_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR2 1:1 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR2_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR3 2:2 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR3_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR(i) (0+(i)):(0+(i)) /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR__SIZE_1 3 /* */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SUPERVISOR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_VBIOS_RELEASE 3:3 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_VBIOS_RELEASE_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_VBIOS_RELEASE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_A 4:4 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_A_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_A_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_B 5:5 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_B_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_SW_GENERIC_B_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_MSF_PIN 6:6 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_MSF_PIN_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_MSF_PIN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_ERROR 7:7 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_ERROR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_AWAKEN 8:8 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_AWAKEN_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_AWAKEN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR 0x00611C34 /* R--4R */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_0 0:0 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_0_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_1 1:1 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_1_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_2 2:2 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_2_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_3 3:3 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_3_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_4 4:4 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_4_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_5 5:5 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_5_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_6 6:6 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_6_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_7 7:7 /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_7_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR(i) (0+(i)):(0+(i)) /* R-IVF */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_RM_INTR_STAT_OR_SOR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING(i) (0x00611CC0+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LOADV 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LOADV_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LOADV_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LOADV_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LAST_DATA 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LAST_DATA_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LAST_DATA_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_LAST_DATA_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VBLANK 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VBLANK_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VBLANK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VBLANK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VACTIVE_SPACE_VBLANK 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VACTIVE_SPACE_VBLANK_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VACTIVE_SPACE_VBLANK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_VACTIVE_SPACE_VBLANK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_STALL 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_STALL_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_STALL_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_STALL_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_A 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_A_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_A_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_A_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_B 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_B_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_B_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_RG_LINE_B_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SD3_BUCKET_WALK_DONE 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SD3_BUCKET_WALK_DONE_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SD3_BUCKET_WALK_DONE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SD3_BUCKET_WALK_DONE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SEC_POLICY 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SEC_POLICY_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SEC_POLICY_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_HEAD_TIMING_SEC_POLICY_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN 0x00611CE4 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_0_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_1_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_2_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_3_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_4_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_5_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_6_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_7_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_8_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_8_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_8_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_9_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_9_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_9_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_10_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_10_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_10_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_11_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_11_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_11_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_12_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_12_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_12_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_13_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_13_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_13_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_14_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_14_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_14_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_15_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_15_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_15_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_16_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_16_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_16_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_17_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_17_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_17_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_18_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_18_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_18_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_19_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_19_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_19_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_20_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_20_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_20_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_21_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_21_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_21_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_22_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_22_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_22_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_23_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_23_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_23_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_24_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_24_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_24_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_25_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_25_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_25_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_26_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_26_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_26_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_27_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_27_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_27_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_28_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_28_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_28_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_29_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_29_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_29_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_30_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_30_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_30_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_31_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_31_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_31_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WIN_CH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM 0x00611CE8 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_0_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_1_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_2_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_3_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_4_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_5_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_6_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_7_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_8_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_8_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_8_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_9_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_9_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_9_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_10_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_10_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_10_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_11_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_11_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_11_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_12_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_12_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_12_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_13_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_13_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_13_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_14_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_14_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_14_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_15_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_15_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_15_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_16_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_16_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_16_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_17_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_17_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_17_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_18_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_18_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_18_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_19_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_19_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_19_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_20_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_20_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_20_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_21_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_21_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_21_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_22_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_22_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_22_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_23_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_23_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_23_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_24_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_24_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_24_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_25_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_25_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_25_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_26_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_26_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_26_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_27_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_27_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_27_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_28_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_28_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_28_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_29_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_29_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_29_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_30_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_30_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_30_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_31_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_31_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_31_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_WINIM_CH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER 0x00611CEC /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CORE 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CORE_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CORE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CORE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_0 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_0_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_1 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_1_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_2 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_2_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_3 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_3_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_4 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_4_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_5 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_5_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_6 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_6_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_7 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_7_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS(i) (16+(i)):(16+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_EXC_OTHER_CURS_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP 0x00611CF0 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR1 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR1_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR2 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR2_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR3 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR3_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR__SIZE_1 3 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SUPERVISOR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_VBIOS_RELEASE 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_VBIOS_RELEASE_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_VBIOS_RELEASE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_VBIOS_RELEASE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_A 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_A_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_A_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_A_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_B 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_B_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_B_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_SW_GENERIC_B_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_MSF_PIN 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_MSF_PIN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_MSF_PIN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_MSF_PIN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_ERROR 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_ERROR_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_ERROR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_ERROR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_AWAKEN 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_AWAKEN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_AWAKEN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_CTRL_DISP_AWAKEN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR 0x00611CF4 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_0_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_1_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_2_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_3_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_4_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_5_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_6_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_7_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_MSK_OR_SOR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING(i) (0x00611D80+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LOADV 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LOADV_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LOADV_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LOADV_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LAST_DATA 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LAST_DATA_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LAST_DATA_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_LAST_DATA_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VBLANK 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VBLANK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VBLANK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VBLANK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VACTIVE_SPACE_VBLANK 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VACTIVE_SPACE_VBLANK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VACTIVE_SPACE_VBLANK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_VACTIVE_SPACE_VBLANK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_STALL 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_STALL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_STALL_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_STALL_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_A 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_A_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_A_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_A_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_B 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_B_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_B_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_RG_LINE_B_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SD3_BUCKET_WALK_DONE 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SD3_BUCKET_WALK_DONE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SD3_BUCKET_WALK_DONE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SD3_BUCKET_WALK_DONE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SEC_POLICY 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SEC_POLICY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SEC_POLICY_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_HEAD_TIMING_SEC_POLICY_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN 0x00611DA4 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_8_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_8_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_9_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_9_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_10_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_10_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_11_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_11_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_12_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_12_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_13_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_13_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_14_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_14_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_15_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_15_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_16_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_16_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_17_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_17_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_18_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_18_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_19_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_19_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_20_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_20_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_21_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_21_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_22_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_22_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_23_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_23_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_24_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_24_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_25_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_25_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_26_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_26_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_27_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_27_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_28_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_28_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_28_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_29_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_29_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_29_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_30_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_30_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_30_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_31_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_31_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_31_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WIN_CH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM 0x00611DA8 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_8 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_8_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_8_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_9 9:9 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_9_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_9_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_10 10:10 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_10_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_10_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_11 11:11 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_11_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_11_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_12 12:12 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_12_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_12_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_13 13:13 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_13_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_13_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_14 14:14 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_14_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_14_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_15 15:15 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_15_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_15_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_16 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_16_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_16_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_17 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_17_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_17_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_18 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_18_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_18_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_19 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_19_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_19_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_20 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_20_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_20_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_21 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_21_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_21_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_22 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_22_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_22_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_23 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_23_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_23_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_24 24:24 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_24_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_24_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_25 25:25 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_25_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_25_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_26 26:26 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_26_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_26_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_27 27:27 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_27_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_27_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_28 28:28 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_28_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_28_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_28_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_29 29:29 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_29_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_29_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_29_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_30 30:30 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_30_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_30_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_30_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_31 31:31 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_31_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_31_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_31_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH__SIZE_1 32 /* */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_WINIM_CH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER 0x00611DAC /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CORE 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CORE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CORE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CORE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_0 16:16 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_1 17:17 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_2 18:18 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_3 19:19 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_4 20:20 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_5 21:21 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_6 22:22 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_7 23:23 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS(i) (16+(i)):(16+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_EXC_OTHER_CURS_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP 0x00611DB0 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR1 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR2 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR3 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR__SIZE_1 3 /* */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SUPERVISOR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_VBIOS_RELEASE 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_VBIOS_RELEASE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_VBIOS_RELEASE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_VBIOS_RELEASE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_A 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_A_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_A_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_A_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_B 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_B_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_B_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_SW_GENERIC_B_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_MSF_PIN 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_MSF_PIN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_MSF_PIN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_MSF_PIN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_ERROR 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_ERROR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_ERROR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_ERROR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_AWAKEN 8:8 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_AWAKEN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_AWAKEN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_CTRL_DISP_AWAKEN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR 0x00611DB4 /* RW-4R */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_0 0:0 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_0_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_0_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_1 1:1 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_1_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_1_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_2 2:2 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_2_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_2_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_3 3:3 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_3_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_3_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_4 4:4 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_4_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_4_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_5 5:5 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_5_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_5_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_6 6:6 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_6_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_6_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_7 7:7 /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_7_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_7_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_EN_OR_SOR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH 0x00611EC0 /* R--4R */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_0 0:0 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_0_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_0_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_1 1:1 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_1_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_1_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_2 2:2 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_2_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_2_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_3 3:3 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_3_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_3_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_4 4:4 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_4_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_4_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_5 5:5 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_5_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_5_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_6 6:6 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_6_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_6_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_7 7:7 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_7_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_7_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING(i) (0+(i)):(0+(i)) /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING__SIZE_1 8 /* */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_TIMING_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_NVDPS 8:8 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_NVDPS_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_HEAD_NVDPS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WIN 9:9 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WIN_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WIN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WINIM 10:10 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WINIM_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_WINIM_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_OTHER 11:11 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_OTHER_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_EXC_OTHER_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_CTRL_DISP 12:12 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_CTRL_DISP_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_CTRL_DISP_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_OR 13:13 /* R--VF */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_OR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PDISP_FE_RM_INTR_DISPATCH_OR_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_RG(i) (0x00612200+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_CMGR_CLK_RG__SIZE_1 8 /* */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV 3:0 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_1 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_2 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_3 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_4 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_5 0x00000004 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_6 0x00000005 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_7 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_8 0x00000007 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_9 0x00000008 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_10 0x00000009 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_11 0x0000000a /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_12 0x0000000b /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_13 0x0000000c /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_14 0x0000000d /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_15 0x0000000e /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_DIV_BY_16 0x0000000f /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_MODE 7:6 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_RG_MODE_NORMAL 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_RG_MODE_SAFE 0x00000002 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_RG_FORCE_SAFE 11:11 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_RG_FORCE_SAFE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_RG_FORCE_SAFE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_FORCE_SAFE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_RG_STATE 23:23 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_RG_STATE_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_RG_STATE_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR(i) (0x00612300+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_CMGR_CLK_SOR__SIZE_1 8 /* */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV 3:0 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_1 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_2 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_3 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_4 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_5 0x00000004 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_6 0x00000005 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_7 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_8 0x00000007 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_9 0x00000008 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_10 0x00000009 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_11 0x0000000a /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_12 0x0000000b /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_13 0x0000000c /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_14 0x0000000d /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_15 0x0000000e /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_DIV_BY_16 0x0000000f /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE 7:6 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_NORMAL 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_SAFE 0x00000002 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV 11:8 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_1 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_2 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_3 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_4 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_5 0x00000004 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_6 0x00000005 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_7 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_8 0x00000007 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_9 0x00000008 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_10 0x00000009 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_11 0x0000000a /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_12 0x0000000b /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_13 0x0000000c /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_14 0x0000000d /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_15 0x0000000e /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_PLL_REF_DIV_BY_16 0x0000000f /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD 15:12 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_NONE 0x0000000F /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_0 0x00000000 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_1 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_2 0x00000002 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_3 0x00000003 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_4 0x00000004 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_5 0x00000005 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_6 0x00000006 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_HEAD_7 0x00000007 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS 17:16 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS_DP_NORMAL 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS_DP_SAFE 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_MODE_BYPASS_FEEDBACK 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED 22:18 /* RWIUF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_INIT 0x00000006 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_DP_1_62GHZ 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_DP_2_70GHZ 0x0000000A /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_DP_5_40GHZ 0x00000014 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_DP_8_10GHZ 0x0000001E /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_EDP_2_16GHZ 0x00000008 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_EDP_2_43GHZ 0x00000009 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_EDP_3_24GHZ 0x0000000C /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_EDP_4_32GHZ 0x00000010 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_TMDS 0x0000000A /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_TMDS_HIGH_SPEED 0x00000014 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_LINK_SPEED_LVDS 0x00000007 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_STATE 23:23 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_STATE_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_STATE_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE 25:24 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE_SINGLE_PCLK 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE_DIFF_PCLK 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE_SINGLE_DPCLK 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CLK_SOURCE_DIFF_DPCLK 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR 2:2 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE 5:3 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPA 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPB 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPC 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPD 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPE 0x00000004 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPF 0x00000005 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_SOR_CTRL_FDBKCLK_OVR_MODE_IFPG 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL(i) (0x00612308+(i)*128) /* RW-4A */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL__SIZE_1 6 /* */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND 3:0 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR0 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR1 0x00000002 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR2 0x00000003 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR3 0x00000004 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR4 0x00000005 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR5 0x00000006 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR6 0x00000007 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR7 0x00000008 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR 4:4 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR_PRIMARY 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_FRONTEND_SOR_SECONDARY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_CAL_SEL 5:5 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_CAL_SEL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_CAL_SEL_PRIMARY 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_CAL_SEL_SECONDARY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_COMPOUT 7:7 /* R--VF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_COMPOUT_LOW 0x00000000 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TERM_COMPOUT_HIGH 0x00000001 /* R---V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TMDS_TERMADJ 11:8 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TMDS_TERMADJ_INIT 0x00000008 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TMDS_TERMADJ_500OHM 0x00000000 /* RW--V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_MODE 16:16 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_DIV 17:17 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_DIV_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_SEL 20:18 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_SEL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_PRBS_SEL 22:21 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_TX_PATT_GEN_PRBS_SEL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_CLK_EN_DIFF_DET 23:23 /* RWIVF */
+#define NV_PDISP_FE_CMGR_CLK_LINK_CTRL_CLK_EN_DIFF_DET_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION(i) (0x00612050+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION__SIZE_1 8 /* */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_VALUE 15:0 /* RWIVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_WRITE_MODE 28:28 /* RWIVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_WRITE_MODE_ACTIVE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_WRITE_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_WRITE_MODE_ASSEMBLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_UPDATE 29:29 /* RWIVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_UPDATE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_UPDATE_CORE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_STATUS 31:30 /* R-IVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_STATUS_ACTIVE 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_STATUS_ARMED 0x00000001 /* R---V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_DURATION_STATUS_ASSEMBLY 0x00000002 /* R---V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY(i) (0x00612054+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY__SIZE_1 8 /* */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_VALUE 15:0 /* RWIVF */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_WRITE_MODE 28:28 /* RWIVF */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_WRITE_MODE_ACTIVE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_WRITE_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_WRITE_MODE_ASSEMBLY 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_UPDATE 29:29 /* RWIVF */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_UPDATE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_UPDATE_CORE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_STATUS 31:30 /* R--VF */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_STATUS_ACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_STATUS_ARMED 0x00000001 /* R---V */
+#define NV_PDISP_FE_ONE_SHOT_START_DELAY_STATUS_ASSEMBLY 0x00000002 /* R---V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK(i) (0x00612058+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK__SIZE_1 8 /* */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_VALUE 15:0 /* RWIVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_MASK 30:30 /* RWIVF */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_MASK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_MASK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_MEMFETCH_VBLANK_WATERMARK_MASK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ELV_BLOCK(i) (0x00612068+(i)*2048) /* RW-4A */
+#define NV_PDISP_FE_ELV_BLOCK__SIZE_1 8 /* */
+#define NV_PDISP_FE_ELV_BLOCK_CTRL 0:0 /* RWIVF */
+#define NV_PDISP_FE_ELV_BLOCK_CTRL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_ELV_BLOCK_CTRL_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_ELV_BLOCK_CTRL_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_ELV_BLOCK_ALLOW_ONE_ELV 1:1 /* RWIVF */
+#define NV_PDISP_FE_ELV_BLOCK_ALLOW_ONE_ELV_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_ELV_BLOCK_ALLOW_ONE_ELV_DONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_ELV_BLOCK_ALLOW_ONE_ELV_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_ELV_BLOCK_ALLOW_ONE_ELV_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_FE_ELV_BLOCK_RELEASE_ONE_SHOT_ELV 2:2 /* RWIVF */
+#define NV_PDISP_FE_ELV_BLOCK_RELEASE_ONE_SHOT_ELV_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_FE_ELV_BLOCK_RELEASE_ONE_SHOT_ELV_DONE 0x00000000 /* R---V */
+#define NV_PDISP_FE_ELV_BLOCK_RELEASE_ONE_SHOT_ELV_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_FE_ELV_BLOCK_RELEASE_ONE_SHOT_ELV_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_FE_FLIPLOCK 0x0061206C /* RW-4R */
+#define NV_PDISP_FE_FLIPLOCK_LSR_MIN_TIME 23:0 /* RWIVF */
+#define NV_PDISP_FE_FLIPLOCK_LSR_MIN_TIME_INIT 0x00000080 /* RWI-V */
+#define NV_PDISP_FE_FLIPLOCK_LSR_MIN_TIME_32NS 0x00000020 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP 0x00640000 /* RW-4R */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD0_EXISTS 0:0 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD0_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD0_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD0_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD1_EXISTS 1:1 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD1_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD1_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD1_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD2_EXISTS 2:2 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD2_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD2_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD2_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD3_EXISTS 3:3 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD3_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD3_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD3_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD4_EXISTS 4:4 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD4_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD4_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD4_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD5_EXISTS 5:5 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD5_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD5_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD5_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD6_EXISTS 6:6 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD6_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD6_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD6_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD7_EXISTS 7:7 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD7_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD7_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD7_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD_EXISTS(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD_EXISTS__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_HEAD_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR0_EXISTS 8:8 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR0_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR0_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR0_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR1_EXISTS 9:9 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR1_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR1_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR1_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR2_EXISTS 10:10 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR2_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR2_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR2_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR3_EXISTS 11:11 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR3_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR3_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR3_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR4_EXISTS 12:12 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR4_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR4_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR4_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR5_EXISTS 13:13 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR5_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR5_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR5_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR6_EXISTS 14:14 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR6_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR6_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR6_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR7_EXISTS 15:15 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR7_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR7_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR7_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR_EXISTS(i) (8+(i)):(8+(i)) /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR_EXISTS__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAP_SOR_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB 0x00640004 /* RW-4R */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW0_EXISTS 0:0 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW0_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW0_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW0_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW1_EXISTS 1:1 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW1_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW1_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW1_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW2_EXISTS 2:2 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW2_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW2_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW2_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW3_EXISTS 3:3 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW3_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW3_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW3_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW4_EXISTS 4:4 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW4_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW4_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW4_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW5_EXISTS 5:5 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW5_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW5_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW5_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW6_EXISTS 6:6 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW6_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW6_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW6_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW7_EXISTS 7:7 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW7_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW7_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW7_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW8_EXISTS 8:8 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW8_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW8_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW8_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW9_EXISTS 9:9 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW9_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW9_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW9_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW10_EXISTS 10:10 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW10_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW10_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW10_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW11_EXISTS 11:11 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW11_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW11_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW11_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW12_EXISTS 12:12 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW12_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW12_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW12_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW13_EXISTS 13:13 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW13_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW13_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW13_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW14_EXISTS 14:14 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW14_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW14_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW14_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW15_EXISTS 15:15 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW15_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW15_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW15_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW16_EXISTS 16:16 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW16_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW16_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW16_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW17_EXISTS 17:17 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW17_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW17_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW17_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW18_EXISTS 18:18 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW18_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW18_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW18_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW19_EXISTS 19:19 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW19_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW19_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW19_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW20_EXISTS 20:20 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW20_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW20_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW20_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW21_EXISTS 21:21 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW21_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW21_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW21_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW22_EXISTS 22:22 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW22_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW22_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW22_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW23_EXISTS 23:23 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW23_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW23_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW23_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW24_EXISTS 24:24 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW24_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW24_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW24_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW25_EXISTS 25:25 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW25_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW25_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW25_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW26_EXISTS 26:26 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW26_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW26_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW26_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW27_EXISTS 27:27 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW27_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW27_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW27_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW28_EXISTS 28:28 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW28_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW28_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW28_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW29_EXISTS 29:29 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW29_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW29_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW29_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW30_EXISTS 30:30 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW30_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW30_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW30_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW31_EXISTS 31:31 /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW31_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW31_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW31_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW_EXISTS(i) (0+(i)):(0+(i)) /* RWIVF */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW_EXISTS__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW_EXISTS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW_EXISTS_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SYS_CAPB_WINDOW_EXISTS_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP 0x00640008 /* RW-4R */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_FLIP_LOCK_PINS 3:0 /* RWIVF */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_FLIP_LOCK_PINS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_SCAN_LOCK_PINS 7:4 /* RWIVF */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_SCAN_LOCK_PINS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_STEREO_PINS 11:8 /* RWIVF */
+#define NV_PDISP_FE_SW_LOCK_PIN_CAP_STEREO_PINS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA 0x00640010 /* RW-4R */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRIES 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRIES_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH 17:16 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_32B 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_64B 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_128B 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_256B 0x00000003 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_VGA 20:20 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_VGA_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_VGA_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_VGA_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MEMPOOL_COMPRESSION 21:21 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MEMPOOL_COMPRESSION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MEMPOOL_COMPRESSION_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MEMPOOL_COMPRESSION_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MSCG 22:22 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MSCG_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MSCG_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MSCG_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MCLK_SWITCH 23:23 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MCLK_SWITCH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MCLK_SWITCH_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_MCLK_SWITCH_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_ASR 24:24 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_ASR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_ASR_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_ASR_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_CDE 25:25 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_CDE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_CDE_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_CDE_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_LATENCY_EVENT 26:26 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_LATENCY_EVENT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_LATENCY_EVENT_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_SUPPORT_LATENCY_EVENT_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION 31:30 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_32B 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_64B 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_128B 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_256B 0x00000003 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPB 0x00640014 /* RW-4R */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC 0x00640018 /* RW-4R */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE 1:0 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_32B 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_64B 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_128B 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_256B 0x00000003 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED 6:4 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_TWO 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_FOUR 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_EIGHT 0x00000003 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_SIXTEEN 0x00000004 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE 10:8 /* RWIVF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_TWO 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_THREE 0x00000003 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPC_CLEAR_RECTANGLES_PER_SURFACE_FOUR 0x00000004 /* RW--V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPD 0x0064001C /* RW-4R */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPD_REORDER_BUFFER_DEPTH 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPD_REORDER_BUFFER_DEPTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPD_RDOUT_BUFFER_SIZE 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_IHUB_COMMON_CAPD_RDOUT_BUFFER_SIZE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA(i) (0x00640030+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPA__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER 0:0 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_HAS_YUV422 1:1 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_HAS_YUV422_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_HAS_YUV422_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_SCALER_HAS_YUV422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_HSAT 2:2 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_HSAT_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_HSAT_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_HSAT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_OCSC 3:3 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_OCSC_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_OCSC_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_OCSC_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_YUV422 4:4 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_YUV422_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_YUV422_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_YUV422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_TYPE 6:5 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_TYPE_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_TYPE_257 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_TYPE_1025 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_TYPE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_LOCATION 7:7 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_LOCATION_EARLY 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_LOCATION_LATE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_CAPA_LUT_LOCATION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPB(i) (0x00640034+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPB__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPB_MAX_PIXELS_5TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPB_MAX_PIXELS_5TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPB_MAX_PIXELS_5TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPB_MAX_PIXELS_5TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPC(i) (0x00640038+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPC__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPC_MAX_PIXELS_3TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPC_MAX_PIXELS_3TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPC_MAX_PIXELS_3TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPC_MAX_PIXELS_3TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPD(i) (0x0064003C+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPD__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPD_MAX_PIXELS_2TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPD_MAX_PIXELS_2TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPD_MAX_PIXELS_2TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPD_MAX_PIXELS_2TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPE(i) (0x00640040+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPE__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPE_MAX_PIXELS_1TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPE_MAX_PIXELS_1TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPE_MAX_PIXELS_1TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_CAPE_MAX_PIXELS_1TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF(i) (0x00640044+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_CAPF__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_CAPF_FULL_WIDTH 3:0 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_FULL_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_UNIT_WIDTH 7:4 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_UNIT_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_SCLR_WIDTH 11:8 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_SCLR_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_HSAT_WIDTH 15:12 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_HSAT_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_LUT_WIDTH 19:16 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_LUT_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_OCSC_WIDTH 23:20 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_OCSC_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_OLPF_WIDTH 27:24 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_OLPF_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_CAPF_TZ_WIDTH 31:28 /* RWIVF */
+#define NV_PDISP_FE_SW_HEAD_CAPF_TZ_WIDTH_INIT 0x000000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA(i) (0x00640048+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA_SUPPORT_DSC 16:16 /* RWIUF */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA_SUPPORT_DSC_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA_SUPPORT_DSC_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_HEAD_RG_CAPA_SUPPORT_DSC_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP(i) (0x00640144+(i)*8) /* RW-4A */
+#define NV_PDISP_FE_SW_SOR_CAP__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_18 0:0 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_18_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_18_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_24 1:1 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_24_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_LVDS_24_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_18 2:2 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_18_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_18_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_24 3:3 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_24_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_LVDS_24_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_A 8:8 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_A_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_A_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_A_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_B 9:9 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_B_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_B_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SINGLE_TMDS_B_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_TMDS 11:11 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_TMDS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_TMDS_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DUAL_TMDS_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DISPLAY_OVER_PCIE 13:13 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DISPLAY_OVER_PCIE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DISPLAY_OVER_PCIE_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DISPLAY_OVER_PCIE_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SDI 16:16 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_SDI_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_SDI_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_SDI_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_A 24:24 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_A_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_A_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_A_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_B 25:25 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_B_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_B_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_B_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_INTERLACE 26:26 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_INTERLACE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_INTERLACE_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_INTERLACE_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_8_LANES 27:27 /* RWIVF */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_8_LANES_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_8_LANES_FALSE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_SOR_CAP_DP_8_LANES_TRUE 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA(i) (0x006401E4+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_FULL_WIDTH 3:0 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_FULL_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_UNIT_WIDTH 7:4 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_UNIT_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_SCLR_WIDTH 11:8 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_SCLR_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_YUV_WIDTH 15:12 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_YUV_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_LUT_WIDTH 19:16 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_LUT_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_CGMT_WIDTH 23:20 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPA_CGMT_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB(i) (0x006401E8+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE 9:8 /* RWIVF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_NORMAL 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_WIDE 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE 13:12 /* RWIVF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_257 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_1025 0x00000002 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT 14:14 /* RWIVF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT 15:15 /* RWIVF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_DEGAMMA_SUPPORT 16:16 /* RWIVF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_DEGAMMA_SUPPORT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_DEGAMMA_SUPPORT_NO 0x00000000 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPB_DEGAMMA_SUPPORT_YES 0x00000001 /* RW--V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC(i) (0x006401EC+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD(i) (0x006401F0+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE(i) (0x006401F4+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF(i) (0x006401F8+(i)*32) /* RW-4A */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF__SIZE_1 32 /* */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP422 15:0 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP422_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP444 31:16 /* RWIUF */
+#define NV_PDISP_FE_SW_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP444_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP(i) (0x00640608+(i)*4) /* RW-4A */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP__SIZE_1 8 /* */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_DP_MAX 7:0 /* RWIUF */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_DP_MAX_INIT 0x00000036 /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_TMDS_MAX 23:16 /* RWIUF */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_TMDS_MAX_INIT 0x0000003C /* RWI-V */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_LVDS_MAX 31:24 /* RWIUF */
+#define NV_PDISP_FE_SW_SOR_CLK_CAP_LVDS_MAX_INIT 0x00000000 /* RWI-V */
+#define NV_UDISP_HASH 0x00001FFF:0x00000000 /* RW--M */
+#define NV_UDISP_HASH_BASE 0x00000000 /* */
+#define NV_UDISP_HASH_LIMIT 0x00001FFF /* */
+#define NV_UDISP_OBJ_MEM 0x0000FFFF:0x00002000 /* RW--M */
+#define NV_UDISP_OBJ_MEM_BASE 0x00002000 /* */
+#define NV_UDISP_OBJ_MEM_LIMIT 0x0000FFFF /* */
+#define NV_UDISP_HASH_TBL /* ----G */
+#define NV_UDISP_HASH_TBL_HANDLE (0*32+31):(0*32+0) /* RWXVF */
+#define NV_UDISP_HASH_TBL_CLIENT_ID (1*32+13):(1*32+0) /* RWXVF */
+#define NV_UDISP_HASH_TBL_INSTANCE (1*32+24):(1*32+14) /* RWXUF */
+#define NV_UDISP_HASH_TBL_INSTANCE_INVALID 0x00000000 /* RW--V */
+#define NV_UDISP_HASH_TBL_CHN (1*32+31):(1*32+25) /* RWXUF */
+#define NV_DMA /* ----G */
+#define NV_DMA_TARGET_NODE (0*32+1):(0*32+0) /* RWXVF */
+#define NV_DMA_TARGET_NODE_PHYSICAL_NVM 0x00000001 /* RW--V */
+#define NV_DMA_TARGET_NODE_PHYSICAL_PCI 0x00000002 /* RW--V */
+#define NV_DMA_TARGET_NODE_PHYSICAL_PCI_COHERENT 0x00000003 /* RW--V */
+#define NV_DMA_ACCESS (0*32+2):(0*32+2) /* RWXVF */
+#define NV_DMA_ACCESS_READ_ONLY 0x00000000 /* RW--V */
+#define NV_DMA_ACCESS_READ_AND_WRITE 0x00000001 /* RW--V */
+#define NV_DMA_PAGE_SIZE (0*32+6):(0*32+6) /* RWXUF */
+#define NV_DMA_PAGE_SIZE_BIG 0x00000000 /* RW--V */
+#define NV_DMA_PAGE_SIZE_SMALL 0x00000001 /* RW--V */
+#define NV_DMA_KIND (0*32+20):(0*32+20) /* RWXVF */
+#define NV_DMA_KIND_PITCH 0x00000000 /* RW--V */
+#define NV_DMA_KIND_BLOCKLINEAR 0x00000001 /* RW--V */
+#define NV_DMA_ADDRESS_BASE_LO (1*32+31):(1*32+0) /* RWXUF */
+#define NV_DMA_ADDRESS_BASE_HI (2*32+6):(2*32+0) /* RWXUF */
+#define NV_DMA_ADDRESS_LIMIT_LO (3*32+31):(3*32+0) /* RWXUF */
+#define NV_DMA_ADDRESS_LIMIT_HI (4*32+6):(4*32+0) /* RWXUF */
+#define NV_DMA__SIZE 20 /* */
+#define NV_DMA__ALIGN 32 /* */
+#define NV_DMA__ADDRESS_BASE_SHIFT 8 /* */
+#define NV_PDISP_IHUB_COMMON_CAPA 0x0062E000 /* R--4R */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRIES 15:0 /* R--UF */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH 17:16 /* R--VF */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_32B 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_64B 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_128B 0x00000002 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_MEMPOOL_ENTRY_WIDTH_256B 0x00000003 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_SUPPORT_VGA 20:20 /* R--VF */
+#define NV_PDISP_IHUB_COMMON_CAPA_SUPPORT_VGA_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_SUPPORT_VGA_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION 31:30 /* R--VF */
+#define NV_PDISP_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_32B 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_64B 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_128B 0x00000002 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPA_REQUEST_SIZE_PER_LINE_NON_ROTATION_256B 0x00000003 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPB 0x0062E004 /* R--4R */
+#define NV_PDISP_IHUB_COMMON_CAPB_MAX_PACKED_2BPP_ROTATION_THREAD_GROUPS 17:12 /* R--UF */
+#define NV_PDISP_IHUB_COMMON_CAPB_MAX_PACKED_1BPP_ROTATION_THREAD_GROUPS 23:18 /* R--UF */
+#define NV_PDISP_IHUB_COMMON_CAPB_MAX_PACKED_422_ROTATION_THREAD_GROUPS 29:24 /* R--UF */
+#define NV_PDISP_IHUB_COMMON_CAPC 0x0062E008 /* R--4R */
+#define NV_PDISP_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE 1:0 /* R--VF */
+#define NV_PDISP_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_32B 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_64B 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_128B 0x00000002 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_PITCH_REQUEST_SIZE_256B 0x00000003 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED 6:4 /* R--VF */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_NONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_TWO 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_FOUR 0x00000002 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_EIGHT 0x00000003 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPC_MAX_LINES_BUFFERED_SIXTEEN 0x00000004 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CAPD 0x0062E00C /* R--4R */
+#define NV_PDISP_IHUB_COMMON_CAPD_REORDER_BUFFER_DEPTH 15:0 /* R--UF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL 0x0062E018 /* RW-4R */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_WINDOW_INSTANCE 4:0 /* RWIUF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_WINDOW_INSTANCE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_HEAD_INSTANCE 7:5 /* RWIUF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_HEAD_INSTANCE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_SELECT 8:8 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_SELECT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_SELECT_WINDOW 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_SELECT_HEAD 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_MODE 10:9 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_MODE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_MODE_STRICT 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_MODE_SEMI_STRICT 0x00000002 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_NO_UPDATE_WAIT 11:11 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_NO_UPDATE_WAIT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_NO_UPDATE_WAIT_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_NO_UPDATE_WAIT_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_UPDATE 31:31 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_UPDATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_UPDATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_UPDATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_CONTROL_UPDATE_TRIGGER 0x00000001 /* -W--T */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL 0x0062E024 /* RW-4R */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_SWITCH 1:1 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_SWITCH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_SWITCH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_SWITCH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_REQ_LIMIT 30:30 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_REQ_LIMIT_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_REQ_LIMIT_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_REQ_LIMIT_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_FETCH_METER 31:31 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_FETCH_METER_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_FETCH_METER_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_MISC_CTL_FETCH_METER_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG 0x0062E02C /* RW-4R */
+#define NV_PDISP_IHUB_COMMON_CONFIG_REQUEST_BATCH_SIZE 2:0 /* RWIVF */
+#define NV_PDISP_IHUB_COMMON_CONFIG_REQUEST_BATCH_SIZE_1 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_COMMON_CONFIG_REQUEST_BATCH_SIZE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG(i) (0x00628000+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG__SIZE_1 32 /* */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_ENTRIES 15:0 /* RWIUF */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_ENTRIES_INIT 0x00000278 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_POOL_CONFIG_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER(i) (0x00628004+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER__SIZE_1 32 /* */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_SLOTS 7:0 /* RWIUF */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_SLOTS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_SLOTS_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_SLOTS_MAX 0x0000000F /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_FETCH_METER_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT(i) (0x0062800C+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT__SIZE_1 32 /* */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_LIMIT 11:0 /* RWIUF */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_LIMIT_INIT 0x00000FFF /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_LIMIT_MAX 0x00000FFF /* */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_REQ_LIMIT_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_WINDOW_OCC(i) (0x00628028+(i)*512) /* R--4A */
+#define NV_PDISP_IHUB_WINDOW_OCC__SIZE_1 32 /* */
+#define NV_PDISP_IHUB_WINDOW_OCC_BYTES 28:0 /* R--UF */
+#define NV_PDISP_IHUB_WINDOW_OCC_PIXELS 28:0 /* ----- */
+#define NV_PDISP_IHUB_WINDOW_REQ(i) (0x00628078+(i)*512) /* R--4A */
+#define NV_PDISP_IHUB_WINDOW_REQ__SIZE_1 32 /* */
+#define NV_PDISP_IHUB_WINDOW_REQ_LINE 15:0 /* R--UF */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG(i) (0x0062C000+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG__SIZE_1 8 /* */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_ENTRIES 15:0 /* RWIUF */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_ENTRIES_INIT 0x00000010 /* RWI-V */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_CURS_POOL_CONFIG_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER(i) (0x0062C004+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_CURS_FETCH_METER__SIZE_1 8 /* */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_SLOTS 7:0 /* RWIUF */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_SLOTS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_SLOTS_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_SLOTS_MAX 0x0000000F /* RW--V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_CURS_FETCH_METER_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT(i) (0x0062C008+(i)*512) /* RW-4A */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT__SIZE_1 8 /* */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_LIMIT 11:0 /* RWIUF */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_LIMIT_INIT 0x00000FFF /* RWI-V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_LIMIT_MAX 0x00000FFF /* */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_UPDATE 16:16 /* RWIVF */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_UPDATE_GLOBAL 0x00000000 /* RW--V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_UPDATE_IDLE 0x00000001 /* RW--V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_STATUS 31:31 /* R--VF */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_STATUS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_IHUB_CURS_REQ_LIMIT_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_IHUB_CURS_OCC(i) (0x0062C028+(i)*512) /* R--4A */
+#define NV_PDISP_IHUB_CURS_OCC__SIZE_1 8 /* */
+#define NV_PDISP_IHUB_CURS_OCC_BYTES 28:0 /* R--UF */
+#define NV_PDISP_IHUB_CURS_OCC_PIXELS 28:0 /* ----- */
+#define NV_PDISP_IHUB_CURS_REQ(i) (0x0062C078+(i)*512) /* R--4A */
+#define NV_PDISP_IHUB_CURS_REQ__SIZE_1 8 /* */
+#define NV_PDISP_IHUB_CURS_REQ_LINE 15:0 /* R--UF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER(i) (0x00630020+(i)*2048) /* RW-4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_VAL 15:0 /* RWIUF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_VAL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO 15:14 /* RWIUF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO_DIVIDE_BY_1 0x00000000 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO_DIVIDE_BY_2 0x00000001 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO_DIVIDE_BY_4 0x00000002 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_RATIO_DIVIDE_BY_8 0x00000003 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_PXVAL 13:0 /* RWIUF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_PXVAL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_WRITE_MODE 28:28 /* RWIVF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_WRITE_MODE_ACTIVE 0x00000000 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_WRITE_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_WRITE_MODE_ASSEMBLY 0x00000001 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_UPDATE 29:29 /* RWIVF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_UPDATE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_UPDATE_CORE 0x00000001 /* RW--V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_STATUS 31:30 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_STATUS_ACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_STATUS_ARMED 0x00000001 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_METER_STATUS_ASSEMBLY 0x00000002 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA(i) (0x00630050+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_FULL_WIDTH 3:0 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_UNIT_WIDTH 7:4 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_SCLR_WIDTH 11:8 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_YUV_WIDTH 15:12 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_LUT_WIDTH 19:16 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPA_CGMT_WIDTH 23:20 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB(i) (0x00630054+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE 9:8 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_NONE 0x00000000 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_SCALER_TYPE_NORMAL 0x00000001 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE 13:12 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_NONE 0x00000000 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_LUT_TYPE_1025 0x00000002 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT 14:14 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT_NO 0x00000000 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_CGMT_PRESENT_YES 0x00000001 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT 15:15 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT_NO 0x00000000 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPB_FP16_SUPPORT_YES 0x00000001 /* R---V */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPC(i) (0x00630058+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPC__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP422 15:0 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPC_MAX_PIXELS_5TAP444 31:16 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPD(i) (0x0063005C+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPD__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP422 15:0 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPD_MAX_PIXELS_3TAP444 31:16 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPE(i) (0x00630060+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPE__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP422 15:0 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPE_MAX_PIXELS_2TAP444 31:16 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPF(i) (0x00630064+(i)*2048) /* R--4A */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPF__SIZE_1 32 /* */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP422 15:0 /* R--VF */
+#define NV_PDISP_PRECOMP_WIN_PIPE_CAPF_MAX_PIXELS_1TAP444 31:16 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA(i) (0x00616100+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER 0:0 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER_HAS_YUV422 1:1 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER_HAS_YUV422_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_SCALER_HAS_YUV422_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_HSAT 2:2 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_HSAT_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_HSAT_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_OCSC 3:3 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_OCSC_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_OCSC_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_YUV422 4:4 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_YUV422_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_YUV422_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_TYPE 6:5 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_TYPE_NONE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_TYPE_257 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_TYPE_1025 0x00000002 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_LOCATION 7:7 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_LOCATION_EARLY 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_LUT_LOCATION_LATE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_TZ 8:8 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_TZ_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPA_TZ_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_CAPB(i) (0x00616104+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPB__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPB_MAX_PIXELS_5TAP422 15:0 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPB_MAX_PIXELS_5TAP444 31:16 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPC(i) (0x00616108+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPC__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPC_MAX_PIXELS_3TAP422 15:0 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPC_MAX_PIXELS_3TAP444 31:16 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPD(i) (0x0061610C+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPD__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPD_MAX_PIXELS_2TAP422 15:0 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPD_MAX_PIXELS_2TAP444 31:16 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPE(i) (0x00616110+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPE__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPE_MAX_PIXELS_1TAP422 15:0 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPE_MAX_PIXELS_1TAP444 31:16 /* R--UF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF(i) (0x00616114+(i)*2048) /* R--4A */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_FULL_WIDTH 3:0 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_UNIT_WIDTH 7:4 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_SCLR_WIDTH 11:8 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_HSAT_WIDTH 15:12 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_LUT_WIDTH 19:16 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_OCSC_WIDTH 23:20 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_OLPF_WIDTH 27:24 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_CAPF_TZ_WIDTH 31:28 /* R--VF */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER(i) (0x0061611C+(i)*2048) /* RW-4A */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER__SIZE_1 8 /* */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER_VALUE 31:0 /* RWIUF */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER_VALUE_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER_VALUE_HW 0x00000000 /* R---V */
+#define NV_PDISP_POSTCOMP_HEAD_LOADV_COUNTER_VALUE_SW 0x00000000 /* -W--V */
+#define NV_PDISP_RG_HEAD_CAPA(i) (0x00616300+(i)*2048) /* R--4A */
+#define NV_PDISP_RG_HEAD_CAPA__SIZE_1 8 /* */
+#define NV_PDISP_RG_HEAD_CAPA_REORDER_BANK_WIDTH_SIZE_MAX 13:0 /* R-IUF */
+#define NV_PDISP_RG_HEAD_CAPA_REORDER_BANK_WIDTH_SIZE_MAX_INIT 0x00000A00 /* R-I-V */
+#define NV_PDISP_RG_HEAD_CAPA_SUPPORT_DSC 16:16 /* R-IUF */
+#define NV_PDISP_RG_HEAD_CAPA_SUPPORT_DSC_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_HEAD_CAPA_SUPPORT_DSC_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_RG_HEAD_CAPA_SUPPORT_DSC_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_RG_SWAP_LOCKOUT(i) (0x00616304+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_SWAP_LOCKOUT__SIZE_1 8 /* */
+#define NV_PDISP_RG_SWAP_LOCKOUT_START 15:0 /* RWIUF */
+#define NV_PDISP_RG_SWAP_LOCKOUT_START_INIT 0x00000004 /* RWI-V */
+#define NV_PDISP_RG_ELV(i) (0x00616308+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_ELV__SIZE_1 8 /* */
+#define NV_PDISP_RG_ELV_START 14:0 /* RWIUF */
+#define NV_PDISP_RG_ELV_START_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW(i) (0x0061630C+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_UNDERFLOW__SIZE_1 8 /* */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED 4:4 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_CLR 0x00000001 /* -W--V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_MODE 8:8 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_MODE_REPEAT 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_MODE_RED 0x00000001 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED 23:16 /* R-IVF */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_RST 24:24 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_RST_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_RST_RST_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_RST_RST_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_FRAMES_UFLOWED_RST_RST_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_UNDERFLOW_PIXEL__SIZE_1 8 /* */
+#define NV_PDISP_RG_UNDERFLOW_PIXEL_CNT 31:0 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_PIXEL_CNT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_UNDERFLOW_PIXEL_CNT_CLR 0x00000000 /* -W--V */
+#define NV_PDISP_RG_STATUS(i) (0x00616314+(i)*2048) /* R--4A */
+#define NV_PDISP_RG_STATUS__SIZE_1 8 /* */
+#define NV_PDISP_RG_STATUS_STALLED 3:3 /* R--VF */
+#define NV_PDISP_RG_STATUS_STALLED_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_STALLED_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_EXTERNAL_UNSTALL_EVENT_CNT 8:5 /* R-IVF */
+#define NV_PDISP_RG_STATUS_EXTERNAL_UNSTALL_EVENT_CNT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_STATUS_RG_UNSTALL_CNT 12:9 /* R-IVF */
+#define NV_PDISP_RG_STATUS_RG_UNSTALL_CNT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_STATUS_ACT_HEAD_OPMODE 15:14 /* R--VF */
+#define NV_PDISP_RG_STATUS_ACT_HEAD_OPMODE_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_ACT_HEAD_OPMODE_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_ACT_HEAD_OPMODE_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_RG_STATUS_HSYNC 16:16 /* R--VF */
+#define NV_PDISP_RG_STATUS_HSYNC_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_HSYNC_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_HBLNK 17:17 /* R--VF */
+#define NV_PDISP_RG_STATUS_HBLNK_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_HBLNK_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_VSYNC 20:20 /* R--VF */
+#define NV_PDISP_RG_STATUS_VSYNC_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_VSYNC_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_VBLNK 21:21 /* R--VF */
+#define NV_PDISP_RG_STATUS_VBLNK_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_VBLNK_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_FID 22:22 /* R--UF */
+#define NV_PDISP_RG_STATUS_FID_FLD0 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_FID_FLD1 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_BLNK 24:24 /* R--VF */
+#define NV_PDISP_RG_STATUS_BLNK_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_BLNK_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_VACT_SPACE 25:25 /* R--VF */
+#define NV_PDISP_RG_STATUS_VACT_SPACE_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_VACT_SPACE_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_STEREO 27:27 /* R--VF */
+#define NV_PDISP_RG_STATUS_STEREO_RIGHT 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_STEREO_LEFT 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_VIEWPORT 28:28 /* R--VF */
+#define NV_PDISP_RG_STATUS_VIEWPORT_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_VIEWPORT_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_BORDER 29:29 /* R--VF */
+#define NV_PDISP_RG_STATUS_BORDER_INACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_BORDER_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_LOCKED 30:30 /* R--VF */
+#define NV_PDISP_RG_STATUS_LOCKED_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_LOCKED_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_RG_STATUS_FLIPLOCKED 31:31 /* R--VF */
+#define NV_PDISP_RG_STATUS_FLIPLOCKED_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_RG_STATUS_FLIPLOCKED_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP(i) (0x00616318+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP__SIZE_1 8 /* */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_VALUE 19:0 /* RWIUF */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_WRITE_MODE 28:28 /* RWIUF */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_WRITE_MODE_ACTIVE 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_WRITE_MODE_ASSEMBLY 0x00000001 /* RW--V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_WRITE_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_UPDATE 29:29 /* RWIUF */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_UPDATE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_UPDATE_CORE 0x00000001 /* RW--V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_STATUS 31:30 /* R--UF */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_STATUS_ACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_STATUS_ARMED 0x00000001 /* R---V */
+#define NV_PDISP_RG_UNSTALL_SPOOLUP_STATUS_ASSEMBLY 0x00000002 /* R---V */
+#define NV_PDISP_RG_IN_LOADV_COUNTER(i) (0x00616320+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_IN_LOADV_COUNTER__SIZE_1 8 /* */
+#define NV_PDISP_RG_IN_LOADV_COUNTER_VALUE 31:0 /* RWIUF */
+#define NV_PDISP_RG_IN_LOADV_COUNTER_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_IN_LOADV_COUNTER_VALUE_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_DPCA(i) (0x00616330+(i)*2048) /* R--4A */
+#define NV_PDISP_RG_DPCA__SIZE_1 8 /* */
+#define NV_PDISP_RG_DPCA_LINE_CNT 15:0 /* R--UF */
+#define NV_PDISP_RG_DPCA_FRM_CNT 31:16 /* R--UF */
+#define NV_PDISP_RG_DPCB(i) (0x00616334+(i)*2048) /* R--4A */
+#define NV_PDISP_RG_DPCB__SIZE_1 8 /* */
+#define NV_PDISP_RG_DPCB_PIXEL_CNT 15:0 /* R--UF */
+#define NV_PDISP_RG_LINE_A_INTR(i) (0x00616348+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_LINE_A_INTR__SIZE_1 8 /* */
+#define NV_PDISP_RG_LINE_A_INTR_LINE_CNT 15:0 /* RWIUF */
+#define NV_PDISP_RG_LINE_A_INTR_LINE_CNT_INIT 0x0000FFFF /* RWI-V */
+#define NV_PDISP_RG_LINE_A_INTR_ENABLE 31:31 /* RWIUF */
+#define NV_PDISP_RG_LINE_A_INTR_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_LINE_A_INTR_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_LINE_A_INTR_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_RG_LINE_B_INTR(i) (0x0061634C+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_LINE_B_INTR__SIZE_1 8 /* */
+#define NV_PDISP_RG_LINE_B_INTR_LINE_CNT 15:0 /* RWIUF */
+#define NV_PDISP_RG_LINE_B_INTR_LINE_CNT_INIT 0x0000FFFF /* RWI-V */
+#define NV_PDISP_RG_LINE_B_INTR_ENABLE 31:31 /* RWIUF */
+#define NV_PDISP_RG_LINE_B_INTR_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_LINE_B_INTR_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_LINE_B_INTR_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH(i) (0x00616360+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH__SIZE_1 8 /* */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_HEIGHT 13:0 /* R-IUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_HEIGHT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_ENABLE 14:14 /* R-IVF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_ENABLE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_ENABLE_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_EXTEND_ENABLE_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_DBG 15:15 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_DBG_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_HEIGHT 29:16 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_HEIGHT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_ENABLE 30:30 /* RWIVF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_SET_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_UPDATE 31:31 /* RW-VF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_UPDATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_UPDATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_BACK_PORCH_UPDATE_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH(i) (0x00616364+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH__SIZE_1 8 /* */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_HEIGHT 13:0 /* R-IUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_HEIGHT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_ENABLE 14:14 /* R-IVF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_ENABLE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_ENABLE_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_EXTEND_ENABLE_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_DBG 15:15 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_DBG_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_HEIGHT 29:16 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_HEIGHT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_ENABLE 30:30 /* RWIVF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_SET_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_UPDATE 31:31 /* RW-VF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_UPDATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_UPDATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_FRONT_PORCH_UPDATE_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_RASTER_EXTEND(i) (0x00616368+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_RASTER_EXTEND__SIZE_1 8 /* */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_WIDTH 13:0 /* R-IUF */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_WIDTH_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_ENABLE 14:14 /* R-IVF */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_ENABLE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_ENABLE_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_EXTEND_EXTEND_ENABLE_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_EXTEND_DBG 15:15 /* RWIUF */
+#define NV_PDISP_RG_RASTER_EXTEND_DBG_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_WIDTH 29:16 /* RWIUF */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_WIDTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_ENABLE 30:30 /* RWIVF */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_RG_RASTER_EXTEND_SET_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_RG_RASTER_EXTEND_UPDATE 31:31 /* RW-VF */
+#define NV_PDISP_RG_RASTER_EXTEND_UPDATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_RASTER_EXTEND_UPDATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_RASTER_EXTEND_UPDATE_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_HEAD_CLK_CAP(i) (0x006163C0+(i)*2048) /* R--4A */
+#define NV_PDISP_RG_HEAD_CLK_CAP__SIZE_1 8 /* */
+#define NV_PDISP_RG_HEAD_CLK_CAP_PCLK_MAX 7:0 /* R-IUF */
+#define NV_PDISP_RG_HEAD_CLK_CAP_PCLK_MAX_INIT 0x00000085 /* R-I-V */
+#define NV_PDISP_RG_MISC_CTL(i) (0x006163C4+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_MISC_CTL__SIZE_1 8 /* */
+#define NV_PDISP_RG_MISC_CTL_FORCE_UNSTALL 4:4 /* RWIVF */
+#define NV_PDISP_RG_MISC_CTL_FORCE_UNSTALL_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_MISC_CTL_FORCE_UNSTALL_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_MISC_CTL_FORCE_UNSTALL_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_MISC_CTL_FORCE_UNSTALL_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_MISC_CTL_UNSTALL_CNT_RST 13:13 /* RWIVF */
+#define NV_PDISP_RG_MISC_CTL_UNSTALL_CNT_RST_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_RG_MISC_CTL_UNSTALL_CNT_RST_DONE 0x00000000 /* R---V */
+#define NV_PDISP_RG_MISC_CTL_UNSTALL_CNT_RST_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_RG_MISC_CTL_UNSTALL_CNT_RST_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY(i) (0x006163C8+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY__SIZE_1 8 /* */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_BACK_PORCH 3:0 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_BACK_PORCH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_BACK_PORCH_TWO 0x00000001/* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_BACK_PORCH_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_FRONT_PORCH 7:4 /* RWIUF */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_FRONT_PORCH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_FRONT_PORCH_TWO 0x00000001 /* RW--V */
+#define NV_PDISP_RG_RASTER_V_EXTEND_MULTIPLY_FRONT_PORCH_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER(i) (0x00616208+(i)*2048) /* RW-4A */
+#define NV_PDISP_CURSOR_PIPE_METER__SIZE_1 8 /* */
+#define NV_PDISP_CURSOR_PIPE_METER_VAL 15:0 /* RWIUF */
+#define NV_PDISP_CURSOR_PIPE_METER_VAL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO 15:14 /* RWIUF */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO_DIVIDE_BY_1 0x00000000 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO_DIVIDE_BY_2 0x00000001 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO_DIVIDE_BY_4 0x00000002 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_RATIO_DIVIDE_BY_8 0x00000003 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_PXVAL 13:0 /* RWIUF */
+#define NV_PDISP_CURSOR_PIPE_METER_PXVAL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_CURSOR_PIPE_METER_WRITE_MODE 28:28 /* RWIVF */
+#define NV_PDISP_CURSOR_PIPE_METER_WRITE_MODE_ACTIVE 0x00000000 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_WRITE_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_CURSOR_PIPE_METER_WRITE_MODE_ASSEMBLY 0x00000001 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_UPDATE 29:29 /* RWIVF */
+#define NV_PDISP_CURSOR_PIPE_METER_UPDATE_IMMEDIATE 0x00000000 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_UPDATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_CURSOR_PIPE_METER_UPDATE_CORE 0x00000001 /* RW--V */
+#define NV_PDISP_CURSOR_PIPE_METER_STATUS 31:30 /* R--VF */
+#define NV_PDISP_CURSOR_PIPE_METER_STATUS_ACTIVE 0x00000000 /* R---V */
+#define NV_PDISP_CURSOR_PIPE_METER_STATUS_ARMED 0x00000001 /* R---V */
+#define NV_PDISP_CURSOR_PIPE_METER_STATUS_ASSEMBLY 0x00000002 /* R---V */
+#define NV_PDISP_SF_TEST(i) (0x0061650C+(i)*2048) /* R--4A */
+#define NV_PDISP_SF_TEST__SIZE_1 8 /* */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE 9:8 /* R--UF */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_SF_TEST_OWNER_MASK 13:10 /* R--UF */
+#define NV_PDISP_SF_TEST_OWNER_MASK_HEAD0 0x00000001 /* R---V */
+#define NV_PDISP_SF_TEST_OWNER_MASK_HEAD1 0x00000002 /* R---V */
+#define NV_PDISP_SF_TEST_OWNER_MASK_HEAD2 0x00000004 /* R---V */
+#define NV_PDISP_SF_TEST_OWNER_MASK_HEAD3 0x00000008 /* R---V */
+#define NV_PDISP_SF_TEST_OWNER_MASK_NONE 0x00000000 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG(i) (2*(i)+15):(2*(i)+14) /* R--UF */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG__SIZE_1 2 /* */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG0 15:14 /* R--UF */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG0_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG0_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG0_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG1 17:16 /* R--UF */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG1_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG1_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_SF_TEST_ACT_HEAD_OPMODE_DEBUG1_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_SF_AUDIO_CNTRL0(i) (0x00616528+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_AUDIO_CNTRL0__SIZE_1 8 /* */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY 6:4 /* RWIVF */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_INIT 0x00000007 /* RWI-V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_NONE 0x00000007 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_TWO 0x00000002 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_DEVICE_ENTRY_THREE 0x00000003 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_AFIFO_FLUSH 12:12 /* RWIVF */
+#define NV_PDISP_SF_AUDIO_CNTRL0_AFIFO_FLUSH_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_AFIFO_FLUSH_ENABLED 0x00000001 /* RW--V */
+#define NV_PDISP_SF_AUDIO_CNTRL0_AFIFO_FLUSH_DISABLED 0x00000000 /* RW--V */
+#define NV_PDISP_SF_SPARE0(i) (0x00616530+(i)*2048) /* RWI4A */
+#define NV_PDISP_SF_SPARE0__SIZE_1 8 /* */
+#define NV_PDISP_SF_SPARE0_DP_VERSION 0:0 /* RWIVF */
+#define NV_PDISP_SF_SPARE0_DP_VERSION_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_SPARE0_DP_VERSION_11 0x00000000 /* RW--V */
+#define NV_PDISP_SF_SPARE0_DP_VERSION_12 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL(i) (0x00616540+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_DP_LINKCTL__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_LINKCTL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TUSIZE 8:2 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_TUSIZE_INIT 0x00000040 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_SYNCMODE 10:10 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_SYNCMODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_SYNCMODE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_SYNCMODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_SELECT 11:11 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_SELECT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_SELECT_PRIMARY 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_SELECT_SECONDARY 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_RESERVED 13:12 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_RESERVED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_ENHANCEDFRAME 14:14 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_ENHANCEDFRAME_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_ENHANCEDFRAME_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_ENHANCEDFRAME_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_ALL 15:15 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_ALL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_ALL_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_TRIGGER_ALL_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_TWO 0x00000003 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_FOUR 0x0000000F /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_LANECOUNT_EIGHT 0x000000FF /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_ENABLE 24:24 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_MODE 25:25 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_MODE_LOADV 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_MODE_IMMEDIATE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN 26:26 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SF_DP_LINKCTL_FORCE_RATE_GOVERN_TRIGGER 0x00000001 /* -W--T */
+#define NV_PDISP_SF_DP_LINKCTL_SINGLE_HEAD_MST 27:27 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_SINGLE_HEAD_MST_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_SINGLE_HEAD_MST_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_SINGLE_HEAD_MST_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORMAT_MODE 30:30 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_FORMAT_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_FORMAT_MODE_SINGLE_STREAM 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_FORMAT_MODE_MULTI_STREAM 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_AUDIO_OVER_RIGHT_PANEL_ENABLE 31:31 /* RWIVF */
+#define NV_PDISP_SF_DP_LINKCTL_AUDIO_OVER_RIGHT_PANEL_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_LINKCTL_AUDIO_OVER_RIGHT_PANEL_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_LINKCTL_AUDIO_OVER_RIGHT_PANEL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_MN(i) (0x0061654C+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_DP_MN__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_MN_N_VAL 23:0 /* RWIVF */
+#define NV_PDISP_SF_DP_MN_N_VAL_INIT 0x00008000 /* RWI-V */
+#define NV_PDISP_SF_DP_MN_M_DELTA 27:24 /* RWIVF */
+#define NV_PDISP_SF_DP_MN_M_DELTA_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_MN_SECONDARY_OVERRIDE 28:28 /* RWIVF */
+#define NV_PDISP_SF_DP_MN_SECONDARY_OVERRIDE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_MN_SECONDARY_OVERRIDE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_MN_SECONDARY_OVERRIDE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_MN_M_MOD 31:30 /* RWIVF */
+#define NV_PDISP_SF_DP_MN_M_MOD_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_MN_M_MOD_NONE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_MN_M_MOD_INC 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_MN_M_MOD_DEC 0x00000002 /* RW--V */
+#define NV_PDISP_SF_DP_CONFIG(i) (0x00616550+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_DP_CONFIG__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_CONFIG_WATERMARK 5:0 /* RWIVF */
+#define NV_PDISP_SF_DP_CONFIG_WATERMARK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_COUNT 14:8 /* RWIVF */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_COUNT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_FRAC 19:16 /* RWIVF */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_FRAC_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_POLARITY 24:24 /* RWIVF */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_POLARITY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_POLARITY_NEGATIVE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_POLARITY_POSITIVE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_CNTL_MODE 27:26 /* RWIVF */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_CNTL_MODE_INIT 0x00000002 /* RWI-V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_CNTL_MODE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_CNTL_MODE_LEGACY 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_CONFIG_ACTIVESYM_CNTL_MODE_AUTO 0x00000002 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL(i) (0x00616560+(i)*2048) /* RWI4A */
+#define NV_PDISP_SF_DP_AUDIO_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_ENABLE_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE 3:2 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_AUTO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_DISABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_ENABLE 0x00000002 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_PACKETID 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_PACKETID_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_STATUS 21:21 /* R--VF */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_STATUS_ENABLE 0x00000001 /* R---V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_MUTE_STATUS_DISABLE 0x00000000 /* R---V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_NEW_SETTINGS 31:31 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_NEW_SETTINGS_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_NEW_SETTINGS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_NEW_SETTINGS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SF_DP_AUDIO_CTRL_NEW_SETTINGS_TRIGGER 0x00000001 /* -W--T */
+#define NV_PDISP_SF_DP_AUDIO_HBLANK_SYMBOLS(i) (0x00616568+(i)*2048) /* RWI4A */
+#define NV_PDISP_SF_DP_AUDIO_HBLANK_SYMBOLS__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_AUDIO_HBLANK_SYMBOLS_VALUE 16:0 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_HBLANK_SYMBOLS_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_VBLANK_SYMBOLS(i) (0x0061656C+(i)*2048) /* RWI4A */
+#define NV_PDISP_SF_DP_AUDIO_VBLANK_SYMBOLS__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_AUDIO_VBLANK_SYMBOLS_VALUE 20:0 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_VBLANK_SYMBOLS_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_CTL(i) (0x00616578+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_DP_STREAM_CTL__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_CTL_START 5:0 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_CTL_START_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_CTL_LENGTH 13:8 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_CTL_LENGTH_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_CTL_START_ACTIVE 21:16 /* R-IVF */
+#define NV_PDISP_SF_DP_STREAM_CTL_START_ACTIVE_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_SF_DP_STREAM_CTL_LENGTH_ACTIVE 29:24 /* R-IVF */
+#define NV_PDISP_SF_DP_STREAM_CTL_LENGTH_ACTIVE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_DP_STREAM_BW(i) (0x0061657C+(i)*2048) /* RW-4A */
+#define NV_PDISP_SF_DP_STREAM_BW__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_BW_ALLOCATED 15:0 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_BW_ALLOCATED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_BW_TIMESLICE 31:16 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_BW_TIMESLICE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_CTL_RESERVED__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_CTL_RESERVED__SIZE_2 6 /* */
+#define NV_PDISP_SF_DP_STREAM_CTL_RESERVED_VALUE 31:0 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_CTL_RESERVED_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_BW_RESERVED__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_BW_RESERVED__SIZE_2 6 /* */
+#define NV_PDISP_SF_DP_STREAM_BW_RESERVED_VALUE 31:0 /* RWIVF */
+#define NV_PDISP_SF_DP_STREAM_BW_RESERVED_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_STREAM_CTL_ARRAY(i,j) (((j)==0)?(0x00616578+(i)*2048):(0x00616584+(i)*2048)+((j)-1)*8) /* */
+#define NV_PDISP_SF_DP_STREAM_CTL_ARRAY__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_CTL_ARRAY__SIZE_2 2 /* */
+#define NV_PDISP_SF_DP_STREAM_BW_ARRAY(i,j) (((j)==0)?(0x0061657C+(i)*2048):(0x00616588+(i)*2048)+((j)-1)*8) /* */
+#define NV_PDISP_SF_DP_STREAM_BW_ARRAY__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_STREAM_BW_ARRAY__SIZE_2 2 /* */
+#define NV_PDISP_SF_HDMI_CTRL(i) (0x006165C0+(i)*2048) /* RWX4A */
+#define NV_PDISP_SF_HDMI_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_CTRL_REKEY 6:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_REKEY_INIT 0x00000038 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT 8:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT_2CH 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT_8CH 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT_SELECT 10:10 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT_SELECT_HW_BASED 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_LAYOUT_SELECT_SW_BASED 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_SAMPLE_FLAT 12:12 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_SAMPLE_FLAT_CLR 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_SAMPLE_FLAT_SET 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_MAX_AC_PACKET 20:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_MAX_AC_PACKET_INIT 0x00000002 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO 24:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_AUDIO_EN 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_ENABLE 30:30 /* RWIVF */
+#define NV_PDISP_SF_HDMI_CTRL_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_CTRL_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW(i) (0x006165C8+(i)*2048) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_END 9:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_END_INIT 0x00000210 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_START 25:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_START_INIT 0x00000200 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_ENABLE 31:31 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_ENABLE_YES 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSYNC_WINDOW_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL(i) (0x006F0000+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_OTHER 4:4 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_OTHER_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_OTHER_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_SINGLE 8:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_SINGLE_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_SINGLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_CHKSUM_HW 9:9 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_CHKSUM_HW_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_CHKSUM_HW_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_CTRL_CHKSUM_HW_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS(i) (0x006F0004+(i)*1024) /* R--4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS_SENT 0:0 /* R-IVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS_SENT_DONE 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS_SENT_WAITING 0x00000000 /* R---V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_STATUS_SENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER(i) (0x006F0008+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW(i) (0x006F000C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_LOW_PB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH(i) (0x006F0010+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB4 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB5 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB6 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH_PB6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW(i) (0x006F0014+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB7 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB8 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB9 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB10 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_LOW_PB10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH(i) (0x006F0018+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB11 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB12 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB13 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH_PB13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL(i) (0x006F0040+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_OTHER 4:4 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_OTHER_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_OTHER_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_SINGLE 8:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_SINGLE_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_SINGLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_HBLANK 12:12 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_HBLANK_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_CTRL_HBLANK_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS(i) (0x006F0044+(i)*1024) /* R--4A */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS_SENT 0:0 /* R-IVF */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS_SENT_DONE 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS_SENT_WAITING 0x00000000 /* R---V */
+#define NV_PDISP_SF_HDMI_GENERIC_STATUS_SENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER(i) (0x006F0048+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW(i) (0x006F004C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_LOW_PB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH(i) (0x006F0050+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB4 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB5 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB6 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK0_HIGH_PB6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW(i) (0x006F0054+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB7 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB8 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB9 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB10 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_LOW_PB10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH(i) (0x006F0058+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB11 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB12 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB13 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK1_HIGH_PB13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW(i) (0x006F005C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB14 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB15 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB16 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB17 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_LOW_PB17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH(i) (0x006F0060+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB18 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB19 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB20 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK2_HIGH_PB20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW(i) (0x006F0064+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB21 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB22 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB23 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB24 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_LOW_PB24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH(i) (0x006F0068+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB25 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB26 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB27 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GENERIC_SUBPACK3_HIGH_PB27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL(i) (0x006F0080+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_ACR_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PACKET_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PACKET_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PACKET_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PACKET_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PACKET_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_ENABLE 16:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_ENABLE_YES 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PRIORITY 20:20 /* RWIVF */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PRIORITY_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PRIORITY_HIGH 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_PRIORITY_LOW 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS 27:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_INIT 0x00000002 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_32KHZ 0x00000003 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_44_1KHZ 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_48KHZ 0x00000002 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_88_2KHZ 0x00000008 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_96KHZ 0x0000000A /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_176_4KHZ 0x0000000C /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_FREQS_192KHZ 0x0000000E /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_CTS_SOURCE 31:31 /* RWIVF */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_CTS_SOURCE_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_CTS_SOURCE_HW 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_ACR_CTRL_CTS_SOURCE_SW 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL(i) (0x006F00C0+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GCP_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_OTHER 4:4 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_OTHER_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_OTHER_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_SINGLE 8:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_SINGLE_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GCP_CTRL_SINGLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS(i) (0x006F00C4+(i)*1024) /* R--4A */
+#define NV_PDISP_SF_HDMI_GCP_STATUS__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_SENT 0:0 /* R-IVF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_SENT_DONE 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_SENT_WAITING 0x00000000 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_SENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_START_PP 6:4 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_START_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_START_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_START_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_START_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_END_PP 10:8 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_END_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_END_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_END_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_ACTIVE_END_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_START_PP 14:12 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_START_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_START_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_START_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_START_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_END_PP 18:16 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_END_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_END_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_END_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_VSYNC_END_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_START_PP 22:20 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_START_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_START_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_START_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_START_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_END_PP 26:24 /* R--VF */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_END_PP_0 0x00000004 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_END_PP_1 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_END_PP_2 0x00000002 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_STATUS_HSYNC_END_PP_3 0x00000003 /* R---V */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK(i) (0x006F00CC+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB0_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB0_SET_AVMUTE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB0_CLR_AVMUTE 0x00000010 /* RW--V */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_GCP_SUBPACK_SB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL(i) (0x006F0100+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_ENABLE_NO 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_ENABLE_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_ENABLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_OTHER 4:4 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_OTHER_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_OTHER_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_SINGLE 8:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_SINGLE_DIS 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_SINGLE_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW 9:9 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW_EN 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW_DIS 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_CHKSUM_HW_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_VIDEO_FMT 16:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_VIDEO_FMT_SW_CONTROLLED 0x00000000 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_VIDEO_FMT_HW_CONTROLLED 0x00000001 /* RW--V */
+#define NV_PDISP_SF_HDMI_VSI_CTRL_VIDEO_FMT_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_STATUS(i) (0x006F0104+(i)*1024) /* R--4A */
+#define NV_PDISP_SF_HDMI_VSI_STATUS__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_STATUS_SENT 0:0 /* R-IVF */
+#define NV_PDISP_SF_HDMI_VSI_STATUS_SENT_DONE 0x00000001 /* R---V */
+#define NV_PDISP_SF_HDMI_VSI_STATUS_SENT_WAITING 0x00000000 /* R---V */
+#define NV_PDISP_SF_HDMI_VSI_STATUS_SENT_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_HDMI_VSI_HEADER(i) (0x006F0108+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW(i) (0x006F010C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_LOW_PB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH(i) (0x006F0110+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB4 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB5 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB6 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK0_HIGH_PB6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW(i) (0x006F0114+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB7 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB8 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB9 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB10 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_LOW_PB10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH(i) (0x006F0118+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB11 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB12 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB13 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK1_HIGH_PB13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW(i) (0x006F011C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB14 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB15 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB16 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB17 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_LOW_PB17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH(i) (0x006F0120+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB18 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB19 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB20 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK2_HIGH_PB20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW(i) (0x006F0124+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB21 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB22 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB23 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB24 31:24 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_LOW_PB24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH(i) (0x006F0128+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH__SIZE_1 8 /* */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB25 7:0 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB26 15:8 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB27 23:16 /* RWIVF */
+#define NV_PDISP_SF_HDMI_VSI_SUBPACK3_HIGH_PB27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL(i) (0x006F0300+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_IMMEDIATE 1:1 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_IMMEDIATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_IMMEDIATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_IMMEDIATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_IMMEDIATE_TRIGGER 0x00000001 /* -W--T */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_MSA_STEREO_OVERRIDE 2:2 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_MSA_STEREO_OVERRIDE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_MSA_STEREO_OVERRIDE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_CTRL_MSA_STEREO_OVERRIDE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER(i) (0x006F0304+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_HEADER_HB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0(i) (0x006F0308+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK0_DB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1(i) (0x006F030C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB4 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB5 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB6 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB7 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK1_DB7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2(i) (0x006F0310+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB8 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB9 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB10 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB11 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK2_DB11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3(i) (0x006F0314+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB12 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB13 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB14 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB15 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK3_DB15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4(i) (0x006F0318+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB16 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB17 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB18 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB19 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK4_DB19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5(i) (0x006F031C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB20 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB21 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB22 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB23 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK5_DB23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6(i) (0x006F0320+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB24 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB25 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB26 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB27 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK6_DB27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7(i) (0x006F0324+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB28 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB28_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB29 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB29_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB30 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB30_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB31 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME_SUBPACK7_DB31_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL(i) (0x006F0330+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL_HEADER_OVERRIDE 4:4 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL_HEADER_OVERRIDE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL_HEADER_OVERRIDE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_CTRL_HEADER_OVERRIDE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER(i) (0x006F0334+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_AUDIO_INFOFRAME_HEADER_HB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER(i) (0x006F0344+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_HEADER_HB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0(i) (0x006F0348+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB0 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB0_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB1 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB1_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB2 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB2_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB3 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK0_DB3_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1(i) (0x006F034C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB4 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB4_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB5 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB5_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB6 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB6_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB7 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK1_DB7_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2(i) (0x006F0350+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB8 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB8_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB9 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB9_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB10 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB10_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB11 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK2_DB11_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3(i) (0x006F0354+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB12 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB12_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB13 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB13_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB14 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB14_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB15 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK3_DB15_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4(i) (0x006F0358+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB16 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB16_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB17 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB17_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB18 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB18_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB19 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK4_DB19_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5(i) (0x006F035C+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB20 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB20_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB21 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB21_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB22 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB22_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB23 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK5_DB23_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6(i) (0x006F0360+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB24 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB24_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB25 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB25_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB26 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB26_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB27 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK6_DB27_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7(i) (0x006F0364+(i)*1024) /* RWX4A */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7__SIZE_1 8 /* */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB28 7:0 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB28_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB29 15:8 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB29_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB30 23:16 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB30_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB31 31:24 /* RWIVF */
+#define NV_PDISP_SF_DP_GENERIC_INFOFRAME1_SUBPACK7_DB31_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_CAP(i) (0x0061C000+(i)*2048) /* R--4A */
+#define NV_PDISP_SOR_CAP__SIZE_1 8 /* */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_18 0:0 /* R--VF */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_18_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_18_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_24 1:1 /* R--VF */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_24_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_LVDS_24_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_18 2:2 /* R--VF */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_18_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_18_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_24 3:3 /* R--VF */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_24_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_LVDS_24_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_A 8:8 /* R--VF */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_A_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_A_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_B 9:9 /* R--VF */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_B_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_SINGLE_TMDS_B_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_TMDS 11:11 /* R--VF */
+#define NV_PDISP_SOR_CAP_DUAL_TMDS_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DUAL_TMDS_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DISPLAY_OVER_PCIE 13:13 /* R--VF */
+#define NV_PDISP_SOR_CAP_DISPLAY_OVER_PCIE_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DISPLAY_OVER_PCIE_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_SDI 16:16 /* R--VF */
+#define NV_PDISP_SOR_CAP_SDI_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_SDI_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_A 24:24 /* R--VF */
+#define NV_PDISP_SOR_CAP_DP_A_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_A_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_B 25:25 /* R--VF */
+#define NV_PDISP_SOR_CAP_DP_B_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_B_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_INTERLACE 26:26 /* R--VF */
+#define NV_PDISP_SOR_CAP_DP_INTERLACE_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_INTERLACE_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_8_LANES 27:27 /* R--VF */
+#define NV_PDISP_SOR_CAP_DP_8_LANES_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_DP_8_LANES_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_CAP_LVDS_ONLY 31:31 /* R--VF */
+#define NV_PDISP_SOR_CAP_LVDS_ONLY_FALSE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_CAP_LVDS_ONLY_TRUE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_PWR(i) (0x0061C004+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_PWR__SIZE_1 8 /* */
+#define NV_PDISP_SOR_PWR_NORMAL_STATE 0:0 /* RWIVF */
+#define NV_PDISP_SOR_PWR_NORMAL_STATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWR_NORMAL_STATE_PD 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_PWR_NORMAL_STATE_PU 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_PWR_NORMAL_START 1:1 /* RWIVF */
+#define NV_PDISP_SOR_PWR_NORMAL_START_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWR_NORMAL_START_NORMAL 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_PWR_NORMAL_START_ALT 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_PWR_SAFE_STATE 16:16 /* RWIVF */
+#define NV_PDISP_SOR_PWR_SAFE_STATE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWR_SAFE_STATE_PD 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_PWR_SAFE_STATE_PU 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_PWR_SAFE_START 17:17 /* RWIVF */
+#define NV_PDISP_SOR_PWR_SAFE_START_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWR_SAFE_START_NORMAL 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_PWR_SAFE_START_ALT 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_PWR_HALT_DELAY 24:24 /* R--VF */
+#define NV_PDISP_SOR_PWR_HALT_DELAY_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_PWR_HALT_DELAY_ACTIVE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_PWR_MODE 28:28 /* R-IVF */
+#define NV_PDISP_SOR_PWR_MODE_INIT 0x00000001 /* R-I-V */
+#define NV_PDISP_SOR_PWR_MODE_NORMAL 0x00000000 /* R---V */
+#define NV_PDISP_SOR_PWR_MODE_SAFE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_PWR_SETTING_NEW 31:31 /* RWIVF */
+#define NV_PDISP_SOR_PWR_SETTING_NEW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SOR_PWR_SETTING_NEW_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_PWR_SETTING_NEW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SOR_PWR_SETTING_NEW_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_SOR_TEST(i) (0x0061C008+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_TEST__SIZE_1 8 /* */
+#define NV_PDISP_SOR_TEST_ACT_HEAD_OPMODE 9:8 /* R--UF */
+#define NV_PDISP_SOR_TEST_ACT_HEAD_OPMODE_SLEEP 0x00000000 /* R---V */
+#define NV_PDISP_SOR_TEST_ACT_HEAD_OPMODE_SNOOZE 0x00000001 /* R---V */
+#define NV_PDISP_SOR_TEST_ACT_HEAD_OPMODE_AWAKE 0x00000002 /* R---V */
+#define NV_PDISP_SOR_TEST_OWNER_MASK 13:10 /* R--UF */
+#define NV_PDISP_SOR_TEST_OWNER_MASK_HEAD0 0x00000001 /* R---V */
+#define NV_PDISP_SOR_TEST_OWNER_MASK_HEAD1 0x00000002 /* R---V */
+#define NV_PDISP_SOR_TEST_OWNER_MASK_HEAD2 0x00000004 /* R---V */
+#define NV_PDISP_SOR_TEST_OWNER_MASK_HEAD3 0x00000008 /* R---V */
+#define NV_PDISP_SOR_TEST_OWNER_MASK_NONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_PWM_DIV(i) (0x0061C080+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_PWM_DIV__SIZE_1 8 /* */
+#define NV_PDISP_SOR_PWM_DIV_DIVIDE 23:0 /* RWIUF */
+#define NV_PDISP_SOR_PWM_DIV_DIVIDE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWM_CTL(i) (0x0061C084+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_PWM_CTL__SIZE_1 8 /* */
+#define NV_PDISP_SOR_PWM_CTL_DUTY_CYCLE 23:0 /* RWIUF */
+#define NV_PDISP_SOR_PWM_CTL_DUTY_CYCLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWM_CTL_CLKSEL 30:30 /* RWIUF */
+#define NV_PDISP_SOR_PWM_CTL_CLKSEL_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_PWM_CTL_CLKSEL_PCLK 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_PWM_CTL_CLKSEL_XTAL 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_PWM_CTL_SETTING_NEW 31:31 /* RWIVF */
+#define NV_PDISP_SOR_PWM_CTL_SETTING_NEW_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SOR_PWM_CTL_SETTING_NEW_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_PWM_CTL_SETTING_NEW_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SOR_PWM_CTL_SETTING_NEW_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_SOR_DP_LINKCTL(i,j) (0x0061C10C+(i)*2048+(j)*128) /* RW-4A */
+#define NV_PDISP_SOR_DP_LINKCTL__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LINKCTL__SIZE_2 2 /* */
+#define NV_PDISP_SOR_DP_LINKCTL_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_ASYNC_FIFO_BLOCK 1:1 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_ASYNC_FIFO_BLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_ASYNC_FIFO_BLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_ASYNC_FIFO_BLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_ENHANCEDFRAME 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_ENHANCEDFRAME_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_ENHANCEDFRAME_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_ENHANCEDFRAME_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT 23:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_TWO 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_FOUR 0x0000000F /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LANECOUNT_EIGHT 0x000000FF /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN 27:26 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN_D102 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN_SBLERRRATE 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_LINKQUALPTTRN_PRBS7 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORMAT_MODE 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_FORMAT_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORMAT_MODE_SINGLE_STREAM 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORMAT_MODE_MULTI_STREAM 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORCE_IDLEPTTRN 31:31 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL_FORCE_IDLEPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORCE_IDLEPTTRN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL_FORCE_IDLEPTTRN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ASYNC_FIFO_BLOCK 1:1 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_ASYNC_FIFO_BLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ASYNC_FIFO_BLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ASYNC_FIFO_BLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENHANCEDFRAME 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENHANCEDFRAME_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENHANCEDFRAME_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_ENHANCEDFRAME_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT 23:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_TWO 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_FOUR 0x0000000F /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LANECOUNT_EIGHT 0x000000FF /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN 27:26 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN_D102 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN_SBLERRRATE 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_LINKQUALPTTRN_PRBS7 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORMAT_MODE 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORMAT_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORMAT_MODE_SINGLE_STREAM 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORMAT_MODE_MULTI_STREAM 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORCE_IDLEPTTRN 31:31 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORCE_IDLEPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORCE_IDLEPTTRN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL0_FORCE_IDLEPTTRN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENABLE_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENABLE_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ASYNC_FIFO_BLOCK 1:1 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_ASYNC_FIFO_BLOCK_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ASYNC_FIFO_BLOCK_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ASYNC_FIFO_BLOCK_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENHANCEDFRAME 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENHANCEDFRAME_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENHANCEDFRAME_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_ENHANCEDFRAME_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT 23:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_ONE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_TWO 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_FOUR 0x0000000F /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LANECOUNT_EIGHT 0x000000FF /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN 27:26 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN_D102 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN_SBLERRRATE 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_LINKQUALPTTRN_PRBS7 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORMAT_MODE 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORMAT_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORMAT_MODE_SINGLE_STREAM 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORMAT_MODE_MULTI_STREAM 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORCE_IDLEPTTRN 31:31 /* RWIVF */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORCE_IDLEPTTRN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORCE_IDLEPTTRN_NO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_LINKCTL1_FORCE_IDLEPTTRN_YES 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG(i,j) (0x0061C110+(i)*2048+(j)*28) /* RW-4A */
+#define NV_PDISP_SOR_DP_TPG__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_TPG__SIZE_2 2 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN 3:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_SCRAMBLEREN 4:4 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE0_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_CHANNELCODING 6:6 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE0_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE0_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN 11:8 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_SCRAMBLEREN 12:12 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE1_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_CHANNELCODING 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE1_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE1_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN 19:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_SCRAMBLEREN 20:20 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE2_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_CHANNELCODING 22:22 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE2_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE2_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN 27:24 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_SCRAMBLEREN 28:28 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE3_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_CHANNELCODING 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_LANE3_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE3_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN(i) (3+(i)*8):((i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_NOPATTERN 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_TRAINING1 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_TRAINING2 0x00000002 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_TRAINING3 0x00000003 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_D102 0x00000004 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_SBLERRRATE 0x00000005 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_PRBS7 0x00000006 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_CSTM 0x00000007 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_HBR2_COMPLIANCE 0x00000008 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_CP2520_PAT1 0x00000009 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_CP2520_PAT3 0x0000000A /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_PATTERN_TRAINING4 0x0000000B /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_SCRAMBLEREN(i) (4+(i)*8):(4+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_SCRAMBLEREN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_SCRAMBLEREN_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_SCRAMBLEREN_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_SCRAMBLEREN_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_CHANNELCODING(i) (6+(i)*8):(6+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_CHANNELCODING__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_CHANNELCODING_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_CHANNELCODING_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG_LANE_CHANNELCODING_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG0__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN 3:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_SCRAMBLEREN 4:4 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_CHANNELCODING 6:6 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE0_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN 11:8 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_SCRAMBLEREN 12:12 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_CHANNELCODING 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE1_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN 19:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_SCRAMBLEREN 20:20 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_CHANNELCODING 22:22 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE2_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN 27:24 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_SCRAMBLEREN 28:28 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_CHANNELCODING 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE3_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN(i) (3+(i)*8):((i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_NOPATTERN 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_TRAINING1 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_TRAINING2 0x00000002 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_TRAINING3 0x00000003 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_D102 0x00000004 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_SBLERRRATE 0x00000005 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_PRBS7 0x00000006 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_CSTM 0x00000007 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_HBR2_COMPLIANCE 0x00000008 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_CP2520_PAT1 0x00000009 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_CP2520_PAT3 0x0000000A /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_PATTERN_TRAINING4 0x0000000B /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_SCRAMBLEREN(i) (4+(i)*8):(4+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_SCRAMBLEREN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_SCRAMBLEREN_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_SCRAMBLEREN_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_SCRAMBLEREN_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_CHANNELCODING(i) (6+(i)*8):(6+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_CHANNELCODING__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_CHANNELCODING_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_CHANNELCODING_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG0_LANE_CHANNELCODING_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG1__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN 3:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_SCRAMBLEREN 4:4 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_CHANNELCODING 6:6 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE0_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN 11:8 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_SCRAMBLEREN 12:12 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_CHANNELCODING 14:14 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE1_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN 19:16 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_SCRAMBLEREN 20:20 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_CHANNELCODING 22:22 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE2_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN 27:24 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_NOPATTERN 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_TRAINING1 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_TRAINING2 0x00000002 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_TRAINING3 0x00000003 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_D102 0x00000004 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_SBLERRRATE 0x00000005 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_PRBS7 0x00000006 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_CSTM 0x00000007 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_HBR2_COMPLIANCE 0x00000008 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_CP2520_PAT1 0x00000009 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_CP2520_PAT3 0x0000000A /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_PATTERN_TRAINING4 0x0000000B /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_SCRAMBLEREN 28:28 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_SCRAMBLEREN_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_SCRAMBLEREN_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_SCRAMBLEREN_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_CHANNELCODING 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_CHANNELCODING_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_CHANNELCODING_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE3_CHANNELCODING_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN(i) (3+(i)*8):((i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_NOPATTERN 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_TRAINING1 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_TRAINING2 0x00000002 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_TRAINING3 0x00000003 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_D102 0x00000004 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_SBLERRRATE 0x00000005 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_PRBS7 0x00000006 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_CSTM 0x00000007 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_HBR2_COMPLIANCE 0x00000008 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_CP2520_PAT1 0x00000009 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_CP2520_PAT3 0x0000000A /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_PATTERN_TRAINING4 0x0000000B /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_SCRAMBLEREN(i) (4+(i)*8):(4+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_SCRAMBLEREN__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_SCRAMBLEREN_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_SCRAMBLEREN_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_SCRAMBLEREN_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_CHANNELCODING(i) (6+(i)*8):(6+(i)*8) /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_CHANNELCODING__SIZE_1 4 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_CHANNELCODING_INIT 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_CHANNELCODING_ENABLE 0x00000001 /* */
+#define NV_PDISP_SOR_DP_TPG1_LANE_CHANNELCODING_DISABLE 0x00000000 /* */
+#define NV_PDISP_SOR_DP_TPG_CONFIG(i) (0x0061C114+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_TPG_CONFIG__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_TPG_CONFIG_HBR2_COMPLIANCE_PERIOD 16:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_TPG_CONFIG_HBR2_COMPLIANCE_PERIOD_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_MS_CTL(i) (0x0061C150+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_MS_CTL__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_MS_CTL_SEND_ACT 0:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_MS_CTL_SEND_ACT_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_MS_CTL_SEND_ACT_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_MS_CTL_SEND_ACT_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_MS_CTL_SF_MASK 11:8 /* RWIVF */
+#define NV_PDISP_SOR_DP_MS_CTL_SF_MASK_INIT 0x0000000F /* RWI-V */
+#define NV_PDISP_SOR_DP_MS_CTL_SIXTEEN_MTP_AFTER_TRIG_IMMEDIATE_DONE 29:29 /* RWIVF */
+#define NV_PDISP_SOR_DP_MS_CTL_SIXTEEN_MTP_AFTER_TRIG_IMMEDIATE_DONE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SOR_DP_MS_CTL_SIXTEEN_MTP_AFTER_TRIG_IMMEDIATE_DONE_YES 0x00000001 /* R---V */
+#define NV_PDISP_SOR_DP_MS_CTL_SIXTEEN_MTP_AFTER_TRIG_IMMEDIATE_DONE_NO 0x00000000 /* R---V */
+#define NV_PDISP_SOR_DP_MS_CTL_SIXTEEN_MTP_AFTER_TRIG_IMMEDIATE_DONE_RESET 0x00000000 /* -W--V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_ON_ATTACH 30:30 /* RWIVF */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_ON_ATTACH_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_ON_ATTACH_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_ON_ATTACH_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_IMMEDIATE 31:31 /* RWIVF */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_IMMEDIATE_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_IMMEDIATE_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_IMMEDIATE_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SOR_DP_MS_CTL_TRIG_IMMEDIATE_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_SOR_DP_LQ_CSTM(i,j) (0x0061C154+(i)*2048+(j)*4) /* RW-4A */
+#define NV_PDISP_SOR_DP_LQ_CSTM__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LQ_CSTM__SIZE_2 3 /* */
+#define NV_PDISP_SOR_DP_LQ_CSTM_SYM 31:0 /* RWIUF */
+#define NV_PDISP_SOR_DP_LQ_CSTM_SYM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LQ_CSTM0(i) (0x0061C154+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_LQ_CSTM0__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LQ_CSTM0_SYM 31:0 /* RWIUF */
+#define NV_PDISP_SOR_DP_LQ_CSTM0_SYM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LQ_CSTM1(i) (0x0061C158+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_LQ_CSTM1__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LQ_CSTM1_SYM 31:0 /* RWIUF */
+#define NV_PDISP_SOR_DP_LQ_CSTM1_SYM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_LQ_CSTM2(i) (0x0061C15C+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_LQ_CSTM2__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_LQ_CSTM2_SYM 31:0 /* RWIUF */
+#define NV_PDISP_SOR_DP_LQ_CSTM2_SYM_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_ECF0(i) (0x0061C160+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_ECF0__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_ECF0_VALUE 31:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_ECF0_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_ECF0_VALUE_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_ECF1(i) (0x0061C164+(i)*2048) /* RW-4A */
+#define NV_PDISP_SOR_DP_ECF1__SIZE_1 8 /* */
+#define NV_PDISP_SOR_DP_ECF1_VALUE 30:0 /* RWIVF */
+#define NV_PDISP_SOR_DP_ECF1_VALUE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_DP_ECF1_VALUE_ZERO 0x00000000 /* RW--V */
+#define NV_PDISP_SOR_DP_ECF1_NEW_SETTINGS 31:31 /* RWIVF */
+#define NV_PDISP_SOR_DP_ECF1_NEW_SETTINGS_INIT 0x00000000 /* R-I-V */
+#define NV_PDISP_SOR_DP_ECF1_NEW_SETTINGS_DONE 0x00000000 /* R---V */
+#define NV_PDISP_SOR_DP_ECF1_NEW_SETTINGS_PENDING 0x00000001 /* R---V */
+#define NV_PDISP_SOR_DP_ECF1_NEW_SETTINGS_TRIGGER 0x00000001 /* -W--V */
+#define NV_PDISP_SOR_HDMI2_CTRL(i) (0x0061C5BC+(i)*2048) /* RWX4A */
+#define NV_PDISP_SOR_HDMI2_CTRL__SIZE_1 8 /* */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE 0:0 /* RWIVF */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE_DISABLE 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_HDMI2_CTRL_CLOCK_MODE 1:1 /* RWIVF */
+#define NV_PDISP_SOR_HDMI2_CTRL_CLOCK_MODE_NORMAL 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_HDMI2_CTRL_CLOCK_MODE_DIV_BY_4 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE_AT_LOADV 2:2 /* RWIVF */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE_AT_LOADV_DISABLE 0x00000000 /* RWI-V */
+#define NV_PDISP_SOR_HDMI2_CTRL_SCRAMBLE_AT_LOADV_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_SOR_HDMI2_CTRL_SSCP_LENGTH 7:4 /* RWIVF */
+#define NV_PDISP_SOR_HDMI2_CTRL_SSCP_LENGTH_INIT 0x00000008 /* RWI-V */
+#define NV_PDISP_SOR_HDMI2_CTRL_SSCP_START 31:16 /* RWIVF */
+#define NV_PDISP_SOR_HDMI2_CTRL_SSCP_START_INIT 0x00000214 /* RWI-V */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH(i) (0x00625E00+(i)*4) /* RW-4A */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH__SIZE_1 16 /* */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH_BYTE3 31:24 /* RWX-F */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH_BYTE2 23:16 /* RWX-F */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH_BYTE1 15:8 /* RWX-F */
+#define NV_PDISP_VGA_INDIRECT_SCRATCH_BYTE0 7:0 /* RWX-F */
+#define NV_PDISP_VGA_BASE 0x00625F00 /* RW-4R */
+#define NV_PDISP_VGA_BASE_TARGET 1:0 /* RWIVF */
+#define NV_PDISP_VGA_BASE_TARGET_PHYS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_VGA_BASE_TARGET_PHYS_NVM 0x00000001 /* RW--V */
+#define NV_PDISP_VGA_BASE_TARGET_PHYS_PCI 0x00000002 /* RW--V */
+#define NV_PDISP_VGA_BASE_TARGET_PHYS_PCI_COHERENT 0x00000003 /* RW--V */
+#define NV_PDISP_VGA_BASE_STATUS 3:3 /* RWIVF */
+#define NV_PDISP_VGA_BASE_STATUS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_VGA_BASE_STATUS_INVALID 0x00000000 /* RW--V */
+#define NV_PDISP_VGA_BASE_STATUS_VALID 0x00000001 /* RW--V */
+#define NV_PDISP_VGA_BASE_ADDR 31:10 /* RWIVF */
+#define NV_PDISP_VGA_BASE_ADDR_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_VGA_WORKSPACE_BASE 0x00625F04 /* RW-4R */
+#define NV_PDISP_VGA_WORKSPACE_BASE_TARGET 1:0 /* RWIVF */
+#define NV_PDISP_VGA_WORKSPACE_BASE_TARGET_PHYS_INIT 0x00000001 /* RWI-V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_TARGET_PHYS_NVM 0x00000001 /* RW--V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_TARGET_PHYS_PCI 0x00000002 /* RW--V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_TARGET_PHYS_PCI_COHERENT 0x00000003 /* RW--V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_STATUS 3:3 /* RWIVF */
+#define NV_PDISP_VGA_WORKSPACE_BASE_STATUS_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_STATUS_INVALID 0x00000000 /* RW--V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_STATUS_VALID 0x00000001 /* RW--V */
+#define NV_PDISP_VGA_WORKSPACE_BASE_ADDR 31:8 /* RWIVF */
+#define NV_PDISP_VGA_WORKSPACE_BASE_ADDR_INIT 0x00000000 /* RWI-V */
+#define NV_UDISP 0x006FFFFF:0x00670000 /* RW--D */
+#define NV_UDISP_PVT 0x0067FFFF:0x00670000 /* RW--D */
+#define NV_UDISP_CORE 0x0068FFFF:0x00680000 /* RW--D */
+#define NV_UDISP_REMAP 0x006FFFFF:0x00690000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE0 0x0069FFFF:0x00690000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE1 0x006AFFFF:0x006A0000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE2 0x006BFFFF:0x006B0000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE3 0x006CFFFF:0x006C0000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE4 0x006DFFFF:0x006D0000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE5 0x006EFFFF:0x006E0000 /* RW--D */
+#define NV_UDISP_REMAP_PAGE6 0x006FFFFF:0x006F0000 /* RW--D */
+#define NV_UDISP_FE_CORE_PUT 0x00680000 /* RW-4R */
+#define NV_UDISP_FE_CORE_PUT_POINTER 11:2 /* RWIUF */
+#define NV_UDISP_FE_CORE_PUT_POINTER_INIT 0x00000000 /* RWI-V */
+#define NV_UDISP_FE_CORE_PUT_POINTER_STATUS 31:31 /* R-IVF */
+#define NV_UDISP_FE_CORE_PUT_POINTER_STATUS_INIT 0x00000001 /* R-I-V */
+#define NV_UDISP_FE_CORE_PUT_POINTER_STATUS_WRITABLE 0x00000000 /* R---V */
+#define NV_UDISP_FE_CORE_PUT_POINTER_STATUS_LOCKED 0x00000001 /* R---V */
+#define NV_UDISP_FE_CORE_GET 0x00680004 /* R--4R */
+#define NV_UDISP_FE_CORE_GET_POINTER 11:2 /* R--UF */
+#define NV_UDISP_FE_SAT_PUT(i) (0x00690000+(i)*4096) /* RW-4A */
+#define NV_UDISP_FE_SAT_PUT__SIZE_1 72 /* */
+#define NV_UDISP_FE_SAT_PUT_POINTER 11:2 /* RWIUF */
+#define NV_UDISP_FE_SAT_PUT_POINTER_INIT 0x00000000 /* RWI-V */
+#define NV_UDISP_FE_SAT_PUT_POINTER_STATUS 31:31 /* R-IVF */
+#define NV_UDISP_FE_SAT_PUT_POINTER_STATUS_INIT 0x00000001 /* R-I-V */
+#define NV_UDISP_FE_SAT_PUT_POINTER_STATUS_WRITABLE 0x00000000 /* R---V */
+#define NV_UDISP_FE_SAT_PUT_POINTER_STATUS_LOCKED 0x00000001 /* R---V */
+#define NV_UDISP_FE_SAT_GET(i) (0x00690004+(i)*4096) /* R--4A */
+#define NV_UDISP_FE_SAT_GET__SIZE_1 72 /* */
+#define NV_UDISP_FE_SAT_GET_POINTER 11:2 /* R--UF */
+#define NV_UDISP_FE_PUT(i) ((i)>0?((0x00690000+((i-1)*4096))):0x00680000) /* */
+#define NV_UDISP_FE_PUT__SIZE_1 73 /* */
+#define NV_UDISP_FE_PUT_POINTER 11:2 /* */
+#define NV_UDISP_FE_PUT_POINTER_INIT 0x00000000 /* */
+#define NV_UDISP_FE_PUT_POINTER_STATUS 31:31 /* */
+#define NV_UDISP_FE_PUT_POINTER_STATUS_INIT 0x00000001 /* */
+#define NV_UDISP_FE_PUT_POINTER_STATUS_WRITABLE 0x00000000 /* */
+#define NV_UDISP_FE_PUT_POINTER_STATUS_LOCKED 0x00000001 /* */
+#define NV_UDISP_FE_GET(i) ((i)>0?((0x00690004+((i-1)*4096))):0x00680004) /* */
+#define NV_UDISP_FE_GET__SIZE_1 73 /* */
+#define NV_UDISP_FE_GET_POINTER 11:2 /* */
+#define NV_UDISP_FE_CHN_ARMED_PCALC 0x00670000 /* R--4R */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WIN_PVT(i) (0x00674000+(i)*1024) /* R--4A */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WIN_PVT__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WIN_PVT(i) (0x00674200+(i)*1024) /* R--4A */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WIN_PVT__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ASSY_CORE_PVT 0x0067E000 /* R--4R */
+#define NV_UDISP_FE_CHN_ARMED_CORE_PVT 0x0067E800 /* R--4R */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_CORE 0x00680000 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_CORE (0x00680000+32768) /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WIN(i) ((0x00690000+(i)*4096)) /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WIN__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WIN(i) ((0x00690000+(i)*4096)+2048) /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WIN__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WINIM(i) ((0x00690000+((i+32)*4096))) /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_WINIM__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WINIM(i) ((0x00690000+((i+32)*4096))+2048) /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_WINIM__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_CURS(i) (0x006D8000+(i)*4096) /* RW-4A */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR_CURS__SIZE_1 8 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_CURS(i) (0x006D8800+(i)*4096) /* R--4A */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR_CURS__SIZE_1 8 /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR(i) ((i)>0?(((0x00690000+(i-1)*4096))):0x00680000) /* */
+#define NV_UDISP_FE_CHN_ASSY_BASEADR__SIZE_1 81 /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR(i) ((i)>0?(((0x00690000+(i-1)*4096)+2048)):(0x00680000+32768)) /* */
+#define NV_UDISP_FE_CHN_ARMED_BASEADR__SIZE_1 81 /* */
+#define NV_UDISP_FE_CHN_PCALC 0x00670000 /* R--4R */
+#define NV_UDISP_FE_CHN_CORE_PVT 0x0067E000 /* R--4R */
+#define NV_UDISP_FE_CHN_WIN_PVT(i) (0x00674000+(i)*1024) /* R--4A */
+#define NV_UDISP_FE_CHN_WIN_PVT__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_CORE_VARIABLES 0x0067E400 /* R--4R */
+#define NV_UDISP_FE_CHN_LOCAL 0x0067E800 /* R--4R */
+#define NV_UDISP_FE_CHN_CORE 0x00680000 /* */
+#define NV_UDISP_FE_CHN_WIN(i) (((0x00690000+(i)*4096))) /* */
+#define NV_UDISP_FE_CHN_WIN__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_WINIM(i) (((0x00690000+((i+32)*4096)))) /* */
+#define NV_UDISP_FE_CHN_WINIM__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_CURS(i) ((0x006D8000+(i)*4096)) /* */
+#define NV_UDISP_FE_CHN_CURS__SIZE_1 8 /* */
+#define NV_UDISP_FE_CHN_CORE_BASEADR 0x00680000 /* */
+#define NV_UDISP_FE_CHN_WIN_BASEADR(i) (((0x00690000+(i)*4096))) /* */
+#define NV_UDISP_FE_CHN_WIN_BASEADR__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_WINIM_BASEADR(i) (((0x00690000+((i+32)*4096)))) /* */
+#define NV_UDISP_FE_CHN_WINIM_BASEADR__SIZE_1 32 /* */
+#define NV_UDISP_FE_CHN_CURS_BASEADR(i) ((0x006D8000+(i)*4096)) /* */
+#define NV_UDISP_FE_CHN_CURS_BASEADR__SIZE_1 8 /* */
+#define NV_UDISP_DMA /* ----G */
+#define NV_UDISP_DMA_OPCODE 31:29 /* RWXVF */
+#define NV_UDISP_DMA_OPCODE_METHOD 0x00000000 /* RW--V */
+#define NV_UDISP_DMA_OPCODE_JUMP 0x00000001 /* RW--V */
+#define NV_UDISP_DMA_OPCODE_NONINC_METHOD 0x00000002 /* RW--V */
+#define NV_UDISP_DMA_OPCODE_SET_SUBDEVICE_MASK 0x00000003 /* RW--V */
+#define NV_UDISP_DMA_METHOD_COUNT 27:18 /* RWXUF */
+#define NV_UDISP_DMA_METHOD_OFFSET 13:2 /* RWXUF */
+#define NV_UDISP_DMA_DATA 31:0 /* RWXUF */
+#define NV_UDISP_DMA_DATA_NOP 0x00000000 /* RW--V */
+#define NV_UDISP_DMA_JUMP_OFFSET 11:2 /* RWXUF */
+#define NV_UDISP_DMA_SET_SUBDEVICE_MASK_VALUE 11:0 /* RWXUF */
diff --git a/manuals/volta/gv100/dev_fifo.ref.txt b/manuals/volta/gv100/dev_fifo.ref.txt
new file mode 100644
index 0000000..dcb055e
--- /dev/null
+++ b/manuals/volta/gv100/dev_fifo.ref.txt
@@ -0,0 +1,639 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+#define NV_PFIFO_CFG0 0x00002004 /* R--4R */
+#define NV_PFIFO_CFG0_NUM_PBDMA 7:0 /* R-IUF */
+#define NV_PFIFO_CFG0_NUM_PBDMA_INIT 14 /* R-I-V */
+#define NV_PFIFO_CFG0_PBDMA_FAULT_ID 23:16 /* R-IUF */
+#define NV_PFIFO_CFG0_PBDMA_FAULT_ID_INIT 32 /* R-I-V */
+#define NV_PFIFO_CFG1 0x00002008 /* R--4R */
+#define NV_PFIFO_CFG1_NUM_CHANNELS 31:0 /* R-IUF */
+#define NV_PFIFO_CFG1_NUM_CHANNELS_INIT 4096 /* R-I-V */
+#define NV_PFIFO_CFG2 0x0000200c /* R--4R */
+#define NV_PFIFO_CFG2_HOST_CLASS_ID 15:0 /* R-IUF */
+#define NV_PFIFO_CFG2_HOST_CLASS_ID_VALUE 50031 /* R-I-V */
+#define NV_PFIFO_CONFIG 0x00002200 /* RW-4R */
+#define NV_PFIFO_CONFIG_L2_EVICT 9:8 /* RWIVF */
+#define NV_PFIFO_CONFIG_L2_EVICT_FIRST 0x00000000 /* RWI-V */
+#define NV_PFIFO_CONFIG_L2_EVICT_NORMAL 0x00000001 /* RW--V */
+#define NV_PFIFO_ACQ_PRETEST 0x00002250 /* RW-4R */
+#define NV_PFIFO_ACQ_PRETEST_TIMEOUT 7:0 /* RWIUF */
+#define NV_PFIFO_ACQ_PRETEST_TIMEOUT_8 0x00000008 /* RWI-V */
+#define NV_PFIFO_ACQ_PRETEST_TIMESCALE 15:12 /* RWIUF */
+#define NV_PFIFO_ACQ_PRETEST_TIMESCALE_0 0x00000000 /* RWI-V */
+#define NV_PFIFO_ACQ_PRETEST_TIMESCALE_10 0x0000000a /* RW--V */
+#define NV_PFIFO_USERD_WRITEBACK 0x0000225C /* RW-4R */
+#define NV_PFIFO_USERD_WRITEBACK_TIMER 7:0 /* RWIUF */
+#define NV_PFIFO_USERD_WRITEBACK_TIMER_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_USERD_WRITEBACK_TIMER_SHORT 0x00000003 /* RW--V */
+#define NV_PFIFO_USERD_WRITEBACK_TIMER_100US 0x00000064 /* RWI-V */
+#define NV_PFIFO_USERD_WRITEBACK_TIMESCALE 15:12 /* RWIUF */
+#define NV_PFIFO_USERD_WRITEBACK_TIMESCALE_0 0x00000000 /* RWI-V */
+#define NV_PFIFO_USERD_WRITEBACK_TIMESCALE_SHORT 0x00000000 /* */
+#define NV_PFIFO_USERD_WRITEBACK_TIMESCALE_100US 0x00000000 /* */
+#define NV_PCCSR_CHANNEL_INST(i) (0x00800000+(i)*8) /* RW-4A */
+#define NV_PCCSR_CHANNEL_INST__SIZE_1 4096 /* */
+#define NV_PCCSR_CHANNEL_INST_PTR 27:0 /* RWXUF */
+#define NV_PCCSR_CHANNEL_INST_TARGET 29:28 /* RWXVF */
+#define NV_PCCSR_CHANNEL_INST_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_PCCSR_CHANNEL_INST_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PCCSR_CHANNEL_INST_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PCCSR_CHANNEL_INST_BIND 31:31 /* RWIVF */
+#define NV_PCCSR_CHANNEL_INST_BIND_FALSE 0x00000000 /* RWI-V */
+#define NV_PCCSR_CHANNEL_INST_BIND_TRUE 0x00000001 /* RW--V */
+#define NV_PCCSR_CHANNEL_INST_PTR_ALIGN_SHIFT 12 /* */
+#define NV_PCCSR_CHANNEL(i) (0x00800004+(i)*8) /* RW-4A */
+#define NV_PCCSR_CHANNEL__SIZE_1 4096 /* */
+#define NV_PCCSR_CHANNEL_ENABLE 0:0 /* R-IVF */
+#define NV_PCCSR_CHANNEL_ENABLE_NOT_IN_USE 0x00000000 /* R-I-V */
+#define NV_PCCSR_CHANNEL_ENABLE_IN_USE 0x00000001 /* R---V */
+#define NV_PCCSR_CHANNEL_NEXT 1:1 /* RWIVF */
+#define NV_PCCSR_CHANNEL_NEXT_FALSE 0x00000000 /* RWI-V */
+#define NV_PCCSR_CHANNEL_NEXT_TRUE 0x00000001 /* RW--V */
+#define NV_PCCSR_CHANNEL_FORCE_CTX_RELOAD 8:8 /* -W-VF */
+#define NV_PCCSR_CHANNEL_FORCE_CTX_RELOAD_FALSE 0x00000000 /* -W--T */
+#define NV_PCCSR_CHANNEL_FORCE_CTX_RELOAD_TRUE 0x00000001 /* -W--T */
+#define NV_PCCSR_CHANNEL_ENABLE_SET 10:10 /* -W-VF */
+#define NV_PCCSR_CHANNEL_ENABLE_SET_TRUE 0x00000001 /* -W--T */
+#define NV_PCCSR_CHANNEL_ENABLE_SET_FALSE 0x00000000 /* -W--T */
+#define NV_PCCSR_CHANNEL_ENABLE_CLR 11:11 /* -W-VF */
+#define NV_PCCSR_CHANNEL_ENABLE_CLR_TRUE 0x00000001 /* -W--T */
+#define NV_PCCSR_CHANNEL_ENABLE_CLR_FALSE 0x00000000 /* -W--T */
+#define NV_PCCSR_CHANNEL_PBDMA_FAULTED 22:22 /* RWIVF */
+#define NV_PCCSR_CHANNEL_PBDMA_FAULTED_FALSE 0x00000000 /* R-I-V */
+#define NV_PCCSR_CHANNEL_PBDMA_FAULTED_TRUE 0x00000001 /* R---V */
+#define NV_PCCSR_CHANNEL_PBDMA_FAULTED_RESET 0x00000001 /* -W--T */
+#define NV_PCCSR_CHANNEL_ENG_FAULTED 23:23 /* RWIVF */
+#define NV_PCCSR_CHANNEL_ENG_FAULTED_FALSE 0x00000000 /* R-I-V */
+#define NV_PCCSR_CHANNEL_ENG_FAULTED_TRUE 0x00000001 /* R---V */
+#define NV_PCCSR_CHANNEL_ENG_FAULTED_RESET 0x00000001 /* -W--T */
+#define NV_PCCSR_CHANNEL_STATUS 27:24 /* R-IVF */
+#define NV_PCCSR_CHANNEL_STATUS_IDLE 0x00000000 /* R-I-V */
+#define NV_PCCSR_CHANNEL_STATUS_PENDING 0x00000001 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_PENDING_CTX_RELOAD 0x00000002 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_PENDING_ACQUIRE 0x00000003 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_PENDING_ACQ_CTX_RELOAD 0x00000004 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_PBDMA 0x00000005 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_PBDMA_AND_ENG 0x00000006 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG 0x00000007 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG_PENDING_ACQUIRE 0x00000008 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG_PENDING 0x00000009 /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_PBDMA_CTX_RELOAD 0x0000000A /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_PBDMA_AND_ENG_CTX_RELOAD 0x0000000B /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG_CTX_RELOAD 0x0000000C /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG_PENDING_CTX_RELOAD 0x0000000D /* R---V */
+#define NV_PCCSR_CHANNEL_STATUS_ON_ENG_PENDING_ACQ_CTX_RELOAD 0x0000000E /* R---V */
+#define NV_PCCSR_CHANNEL_BUSY 28:28 /* R-IVF */
+#define NV_PCCSR_CHANNEL_BUSY_FALSE 0x00000000 /* R-I-V */
+#define NV_PCCSR_CHANNEL_BUSY_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_RUNLIST_BASE 0x00002270 /* RW-4R */
+#define NV_PFIFO_RUNLIST_BASE_PTR 27:0 /* RWEUF */
+#define NV_PFIFO_RUNLIST_BASE_PTR_NULL 0x00000000 /* RWE-V */
+#define NV_PFIFO_RUNLIST_BASE_TARGET 29:28 /* RWEVF */
+#define NV_PFIFO_RUNLIST_BASE_TARGET_VID_MEM 0x00000000 /* RWE-V */
+#define NV_PFIFO_RUNLIST_BASE_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PFIFO_RUNLIST_BASE_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PFIFO_RUNLIST_BASE_PTR_ALIGN_SHIFT 12 /* */
+#define NV_PFIFO_RUNLIST 0x00002274 /* RW-4R */
+#define NV_PFIFO_RUNLIST_LENGTH 15:0 /* RWEUF */
+#define NV_PFIFO_RUNLIST_LENGTH_ZERO 0x00000000 /* RWE-V */
+#define NV_PFIFO_RUNLIST_LENGTH_MAX 0x0000ffff /* RW--V */
+#define NV_PFIFO_RUNLIST_ID 23:20 /* RWXUF */
+#define NV_PFIFO_ENG_RUNLIST_BASE(i) (0x00002280+(i)*8) /* R--4A */
+#define NV_PFIFO_ENG_RUNLIST_BASE__SIZE_1 13 /* */
+#define NV_PFIFO_ENG_RUNLIST_BASE_PTR 27:0 /* R-EUF */
+#define NV_PFIFO_ENG_RUNLIST_BASE_PTR_NULL 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENG_RUNLIST_BASE_TARGET 29:28 /* R-EVF */
+#define NV_PFIFO_ENG_RUNLIST_BASE_TARGET_VID_MEM 0x0 /* R-E-V */
+#define NV_PFIFO_ENG_RUNLIST_BASE_TARGET_SYS_MEM_COHERENT 0x2 /* R---V */
+#define NV_PFIFO_ENG_RUNLIST_BASE_TARGET_SYS_MEM_NONCOHERENT 0x3 /* R---V */
+#define NV_PFIFO_ENG_RUNLIST(i) (0x00002284+(i)*8) /* R--4A */
+#define NV_PFIFO_ENG_RUNLIST__SIZE_1 13 /* */
+#define NV_PFIFO_ENG_RUNLIST_LENGTH 15:0 /* R-EUF */
+#define NV_PFIFO_ENG_RUNLIST_LENGTH_ZERO 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENG_RUNLIST_LENGTH_MAX 0x0000ffff /* R---V */
+#define NV_PFIFO_ENG_RUNLIST_PENDING 20:20 /* R-EVF */
+#define NV_PFIFO_ENG_RUNLIST_PENDING_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENG_RUNLIST_PENDING_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_PBDMA_MAP(i) (0x00002390+(i)*4) /* R--4A */
+#define NV_PFIFO_PBDMA_MAP__SIZE_1 14 /* */
+#define NV_PFIFO_PBDMA_MAP_RUNLISTS 15:0 /* R-XVF */
+#define NV_PFIFO_LB_ENTRY_SIZE 128 /* */
+#define NV_PFIFO_LB_GPBUF_CONTROL(i) (0x000023E0+(i)*8) /* R--4A */
+#define NV_PFIFO_LB_GPBUF_CONTROL__SIZE_1 14 /* */
+#define NV_PFIFO_LB_GPBUF_CONTROL_SIZE 30:24 /* R-XUF */
+#define NV_PFIFO_LB_GPBUF_CONTROL_SIZE_128B 0x00000001 /* R-X-V */
+#define NV_PFIFO_LB_PBBUF_CONTROL(i) (0x000023E4+(i)*8) /* R--4A */
+#define NV_PFIFO_LB_PBBUF_CONTROL__SIZE_1 14 /* */
+#define NV_PFIFO_LB_PBBUF_CONTROL_SIZE 31:24 /* R-XUF */
+#define NV_PFIFO_LB_PBBUF_CONTROL_SIZE_128B 0x00000001 /* R-X-V */
+#define NV_PFIFO_INTR_0 0x00002100 /* RW-4R */
+#define NV_PFIFO_INTR_0_BIND_ERROR 0:0 /* RWEVF */
+#define NV_PFIFO_INTR_0_BIND_ERROR_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_BIND_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_BIND_ERROR_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_0_SCHED_ERROR 8:8 /* RWEVF */
+#define NV_PFIFO_INTR_0_SCHED_ERROR_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_SCHED_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_SCHED_ERROR_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_0_CHSW_ERROR 16:16 /* RWEVF */
+#define NV_PFIFO_INTR_0_CHSW_ERROR_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_CHSW_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_CHSW_ERROR_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_0_MEMOP_TIMEOUT 23:23 /* RWIVF */
+#define NV_PFIFO_INTR_0_MEMOP_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PFIFO_INTR_0_MEMOP_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_MEMOP_TIMEOUT_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_0_LB_ERROR 24:24 /* RWEVF */
+#define NV_PFIFO_INTR_0_LB_ERROR_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_LB_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_LB_ERROR_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_0_PBDMA_INTR 29:29 /* R-XVF */
+#define NV_PFIFO_INTR_0_PBDMA_INTR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PFIFO_INTR_0_PBDMA_INTR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_RUNLIST_EVENT 30:30 /* R-EVF */
+#define NV_PFIFO_INTR_0_RUNLIST_EVENT_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_RUNLIST_EVENT_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_CHANNEL_INTR 31:31 /* RWEVF */
+#define NV_PFIFO_INTR_0_CHANNEL_INTR_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_0_CHANNEL_INTR_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_0_CHANNEL_INTR_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_EN_0 0x00002140 /* RW-4R */
+#define NV_PFIFO_INTR_EN_0_BIND_ERROR 0:0 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_BIND_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_BIND_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_SCHED_ERROR 8:8 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_SCHED_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_SCHED_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_CHSW_ERROR 16:16 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_CHSW_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_CHSW_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_MEMOP_TIMEOUT 23:23 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_MEMOP_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_MEMOP_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_LB_ERROR 24:24 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_LB_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_LB_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_PBDMA_INTR 29:29 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_PBDMA_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_PBDMA_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_RUNLIST_EVENT 30:30 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_RUNLIST_EVENT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_RUNLIST_EVENT_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_0_CHANNEL_INTR 31:31 /* RWIVF */
+#define NV_PFIFO_INTR_EN_0_CHANNEL_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_0_CHANNEL_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1 0x00002528 /* RW-4R */
+#define NV_PFIFO_INTR_EN_1_BIND_ERROR 0:0 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_BIND_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_BIND_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_SCHED_ERROR 8:8 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_SCHED_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_SCHED_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_CHSW_ERROR 16:16 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_CHSW_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_CHSW_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_MEMOP_TIMEOUT 23:23 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_MEMOP_TIMEOUT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_MEMOP_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_LB_ERROR 24:24 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_LB_ERROR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_LB_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_PBDMA_INTR 29:29 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_PBDMA_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_PBDMA_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_RUNLIST_EVENT 30:30 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_RUNLIST_EVENT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_RUNLIST_EVENT_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_EN_1_CHANNEL_INTR 31:31 /* RWIVF */
+#define NV_PFIFO_INTR_EN_1_CHANNEL_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_EN_1_CHANNEL_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_STALL 0x00002530 /* RW-4R */
+#define NV_PFIFO_INTR_STALL_BIND_ERROR 0:0 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_BIND_ERROR_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_INTR_STALL_BIND_ERROR_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_SCHED_ERROR 8:8 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_SCHED_ERROR_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_INTR_STALL_SCHED_ERROR_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_CHSW_ERROR 16:16 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_CHSW_ERROR_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_INTR_STALL_CHSW_ERROR_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_MEMOP_TIMEOUT 23:23 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_MEMOP_TIMEOUT_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_INTR_STALL_MEMOP_TIMEOUT_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_LB_ERROR 24:24 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_LB_ERROR_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_INTR_STALL_LB_ERROR_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_PBDMA_INTR 29:29 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_PBDMA_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_PBDMA_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_STALL_RUNLIST_EVENT 30:30 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_RUNLIST_EVENT_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_RUNLIST_EVENT_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_STALL_CHANNEL_INTR 31:31 /* RWIVF */
+#define NV_PFIFO_INTR_STALL_CHANNEL_INTR_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_INTR_STALL_CHANNEL_INTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_INTR_BIND_ERROR 0x0000252C /* R--4R */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE 7:0 /* R-EVF */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE_NO_ERROR 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE_BIND_NOT_UNBOUND 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE_UNBIND_WHILE_RUNNING 0x00000003 /* R---V */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE_INVALID_CTX_TGT 0x00000006 /* R---V */
+#define NV_PFIFO_INTR_BIND_ERROR_CODE_UNBIND_WHILE_PARKED 0x0000000B /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR 0x0000254C /* R--4R */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE 7:0 /* R-EVF */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_NO_ERROR 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_ENGINE_RESET 0x00000005 /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_RL_REQ_TIMEOUT 0x0000000c /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_RL_ACK_TIMEOUT 0x00000006 /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_RL_ACK_EXTRA 0x00000007 /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_RL_RDAT_TIMEOUT 0x00000008 /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_RL_RDAT_EXTRA 0x00000009 /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_CTXSW_TIMEOUT 0x0000000a /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_NEW_RUNLIST 0x0000000d /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_CONFIG_WHILE_BUSY 0x0000000e /* R---V */
+#define NV_PFIFO_INTR_SCHED_ERROR_CODE_BAD_TSG 0x00000020 /* R---V */
+#define NV_PFIFO_INTR_CHSW_ERROR 0x0000256C /* R--4R */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE 7:0 /* R-EVF */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_NO_ERROR 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_REQ_TIMEOUT 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_ACK_TIMEOUT 0x00000002 /* R---V */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_ACK_EXTRA 0x00000003 /* R---V */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_RDAT_TIMEOUT 0x00000004 /* R---V */
+#define NV_PFIFO_INTR_CHSW_ERROR_CODE_RDAT_EXTRA 0x00000005 /* R---V */
+#define NV_PFIFO_INTR_LB_ERROR 0x0000258C /* R--4R */
+#define NV_PFIFO_INTR_LB_ERROR_CODE 7:0 /* R-EVF */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_NO_ERROR 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_REQ_TIMEOUT 0x00000002 /* R---V */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_ACK_TIMEOUT 0x00000003 /* R---V */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_ACK_EXTRA 0x00000004 /* R---V */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_RDAT_TIMEOUT 0x00000005 /* R---V */
+#define NV_PFIFO_INTR_LB_ERROR_CODE_RDAT_EXTRA 0x00000006 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID 0x000025A0 /* R--4R */
+#define NV_PFIFO_INTR_PBDMA_ID_0 0:0 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_0_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_0_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_1 1:1 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_1_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_1_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_2 2:2 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_2_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_2_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_3 3:3 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_3_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_3_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_4 4:4 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_4_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_4_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_5 5:5 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_5_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_5_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_6 6:6 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_6_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_6_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_7 7:7 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_7_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_7_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_8 8:8 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_8_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_8_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_9 9:9 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_9_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_9_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_10 10:10 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_10_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_10_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_11 11:11 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_11_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_11_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_12 12:12 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_12_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_12_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_13 13:13 /* R-EVF */
+#define NV_PFIFO_INTR_PBDMA_ID_13_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_PBDMA_ID_13_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_PBDMA_ID_STATUS(i) (i):(i) /* */
+#define NV_PFIFO_INTR_PBDMA_ID_STATUS__SIZE_1 14 /* */
+#define NV_PFIFO_INTR_PBDMA_ID_STATUS_NOT_PENDING 0x00000000 /* */
+#define NV_PFIFO_INTR_PBDMA_ID_STATUS_PENDING 0x00000001 /* */
+#define NV_PFIFO_INTR_RUNLIST 0x00002A00 /* RW-4R */
+#define NV_PFIFO_INTR_RUNLIST_EVENT(i) (i):(i) /* */
+#define NV_PFIFO_INTR_RUNLIST_EVENT__SIZE_1 32 /* */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_NOT_PENDING 0x00000000 /* */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_PENDING 0x00000001 /* */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_RESET 0x00000001 /* */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_0 0:0 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_0_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_0_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_0_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_1 1:1 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_1_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_1_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_1_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_2 2:2 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_2_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_2_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_2_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_3 3:3 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_3_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_3_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_3_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_4 4:4 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_4_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_4_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_4_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_5 5:5 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_5_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_5_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_5_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_6 6:6 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_6_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_6_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_6_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_7 7:7 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_7_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_7_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_7_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_8 8:8 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_8_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_8_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_8_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_9 9:9 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_9_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_9_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_9_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_10 10:10 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_10_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_10_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_10_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_11 11:11 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_11_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_11_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_11_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_12 12:12 /* RWEVF */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_12_NOT_PENDING 0x00000000 /* R-E-V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_12_PENDING 0x00000001 /* R---V */
+#define NV_PFIFO_INTR_RUNLIST_EVENT_12_RESET 0x00000001 /* -W--T */
+#define NV_PFIFO_ENG_TIMEOUT 0x00002A0C /* RW-4R */
+#define NV_PFIFO_ENG_TIMEOUT_PERIOD 30:0 /* RWIVF */
+#define NV_PFIFO_ENG_TIMEOUT_PERIOD_INIT 0x003fffff /* RWI-V */
+#define NV_PFIFO_ENG_TIMEOUT_PERIOD_MAX 0x7fffffff /* RW--V */
+#define NV_PFIFO_ENG_TIMEOUT_DETECTION 31:31 /* RWIVF */
+#define NV_PFIFO_ENG_TIMEOUT_DETECTION_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_ENG_TIMEOUT_DETECTION_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT 0x00002A14 /* RW-4R */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_PERIOD 29:0 /* RWIVF */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_PERIOD_INIT 0x000003ff /* RWI-V */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_PERIOD_MAX 0x3fffffff /* RW--V */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_DETECTION 31:31 /* RWIVF */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_DETECTION_DISABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_CLEAR_FAULTED_TIMEOUT_DETECTION_ENABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG 0x000026E0 /* RW-4R */
+#define NV_PFIFO_BLKCG_IDLE_CG_DLY_CNT 5:0 /* RWIVF */
+#define NV_PFIFO_BLKCG_IDLE_CG_DLY_CNT_INIT 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG_IDLE_CG_DLY_CNT__PROD 0x00000002 /* RW--V */
+#define NV_PFIFO_BLKCG_IDLE_CG_EN 6:6 /* RWIVF */
+#define NV_PFIFO_BLKCG_IDLE_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG_IDLE_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG_IDLE_CG_EN__PROD 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG_STALL_CG_EN 14:14 /* RWIVF */
+#define NV_PFIFO_BLKCG_STALL_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG_STALL_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG_STALL_CG_EN__PROD 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG_WAKEUP_DLY_CNT 19:16 /* RWIVF */
+#define NV_PFIFO_BLKCG_WAKEUP_DLY_CNT_INIT 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG_WAKEUP_DLY_CNT__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1 0x000026EC /* RW-4R */
+#define NV_PFIFO_BLKCG1_MONITOR_CG_EN 0:0 /* RWIVF */
+#define NV_PFIFO_BLKCG1_MONITOR_CG_EN_ENABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG1_MONITOR_CG_EN_DISABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG 16:1 /* */
+#define NV_PFIFO_BLKCG1_SLCG_ENABLED 0x00000000 /* */
+#define NV_PFIFO_BLKCG1_SLCG_DISABLED 0x0000FFFF /* */
+#define NV_PFIFO_BLKCG1_SLCG__PROD 0x00000000 /* */
+#define NV_PFIFO_BLKCG1_SLCG_RLP 1:1 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_RLP_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_RLP_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_RLP__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_CPUQ_RSP 2:2 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_CPUQ_RSP_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_CPUQ_RSP_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_CPUQ_RSP__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_EVH 3:3 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_EVH_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_EVH_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_EVH__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PMC 4:4 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PMC_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PMC_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PMC__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_FECS_PRIV 5:5 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_FECS_PRIV_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_FECS_PRIV_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_FECS_PRIV__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PRIV_RING 6:6 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PRIV_RING_ENABLED 0x00000000 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PRIV_RING_DISABLED 0x00000001 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PRIV_RING__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_EISM 7:7 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_EISM_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_EISM_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_EISM__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_LB 8:8 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_LB_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_LB_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_LB__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_CTL 9:9 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_CTL_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_CTL_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_CTL__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_GP 10:10 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_GP_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_GP_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_GP__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_PB 11:11 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_PB_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_PB_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PBDMA_PB__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_TMR 12:12 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_TMR_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_TMR_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_TMR__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PRI 13:13 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_PRI_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_PRI_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_PRI__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_CHSW 14:14 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_CHSW_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_CHSW_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_CHSW__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_XBAR 15:15 /* RWIVF */
+#define NV_PFIFO_BLKCG1_SLCG_XBAR_ENABLED 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_XBAR_DISABLED 0x00000001 /* RWI-V */
+#define NV_PFIFO_BLKCG1_SLCG_XBAR__PROD 0x00000000 /* RW--V */
+#define NV_PFIFO_BLKCG1_SLCG_UNUSED 16:16 /* */
+#define NV_PFIFO_BLKCG1_SLCG_UNUSED_ENABLED 0x00000000 /* */
+#define NV_PFIFO_BLKCG1_SLCG_UNUSED_DISABLED 0x00000001 /* */
+#define NV_PFIFO_BLKCG1_SLCG_UNUSED__PROD 0x00000000 /* */
+#define NV_PFIFO_SCHED_DISABLE 0x00002630 /* RW-4R */
+#define NV_PFIFO_SCHED_DISABLE_RUNLIST(i) (i):(i) /* */
+#define NV_PFIFO_SCHED_DISABLE_RUNLIST__SIZE_1 13 /* */
+#define NV_PFIFO_SCHED_DISABLE_FALSE 0x00000000 /* */
+#define NV_PFIFO_SCHED_DISABLE_TRUE 0x00000001 /* */
+#define NV_PFIFO_SCHED_DISABLE_RUNLIST_MASK 12:0 /* RWEVF */
+#define NV_PFIFO_SCHED_DISABLE_RUNLIST_MASK_INIT 0 /* RWE-V */
+#define NV_PFIFO_PREEMPT 0x00002634 /* RW-4R */
+#define NV_PFIFO_PREEMPT_ID 11:0 /* */
+#define NV_PFIFO_PREEMPT_ID_NULL 0x00000000 /* */
+#define NV_PFIFO_PREEMPT_ID_HW 11:0 /* RWEUF */
+#define NV_PFIFO_PREEMPT_ID_HW_NULL 0x00000000 /* RWE-V */
+#define NV_PFIFO_PREEMPT_PENDING 20:20 /* R-EVF */
+#define NV_PFIFO_PREEMPT_PENDING_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_PREEMPT_PENDING_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_PREEMPT_TYPE 25:24 /* RWEVF */
+#define NV_PFIFO_PREEMPT_TYPE_CHANNEL 0x00000000 /* RWE-V */
+#define NV_PFIFO_PREEMPT_TYPE_TSG 0x00000001 /* RW--V */
+#define NV_PFIFO_RUNLIST_PREEMPT 0x00002638 /* RW-4R */
+#define NV_PFIFO_RUNLIST_PREEMPT_RUNLIST(i) (i):(i) /* */
+#define NV_PFIFO_RUNLIST_PREEMPT_RUNLIST__SIZE_1 32 /* */
+#define NV_PFIFO_RUNLIST_PREEMPT_PENDING 0x00000001 /* */
+#define NV_PFIFO_RUNLIST_PREEMPT_DONE 0x00000000 /* */
+#define NV_PFIFO_RUNLIST_PREEMPT_RUNLISTS 13-1:0 /* RWEUF */
+#define NV_PFIFO_RUNLIST_PREEMPT_RUNLISTS_INIT 0x00000000 /* RWE-V */
+#define NV_PFIFO_SCHED_STATUS 0x0000263C /* R--4R */
+#define NV_PFIFO_SCHED_STATUS_CHSW 1:1 /* R-EVF */
+#define NV_PFIFO_SCHED_STATUS_CHSW_NOT_IN_PROGRESS 0x00000000 /* R-E-V */
+#define NV_PFIFO_SCHED_STATUS_CHSW_IN_PROGRESS 0x00000001 /* R---V */
+#define NV_PFIFO_SCHED_STATUS_RUNLIST_FETCH 2:2 /* R-EVF */
+#define NV_PFIFO_SCHED_STATUS_RUNLIST_FETCH_IDLE 0x00000000 /* R-E-V */
+#define NV_PFIFO_SCHED_STATUS_RUNLIST_FETCH_BUSY 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS(i) (0x00002640+(i)*8) /* R--4A */
+#define NV_PFIFO_ENGINE_STATUS__SIZE_1 15 /* */
+#define NV_PFIFO_ENGINE_STATUS_ID 11:0 /* */
+#define NV_PFIFO_ENGINE_STATUS_ID_ZERO 0x00000000 /* */
+#define NV_PFIFO_ENGINE_STATUS_ID_HW 11:0 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_ID_HW_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_ID_TYPE 12:12 /* R-XVF */
+#define NV_PFIFO_ENGINE_STATUS_ID_TYPE_CHID 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_ID_TYPE_TSGID 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS 15:13 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS_INVALID 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS_VALID 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS_CTXSW_LOAD 0x00000005 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS_CTXSW_SAVE 0x00000006 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_CTX_STATUS_CTXSW_SWITCH 0x00000007 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID 27:16 /* */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_ZERO 0x00000000 /* */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_HW 27:16 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_HW_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_TYPE 28:28 /* R-XVF */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_TYPE_CHID 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_ID_TYPE_TSGID 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_ENG_RELOAD 29:29 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_ENG_RELOAD_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_ENG_RELOAD_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_FAULTED 30:30 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_FAULTED_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_FAULTED_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_ENGINE 31:31 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_ENGINE_IDLE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_ENGINE_BUSY 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_CTXSW 15:15 /* */
+#define NV_PFIFO_ENGINE_STATUS_CTXSW_NOT_IN_PROGRESS 0x00000000 /* */
+#define NV_PFIFO_ENGINE_STATUS_CTXSW_IN_PROGRESS 0x00000001 /* */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG(i) (0x00002644+(i)*8) /* R--4A */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG__SIZE_1 15 /* */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_IF_EN 0:0 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_IF_EN_DISABLED 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_IF_EN_ENABLED 0x00000001 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_INTR 4:4 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_INTR_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_INTR_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_NO_CREDITS 8:8 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_NO_CREDITS_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_NO_CREDITS_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_WFI 12:12 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_WFI_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE0_WFI_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_NO_CREDITS 16:16 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_NO_CREDITS_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_NO_CREDITS_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_WFI 20:20 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_WFI_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_DEBUG_PIPE1_WFI_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_INST(i) (0x00003100+(i)*4) /* R--4A */
+#define NV_PFIFO_ENGINE_STATUS_INST__SIZE_1 15 /* */
+#define NV_PFIFO_ENGINE_STATUS_INST_PTR 27:0 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_INST_PTR_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_INST_TARGET 29:28 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_INST_TARGET_VID_MEM 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_INST_TARGET_SYS_MEM_COHERENT 0x00000002 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_INST_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_INST_VALID 31:31 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_INST_VALID_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_INST_VALID_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST(i) (0x00003000+(i)*4) /* R--4A */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST__SIZE_1 15 /* */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_PTR 27:0 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_PTR_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_TARGET 29:28 /* R-XUF */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_TARGET_VID_MEM 0x00000000 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_TARGET_SYS_MEM_COHERENT 0x00000002 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* R---V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_VALID 31:31 /* R-EVF */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_VALID_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_ENGINE_STATUS_NEXT_INST_VALID_TRUE 0x00000001 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS(i) (0x00003080+(i)*4) /* R--4A */
+#define NV_PFIFO_PBDMA_STATUS__SIZE_1 14 /* */
+#define NV_PFIFO_PBDMA_STATUS_ID 11:0 /* */
+#define NV_PFIFO_PBDMA_STATUS_ID_ZERO 0x00000000 /* */
+#define NV_PFIFO_PBDMA_STATUS_ID_HW 11:0 /* R-XUF */
+#define NV_PFIFO_PBDMA_STATUS_ID_HW_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_ID_TYPE 12:12 /* R-XVF */
+#define NV_PFIFO_PBDMA_STATUS_ID_TYPE_CHID 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_ID_TYPE_TSGID 0x00000001 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS 15:13 /* R-EVF */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS_INVALID 0x00000000 /* R-E-V */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS_VALID 0x00000001 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS_CHSW_LOAD 0x00000005 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS_CHSW_SAVE 0x00000006 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_CHAN_STATUS_CHSW_SWITCH 0x00000007 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID 27:16 /* */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_ZERO 0x00000000 /* */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_HW 27:16 /* R-XUF */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_HW_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_TYPE 28:28 /* R-XVF */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_TYPE_CHID 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_NEXT_ID_TYPE_TSGID 0x00000001 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_CHSW 15:15 /* */
+#define NV_PFIFO_PBDMA_STATUS_CHSW_NOT_IN_PROGRESS 0x00000000 /* */
+#define NV_PFIFO_PBDMA_STATUS_CHSW_IN_PROGRESS 0x00000001 /* */
+#define NV_PFIFO_PBDMA_STATUS_INST(i) (0x00002790+(i)*4) /* R--4A */
+#define NV_PFIFO_PBDMA_STATUS_INST__SIZE_1 14 /* */
+#define NV_PFIFO_PBDMA_STATUS_INST_PTR 27:0 /* R-XUF */
+#define NV_PFIFO_PBDMA_STATUS_INST_PTR_ZERO 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_INST_TARGET 29:28 /* R-XUF */
+#define NV_PFIFO_PBDMA_STATUS_INST_TARGET_VID_MEM 0x00000000 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_INST_TARGET_SYS_MEM_COHERENT 0x00000002 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_INST_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* R---V */
+#define NV_PFIFO_PBDMA_STATUS_INST_VALID 31:31 /* R-EVF */
+#define NV_PFIFO_PBDMA_STATUS_INST_VALID_FALSE 0x00000000 /* R-E-V */
+#define NV_PFIFO_PBDMA_STATUS_INST_VALID_TRUE 0x00000001 /* R---V */
diff --git a/manuals/volta/gv100/dev_master.ref.txt b/manuals/volta/gv100/dev_master.ref.txt
new file mode 100644
index 0000000..8ae6133
--- /dev/null
+++ b/manuals/volta/gv100/dev_master.ref.txt
@@ -0,0 +1,363 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+#define NV_PMC_BOOT_0 0x00000000 /* R--4R */
+#define NV_PMC_BOOT_0_ID 31:0 /* */
+#define NV_PMC_BOOT_0_MINOR_REVISION 3:0 /* R--VF */
+#define NV_PMC_BOOT_0_MINOR_REVISION_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_4 0x00000004 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_5 0x00000005 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_6 0x00000006 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_7 0x00000007 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_8 0x00000008 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_9 0x00000009 /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_10 0x0000000A /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_11 0x0000000B /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_12 0x0000000C /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_13 0x0000000D /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_14 0x0000000E /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_15 0x0000000F /* R---V */
+#define NV_PMC_BOOT_0_MINOR_REVISION_INIT 0x00000001 /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION 7:4 /* R--VF */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_A 0x0000000A /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_B 0x0000000B /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_C 0x0000000C /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_D 0x0000000D /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_E 0x0000000E /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_F 0x0000000F /* R---V */
+#define NV_PMC_BOOT_0_MAJOR_REVISION_INIT 0x00000000 /* R---V */
+#define NV_PMC_BOOT_0_RESERVED_0 11:8 /* */
+#define NV_PMC_BOOT_0_IMPLEMENTATION 23:20 /* R--VF */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_0 0x00000000 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_4 0x00000004 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_5 0x00000005 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_6 0x00000006 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_7 0x00000007 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_8 0x00000008 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_9 0x00000009 /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_A 0x0000000A /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_B 0x0000000B /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_C 0x0000000C /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_D 0x0000000D /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_E 0x0000000E /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_F 0x0000000F /* R---V */
+#define NV_PMC_BOOT_0_IMPLEMENTATION_INIT 0x00000000 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE 28:24 /* R--VF */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GF100 0x0000000C /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GF110 0x0000000D /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GK100 0x0000000E /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GK110 0x0000000F /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GK200 0x00000010 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GM000 0x00000011 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GM100 0x00000011 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GM200 0x00000012 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GP100 0x00000013 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GV100 0x00000014 /* R---V */
+#define NV_PMC_BOOT_0_ARCHITECTURE_GV110 0x00000015 /* R---V */
+#define NV_PMC_BOOT_1 0x00000004 /* RW-4R */
+#define NV_PMC_BOOT_1_VGPU8 8:8 /* R--VF */
+#define NV_PMC_BOOT_1_VGPU8_REAL 0x00000000 /* R---V */
+#define NV_PMC_BOOT_1_VGPU8_VIRTUAL 0x00000001 /* R---V */
+#define NV_PMC_BOOT_1_VGPU16 16:16 /* R--VF */
+#define NV_PMC_BOOT_1_VGPU16_REAL 0x00000000 /* R---V */
+#define NV_PMC_BOOT_1_VGPU16_VIRTUAL 0x00000001 /* R---V */
+#define NV_PMC_BOOT_2 0x00000008 /* R--4R */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION 3:0 /* R-XVF */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_0 0x00000000 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_4 0x00000004 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_5 0x00000005 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_6 0x00000006 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_7 0x00000007 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_8 0x00000008 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_9 0x00000009 /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_A 0x0000000A /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_B 0x0000000B /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_C 0x0000000C /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_D 0x0000000D /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_E 0x0000000E /* R---V */
+#define NV_PMC_BOOT_2_MINOR_EXTENDED_REVISION_F 0x0000000F /* R---V */
+#define NV_PMC_BOOT_2_FAB_ID 7:4 /* R-XVF */
+#define NV_PMC_BOOT_2_FAB_ID_0 0x00000000 /* R---V */
+#define NV_PMC_BOOT_2_FAB_ID_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_2_FAB_ID_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_2_FAB_ID_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_42 0x00000A00 /* R--4R */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION 11:8 /* R-XVF */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_0 0x00000000 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_4 0x00000004 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_5 0x00000005 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_6 0x00000006 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_7 0x00000007 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_8 0x00000008 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_9 0x00000009 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_A 0x0000000A /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_B 0x0000000B /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_C 0x0000000C /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_D 0x0000000D /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_E 0x0000000E /* R---V */
+#define NV_PMC_BOOT_42_MINOR_EXTENDED_REVISION_F 0x0000000F /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION 15:12 /* R-XVF */
+#define NV_PMC_BOOT_42_MINOR_REVISION_1 0x00000001 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_2 0x00000002 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_3 0x00000003 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_4 0x00000004 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_5 0x00000005 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_6 0x00000006 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_7 0x00000007 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_8 0x00000008 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_9 0x00000009 /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_10 0x0000000A /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_11 0x0000000B /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_12 0x0000000C /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_13 0x0000000D /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_14 0x0000000E /* R---V */
+#define NV_PMC_BOOT_42_MINOR_REVISION_15 0x0000000F /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION 19:16 /* R-XVF */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_A 0x0000000A /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_B 0x0000000B /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_C 0x0000000C /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_D 0x0000000D /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_E 0x0000000E /* R---V */
+#define NV_PMC_BOOT_42_MAJOR_REVISION_F 0x0000000F /* R---V */
+#define NV_PMC_BOOT_42_IMPLEMENTATION 23:20 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_0 0x00000000 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_1 0x00000001 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_2 0x00000002 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_3 0x00000003 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_4 0x00000004 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_5 0x00000005 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_6 0x00000006 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_7 0x00000007 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_8 0x00000008 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_9 0x00000009 /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_A 0x0000000A /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_B 0x0000000B /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_C 0x0000000C /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_D 0x0000000D /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_E 0x0000000E /* */
+#define NV_PMC_BOOT_42_IMPLEMENTATION_F 0x0000000F /* */
+#define NV_PMC_BOOT_42_ARCHITECTURE 28:24 /* */
+#define NV_PMC_BOOT_42_ARCHITECTURE_GP100 0x00000013 /* */
+#define NV_PMC_BOOT_42_ARCHITECTURE_GV100 0x00000014 /* */
+#define NV_PMC_BOOT_42_ARCHITECTURE_GV110 0x00000015 /* */
+#define NV_PMC_BOOT_42_CHIP_ID 28:20 /* R-XVF */
+#define NV_PMC_BOOT_42_CHIP_ID_GP000 0x00000131 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP100 0x00000130 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP102 0x00000132 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP104 0x00000134 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP104V 0x00000139 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP106 0x00000136 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP107 0x00000137 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP108 0x00000138 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GP108V 0x0000013A /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GV100 0x00000140 /* R---V */
+#define NV_PMC_BOOT_42_CHIP_ID_GV10B 0x0000014B /* R---V */
+#define NV_PMC_INTR(i) (0x00000100+(i)*4) /* R--4A */
+#define NV_PMC_INTR__SIZE_1 4 /* */
+#define NV_PMC_INTR_DEVICE(i) (i):(i) /* */
+#define NV_PMC_INTR_DEVICE__SIZE_1 32 /* */
+#define NV_PMC_INTR_DEVICE_NOT_PENDING 0x00000000 /* */
+#define NV_PMC_INTR_DEVICE_PENDING 0x00000001 /* */
+#define NV_PMC_INTR_PFIFO 8:8 /* R--VF */
+#define NV_PMC_INTR_PFIFO_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PFIFO_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_HUB 9:9 /* R--VF */
+#define NV_PMC_INTR_HUB_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_HUB_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PFB 13:13 /* R--VF */
+#define NV_PMC_INTR_PFB_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PFB_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_THERMAL 18:18 /* R--VF */
+#define NV_PMC_INTR_THERMAL_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_THERMAL_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_HDACODEC 19:19 /* R--VF */
+#define NV_PMC_INTR_HDACODEC_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_HDACODEC_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PTIMER 20:20 /* R--VF */
+#define NV_PMC_INTR_PTIMER_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PTIMER_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PMGR 21:21 /* R--VF */
+#define NV_PMC_INTR_PMGR_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PMGR_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_DFD 23:23 /* R--VF */
+#define NV_PMC_INTR_DFD_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_DFD_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PMU 24:24 /* R--VF */
+#define NV_PMC_INTR_PMU_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PMU_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_LTC_ALL 25:25 /* R--VF */
+#define NV_PMC_INTR_LTC_ALL_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_LTC_ALL_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PDISP 26:26 /* R--VF */
+#define NV_PMC_INTR_PDISP_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PDISP_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PBUS 28:28 /* R--VF */
+#define NV_PMC_INTR_PBUS_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PBUS_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_XVE 29:29 /* R--VF */
+#define NV_PMC_INTR_XVE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_XVE_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_PRIV_RING 30:30 /* R--VF */
+#define NV_PMC_INTR_PRIV_RING_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_PRIV_RING_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_SOFTWARE 31:31 /* R--VF */
+#define NV_PMC_INTR_SOFTWARE_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_SOFTWARE_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_MODE(i) (0x00000120+(i)*4) /* R--4A */
+#define NV_PMC_INTR_MODE__SIZE_1 4 /* */
+#define NV_PMC_INTR_MODE_BIT(i) (i):(i) /* */
+#define NV_PMC_INTR_MODE_BIT__SIZE_1 32 /* */
+#define NV_PMC_INTR_MODE_BIT_LEVEL 0x00000000 /* */
+#define NV_PMC_INTR_MODE_BIT_EDGE 0x00000001 /* */
+#define NV_PMC_INTR_MODE_VALUE 31:0 /* C--VF */
+#define NV_PMC_INTR_MODE_VALUE_INIT 0x00000000 /* C---V */
+#define NV_PMC_INTR_EN(i) (0x00000140+(i)*4) /* R--4A */
+#define NV_PMC_INTR_EN__SIZE_1 4 /* */
+#define NV_PMC_INTR_EN_DEVICE(i) (i):(i) /* */
+#define NV_PMC_INTR_EN_DEVICE__SIZE_1 32 /* */
+#define NV_PMC_INTR_EN_DEVICE_DISABLED 0x00000000 /* */
+#define NV_PMC_INTR_EN_DEVICE_ENABLED 0x00000001 /* */
+#define NV_PMC_INTR_EN_VALUE 31:0 /* R-IVF */
+#define NV_PMC_INTR_EN_VALUE_INIT 0x00000000 /* R-I-V */
+#define NV_PMC_INTR_EN_SET(i) (0x00000160+(i)*4) /* -W-4A */
+#define NV_PMC_INTR_EN_SET__SIZE_1 4 /* */
+#define NV_PMC_INTR_EN_SET_DEVICE(i) (i):(i) /* */
+#define NV_PMC_INTR_EN_SET_DEVICE__SIZE_1 32 /* */
+#define NV_PMC_INTR_EN_SET_DEVICE_SET 0x00000001 /* */
+#define NV_PMC_INTR_EN_SET_VALUE 31:0 /* -W-VF */
+#define NV_PMC_INTR_EN_CLEAR(i) (0x00000180+(i)*4) /* -W-4A */
+#define NV_PMC_INTR_EN_CLEAR__SIZE_1 4 /* */
+#define NV_PMC_INTR_EN_CLEAR_DEVICE(i) (i):(i) /* */
+#define NV_PMC_INTR_EN_CLEAR_DEVICE__SIZE_1 32 /* */
+#define NV_PMC_INTR_EN_CLEAR_DEVICE_SET 0x00000001 /* */
+#define NV_PMC_INTR_EN_CLEAR_VALUE 31:0 /* -W-VF */
+#define NV_PMC_INTR_SW(i) (0x000001A0+(i)*4) /* RW-4A */
+#define NV_PMC_INTR_SW__SIZE_1 4 /* */
+#define NV_PMC_INTR_SW_ASSERT 0:0 /* RWIVF */
+#define NV_PMC_INTR_SW_ASSERT_TRUE 0x00000001 /* RW--V */
+#define NV_PMC_INTR_SW_ASSERT_FALSE 0x00000000 /* RWI-V */
+#define NV_PMC_INTR_LTC 0x000001C0 /* R--4R */
+#define NV_PMC_INTR_LTC_PART_MASK 16:0 /* R--VF */
+#define NV_PMC_INTR_LTC_PART_MASK_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_LTC_PART_MASK_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_LTC_PART(i) (i):(i) /* */
+#define NV_PMC_INTR_LTC_PART__SIZE_1 16 /* */
+#define NV_PMC_INTR_LTC_PART_NOT_PENDING 0x00000000 /* */
+#define NV_PMC_INTR_LTC_PART_PENDING 0x00000001 /* */
+#define NV_PMC_INTR_FBPA 0x000001D0 /* R--4R */
+#define NV_PMC_INTR_FBPA_PART_MASK 16:0 /* R--VF */
+#define NV_PMC_INTR_FBPA_PART_MASK_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_FBPA_PART_MASK_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_NOSTALL 30:30 /* R--VF */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_NOSTALL_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_NOSTALL_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_STALL 31:31 /* R--VF */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_STALL_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PMC_INTR_FBPA_FBFALCON_INTR_STALL_PENDING 0x00000001 /* R---V */
+#define NV_PMC_INTR_FBPA_PART(i) (i):(i) /* */
+#define NV_PMC_INTR_FBPA_PART__SIZE_1 16 /* */
+#define NV_PMC_INTR_FBPA_PART_NOT_PENDING 0x00000000 /* */
+#define NV_PMC_INTR_FBPA_PART_PENDING 0x00000001 /* */
+#define NV_PMC_ENABLE 0x00000200 /* RW-4R */
+#define NV_PMC_ENABLE_DEVICE(i) (i):(i) /* */
+#define NV_PMC_ENABLE_DEVICE__SIZE_1 32 /* */
+#define NV_PMC_ENABLE_DEVICE_DISABLE 0x00000000 /* */
+#define NV_PMC_ENABLE_DEVICE_ENABLE 0x00000001 /* */
+#define NV_PMC_ENABLE_PRIV_RING 5:5 /* RWIVF */
+#define NV_PMC_ENABLE_PRIV_RING_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PRIV_RING_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PFIFO 8:8 /* RWIVF */
+#define NV_PMC_ENABLE_PFIFO_DISABLED 0x00000000 /* RWI-V */
+#define NV_PMC_ENABLE_PFIFO_ENABLED 0x00000001 /* RW--V */
+#define NV_PMC_ENABLE_HOST_SCHEDULER 8:8 /* */
+#define NV_PMC_ENABLE_HOST_SCHEDULER_DISABLED 0x00000000 /* */
+#define NV_PMC_ENABLE_HOST_SCHEDULER_ENABLED 0x00000001 /* */
+#define NV_PMC_ENABLE_NVLINK 25:25 /* RWIVF */
+#define NV_PMC_ENABLE_NVLINK_DISABLED 0x00000000 /* RWI-V */
+#define NV_PMC_ENABLE_NVLINK_ENABLED 0x00000001 /* RW--V */
+#define NV_PMC_ENABLE_ZPW 26:26 /* RWIVF */
+#define NV_PMC_ENABLE_ZPW_DISABLED 0x00000000 /* RWI-V */
+#define NV_PMC_ENABLE_ZPW_ENABLED 0x00000001 /* RW--V */
+#define NV_PMC_ENABLE_BLG 27:27 /* RWIVF */
+#define NV_PMC_ENABLE_BLG_DISABLED 0x00000000 /* RWI-V */
+#define NV_PMC_ENABLE_BLG_ENABLED 0x00000001 /* RW--V */
+#define NV_PMC_ENABLE_PERFMON 28:28 /* RWIVF */
+#define NV_PMC_ENABLE_PERFMON_DISABLED 0x00000000 /* RWI-V */
+#define NV_PMC_ENABLE_PERFMON_ENABLED 0x00000001 /* RW--V */
+#define NV_PMC_ENABLE_PDISP 30:30 /* RWIVF */
+#define NV_PMC_ENABLE_PDISP_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PDISP_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB 0x00000204 /* RW-4R */
+#define NV_PMC_ENABLE_PB_0 0:0 /* RWIVF */
+#define NV_PMC_ENABLE_PB_0_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_0_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_1 1:1 /* RWIVF */
+#define NV_PMC_ENABLE_PB_1_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_1_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_2 2:2 /* RWIVF */
+#define NV_PMC_ENABLE_PB_2_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_2_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_3 3:3 /* RWIVF */
+#define NV_PMC_ENABLE_PB_3_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_3_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_4 4:4 /* RWIVF */
+#define NV_PMC_ENABLE_PB_4_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_4_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_5 5:5 /* RWIVF */
+#define NV_PMC_ENABLE_PB_5_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_5_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_6 6:6 /* RWIVF */
+#define NV_PMC_ENABLE_PB_6_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_6_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_7 7:7 /* RWIVF */
+#define NV_PMC_ENABLE_PB_7_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_7_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_8 8:8 /* RWIVF */
+#define NV_PMC_ENABLE_PB_8_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_8_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_9 9:9 /* RWIVF */
+#define NV_PMC_ENABLE_PB_9_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_9_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_10 10:10 /* RWIVF */
+#define NV_PMC_ENABLE_PB_10_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_10_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_11 11:11 /* RWIVF */
+#define NV_PMC_ENABLE_PB_11_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_11_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_12 12:12 /* RWIVF */
+#define NV_PMC_ENABLE_PB_12_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_12_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_13 13:13 /* RWIVF */
+#define NV_PMC_ENABLE_PB_13_DISABLED 0x00000000 /* RW--V */
+#define NV_PMC_ENABLE_PB_13_ENABLED 0x00000001 /* RWI-V */
+#define NV_PMC_ENABLE_PB_SEL(i) (i):(i) /* */
+#define NV_PMC_ENABLE_PB_SEL__SIZE_1 14 /* */
diff --git a/manuals/volta/gv100/dev_pbdma.ref.txt b/manuals/volta/gv100/dev_pbdma.ref.txt
new file mode 100644
index 0000000..bc5163a
--- /dev/null
+++ b/manuals/volta/gv100/dev_pbdma.ref.txt
@@ -0,0 +1,4261 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+1 - INTRODUCTION
+==================
+
+ A Host's PBDMA unit fetches pushbuffer data from memory, generates
+commands, called "methods", from the fetched data, executes some of the
+generated methods itself, and sends the remainder of the methods to engines.
+ This manual describes the Host PBDMA register space and all Host methods.
+The NV_PPBDMA space defines registers that are contained within each of Host's
+PBDMA units. Each PBDMA unit is allocated a 8KB address space for its
+registers.
+ The NV_UDMA space defines the Host methods. A method consists of an
+address doubleword and a data doubleword. The address specifies the operation
+to be performed. The data is an operand. The NV_UDMA address space contains
+the addresses of the methods that are executed by a PBDMA unit.
+GP_ENTRY0 and GP_ENTRY1 - GP-Entry Memory Format
+
+ A pushbuffer contains the specifications of the operations that a GPU
+context is to perform for a particular client. Pushbuffers are stored in
+memory. A doubleword-sized (4-byte) unit of pushbuffer data is known as a
+pushbuffer entry. GP entries indicate the location of the pushbuffer data in
+memory. GP entries themselves are also stored in memory.
+ A GP entry specifies the location and size of a pushbuffer segment (a
+contiguous block of PB entries) in memory. See "FIFO_DMA" in dev_ram.ref for
+details about pushbuffer segments and the format of pushbuffer data.
+
+ The NV_PPBDMA_GP_ENTRY0_GET and NV_PPBDMA_GP_ENTRY1_GET_HI fields of a GP
+entry specify the 38-bit dword-address (which would make a 40-bit byte-address)
+of the first pushbuffer entry of the GP entry's pushbuffer segment. Because
+each pushbuffer entry (and by extension each pushbuffer segment) is doubleword
+aligned (4-byte aligned), the least significant 2 bits of the 40-bit
+byte-address are not stored. The byte-address of the first pushbuffer entry in
+a GP entry's pushbuffer segment is
+(GP_ENTRY1_GET_HI << 32) + (GP_ENTRY0_GET << 2).
+ The NV_PPBDMA_GP_ENTRY1_LENGTH field, when non-zero, indicates the number
+of pushbuffer entries contained within the GP entry's pushbuffer segment. The
+byte-address of the first pushbuffer entry beyond the pushbuffer segment is
+(GP_ENTRY1_GET_HI << 32) + (GP_ENTRY0_GET << 2) + (GP_ENTRY1_LENGTH * 4).
+ If NV_PPBDMA_GP_ENTRY1_LENGTH is CONTROL (0), then the GP entry is a
+"control" entry, meaning this GP entry will not cause any PB data to be fetched
+or executed. In this case, the NV_PPBDMA_GP_ENTRY1_OPCODE field specifies an
+operation to perform, and the NV_PPBDMA_GP_ENTRY0_OPERAND field contains the
+operand. The available operations are as follows:
+
+ * NV_PPBDMA_GP_ENTRY1_OPCODE_NOP: no operation will be performed, but note
+ that the SYNC field is still respected--see below.
+
+ * NV_PPBDMA_GP_ENTRY1_OPCODE_GP_CRC: the ENTRY0_OPERAND field is compared
+ with the cyclic redundancy check value that was calculated over previous
+ GP entries (NV_PPBDMA_GP_CRC). After each comparison, the
+ NV_PPBDMA_GP_CRC is cleared, whether they match or differ. If they
+ differ, then Host initiates an interrupt (NV_PPBDMA_INTR_0_GPCRC). For
+ recovery, clearing the interrupt will cause the PBDMA to continue as if
+ the control entry was OPCODE_NOP.
+
+ * NV_PPBDMA_GP_ENTRY1_OPCODE_PB_CRC: the ENTRY0_OPERAND is compared
+ with the CRC value that was calculated over the previous pushbuffer
+ segment (NV_PPBDMA_PB_CRC). The PB CRC resets to 0 with each pushbuffer
+ segment. If the two CRCs differ, Host will raise the
+ NV_PPBDMA_INTR_0_PBCRC interrupt. For recovery, clearing the interrupt
+ will continue as if the control entry was OPCODE_NOP. Note the PB_CRC is
+ indeterminate if an END_PB_SEGMENT PB control entry was used in the prior
+ segment or if SSDM disabled the device and the segment had conditional
+ fetching enabled.
+
+ Host supports two privilege levels for channels: privileged and
+non-privileged. The privilege level is determined by the
+NV_PPBDMA_CONFIG_AUTH_LEVEL field set from the corresponding NV_RAMFC_CONFIG
+dword in the RAMFC. Non-privileged channels cannot execute privileged methods,
+but privileged channels can. Any attempt to run a privileged operation from a
+non-privileged channel will result in PB raising NV_PPBDMA_INTR_0_METHOD.
+
+
+ The NV_PPBDMA_GP_ENTRY1_SYNC field specifies whether a pushbuffer may be
+fetched before Host has finished processing the preceding PB segment. If this
+field is SYNC_PROCEED, then Host does not wait for the preceding PB segment to
+be processed. If this field is SYNC_WAIT, then Host waits until the preceding
+PB segment has been processed by Host before beginning to fetch the current PB
+segment.
+ Host's processing of a PB segment consists of parsing PB entries into PB
+instructions, decoding those instructions into control entries or method
+headers, generating methods from method headers, determining whether methods are
+to be executed by Host or by an engine, executing Host methods, and sending
+non-Host methods and SetObject methods to engines.
+ Note that in the case where the final PB entry of the preceding PB segment
+is a method header representing a PB compressed method sequence of nonzero
+length--that is, the compressed method sequence is split across PB segments with
+all of its method data entries in the PB segment for which SYNC_WAIT is
+set--then Host is considered to have finished processing the preceding PB
+segment once that method header is read. However, splitting a PB compressed
+method sequence for software methods is not supported because Host will issue
+the DEVICE interrupt indicating the SW method as soon as it processess the
+method header, which happens prior to fetching the method data entries for that
+compressed method sequence. Thus SW cannot actually execute any of the methods
+in the sequence because the method data is not yet available, leaving the PBDMA
+wedged.
+ When SYNC_WAIT is set, Host does not wait for any engine methods generated
+from the preceding PB segment to complete. Host does not automatically wait
+until an engine is done processing all methods generated from that PB segment.
+If software desires that the engine finish processing all methods generated from
+one PB segment before a second PB segment is fetched, then software may place
+Host methods that wait until the engine is idle in the first PB segment (like
+WFI, SET_REF, or SEM_EXECUTE with RELEASE_WFI_EN set). Alternatively, software
+might put a semaphore acquire at the end of the first PB segment, and have an
+engine release the semaphore. In both cases, SYNC_WAIT must be set on the
+second PB segment. This field applies even if the NV_PPBDMA_GP_ENTRY1_LENGTH
+field is zero; if SYNC_WAIT is specified in this case, no further GP entries
+will be processed until the wait finishes.
+
+ Some parts of a pushbuffer may not be executed depending on the value of
+the NV_PPBDMA_SUBDEVICE_ID and SUBDEVICE_MASK. If an entire PB segment will not
+be executed due to conditional execution, Host need not even bother fetching the
+PB segment.
+ The NV_PPBDMA_GP_ENTRY0_FETCH field indicates whether the PB segment
+specified by the GP entry should be fetched unconditionally or fetched
+conditionally. If this field is FETCH_UNCONDITIONAL, then the PB segment is
+fetched unconditionally. If this field is FETCH_CONDITIONAL, then the PB
+segment is only fetched if the NV_PPBDMA_SUBDEVICE_STATUS field is
+STATUS_ACTIVE.
+
+********************************************************************************
+Warning: When using subdevice masking, one must take care to synchronize
+properly with any later GP entries marked FETCH_CONDITIONAL. If GP fetching
+gets too far ahead of PB processing, it is possible for a later conditional PB
+segment to be discarded prior to reaching an SSDM command that sets
+SUBDEVICE_STATUS to ACTIVE. This would cause Host to execute garbage data. One
+way to avoid this would be to set the SYNC_WAIT flag on any FETCH_CONDITIONAL
+segments following a subdevice reenable.
+********************************************************************************
+
+ If the PB segment is not fetched then it behaves as an OPCODE_NOP control
+entry. If a PB segment contains a SET_SUBDEVICE_MASK PB instruction that Host
+must see, then the GP entry for that PB segment must specify
+FETCH_UNCONDITIONAL.
+ If the PB segment specifies FETCH_CONDITIONAL and the subdevice mask shows
+STATUS_ACTIVE, but the PB segment contains a SET_SUBDEVICE_MASK PB instruction
+that will disable the mask, the rest of the PB segment will be discarded. In
+that case, an arbitrary number of entries past the SSDM may have already updated
+the PB CRC, rendering the PB CRC indeterminate.
+ If Host must wait for a previous PB segment's Host processing to be
+completed before examining NV_PPBDMA_SUBDEVICE_STATUS, then the GP entry should
+also have its SYNC_WAIT field set.
+ A PB segment marked FETCH_CONDITIONAL must not have a PB compressed method
+sequence that crosses a PB segment boundary (with its header in previous non-
+conditional PB segment and its final valid data in a conditional PB segment)--
+doing so will cause a NV_PPBDMA_INTR_0_PBSEG interrupt.
+
+ Software may monitor Host's progress through the pushbuffer by reading the
+channel's NV_RAMUSERD_TOP_LEVEL_GET entry from USERD, which is backed by Host's
+NV_PPBDMA_TOP_LEVEL_GET register. See "NV_PFIFO_USERD_WRITEBACK" in
+dev_fifo.ref for information about how frequently this information is written
+back into USERD. If a PB segment occurs multiple times within a pushbuffer
+(like a commonly used subroutine), then progress through that segment may be
+less useful for monitoring, because software will not know which occurrence of
+the segment is being processed.
+ The NV_PPBDMA_GP_ENTRY_LEVEL field specifies whether progress through the
+GP entry's PB segment should be indicated in NV_RAMUSERD_TOP_LEVEL_GET. If this
+field is LEVEL_MAIN, then progress through the PB segment will be reported --
+NV_RAMUSERD_TOP_LEVEL_GET will equal NV_RAMUSERD_GET. If this field is
+LEVEL_SUBROUTINE, then progress through this PB segment is not reported -- Host
+will not alter NV_RAMUSERD_TOP_LEVEL_GET. If this field is LEVEL_SUBROUTINE,
+reads of NV_RAMUSERD_TOP_LEVEL_GET will return the last value of NV_RAMUSERD_GET
+from a PB segment at LEVEL_MAIN.
+
+ If the GP entry's opcode is OPCODE_ILLEGAL or an invalid opcode, Host will
+initiate an interrupt (NV_PPBDMA_INTR_0_GPENTRY). If a GP entry specifies a PB
+segment that crosses the end of the virtual address space (0xFFFFFFFFFF), then
+Host will initiate an interrupt (NV_PPBDMA_INTR_0_GPENTRY). Invalid GP entries
+are treated like traps: they will set the interrupt and freeze the PBDMA, but
+the invalid GP entry is discarded. Once the interrupt is cleared, the PBDMA
+unit will simply continue with the next GP entry.
+ Note a corner case exists where the PB segment described by a GP entry is
+at the end of the virtual address space, or in other words, the last PB entry in
+the described PB segment is the last dword in the virtual address space. This
+type of GP entry is not valid and will generate a GPENTRY interrupt. The
+PBDMA's PUT pointer describes the address of the first dword beyond the PB
+segment, thus making the last dword in the virtual address space unusable for
+storing a pbentry.
+
+
+
+#define NV_PPBDMA_GP_ENTRY__SIZE 8 /* */
+
+#define NV_PPBDMA_GP_ENTRY0 0x10000000 /* RW-4R */
+
+#define NV_PPBDMA_GP_ENTRY0_OPERAND 31:0 /* RWXUF */
+#define NV_PPBDMA_GP_ENTRY0_FETCH 0:0 /* */
+#define NV_PPBDMA_GP_ENTRY0_FETCH_UNCONDITIONAL 0x00000000 /* */
+#define NV_PPBDMA_GP_ENTRY0_FETCH_CONDITIONAL 0x00000001 /* */
+#define NV_PPBDMA_GP_ENTRY0_GET 31:2 /* */
+
+#define NV_PPBDMA_GP_ENTRY1 0x10000004 /* RW-4R */
+
+#define NV_PPBDMA_GP_ENTRY1_GET_HI 7:0 /* RWXUF */
+
+
+#define NV_PPBDMA_GP_ENTRY1_LEVEL 9:9 /* RWXUF */
+#define NV_PPBDMA_GP_ENTRY1_LEVEL_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_LEVEL_SUBROUTINE 0x00000001 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_LENGTH 30:10 /* RWXUF */
+#define NV_PPBDMA_GP_ENTRY1_LENGTH_CONTROL 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_SYNC 31:31 /* RWXUF */
+#define NV_PPBDMA_GP_ENTRY1_SYNC_PROCEED 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_SYNC_WAIT 0x00000001 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_OPCODE 7:0 /* RWXUF */
+#define NV_PPBDMA_GP_ENTRY1_OPCODE_NOP 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_OPCODE_ILLEGAL 0x00000001 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_OPCODE_GP_CRC 0x00000002 /* RW--V */
+#define NV_PPBDMA_GP_ENTRY1_OPCODE_PB_CRC 0x00000003 /* RW--V */
+
+
+
+
+
+Number of NOPs for self-modifying gpfifo
+
+This is a formula for SW to estimate the number of NOPs needed to pad the gpfifo
+such that the modification of a gp entry by the engine or by the CPU can take
+effect. Here, NV_PFIFO_LB_GPBUF_CONTROL_SIZE(eng) refers to the SIZE field in the
+NV_PFIFO_LB_GPBUF_CONTROL(eng) register.(More info about the register in dev_fifo.ref)
+
+NUM_GP_NOPS(eng) = ((NV_PFIFO_LB_GPBUF_CONTROL_SIZE(eng)+1) * NV_PFIFO_LB_ENTRY_SIZE)/ NV_PPBDMA_GP_ENTRY__SIZE
+
+
+
+
+
+GP_BASE - Base and Limit of the Circular Buffer of GP Entries
+
+ GP entries are stored in a buffer in memory. The NV_PPBDMA_GP_BASE_OFFSET
+and NV_PPBDMA_GP_BASE_HI_OFFSET fields specify the 37-bit address in 8-byte
+granularity of the start of a circular buffer that contains GP entries (GPFIFO).
+This address is a virtual (not a physical) address. GP entries are always
+GP_ENTRY__SIZE-byte aligned, so the least significant three bits of the byte
+address are not stored. The byte address of the GPFIFO base pointer is thus:
+
+ gpfifo_base_ptr = GP_BASE + (GP_BASE_HI_OFFSET << 32)
+
+ The number of GP entries in the circular buffer is always a power of 2.
+The NV_PPBDMA_GP_BASE_HI_LIMIT2 field specifies the number of bits used to count
+the memory allocated to the GP FIFO. The LIMIT2 value specified in these
+registers is Log base 2 of the number of entries in the GP FIFO. For example,
+if the number of entries is 2^16--indicating a memory area of
+(2^16)*GP_ENTRY__SIZE bytes--then the value written in LIMIT2 is 16.
+ The circular buffer containing GP entries cannot cross the maximum address.
+If OFFSET + (1<<LIMIT2)*GP_ENTRY__SIZE - 1 > 0xFFFFFFFFFF, then Host will
+initiate a CPU interrupt (NV_PPBDMA_INTR_0_GPFIFO).
+ The NV_PPBDMA_GP_PUT, NV_PPBDMA_GP_GET, and NV_PPBDMA_GP_FETCH registers
+(and their associated NV_RAMFC and NV_RAMUSERD entries) are relative to the
+value of this register.
+ These registers are part of a GPU context's state. On a switch, the values
+of these registers are saved to, and restored from, the NV_RAMFC_GP_BASE and
+NV_RAMFC_GP_BASE_HI entries in the RAMFC part of the GPU context's GPU-instance
+block.
+ Typically, software initializes the information in NV_RAMFC_GP_BASE and
+NV_RAMFC_GP_BASE_HI when the GPU context's GPU-instance block is first created.
+These registers are available to software only for debug. Software should use
+them only if the GPU context is assigned to a PBDMA unit and that PBDMA unit is
+stalled. While a GPU context's Host context is not contained within a PBDMA
+unit, software should use the RAMFC entries to access this information.
+ A pair of these registers exists for each of Host's PBDMA units. These
+registers run on Host's internal bus clock.
+
+
+#define NV_PPBDMA_GP_BASE(i) (0x00040048+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_BASE__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_BASE_OFFSET 31:3 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_OFFSET_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_BASE_RSVD 2:0 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_RSVD_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_GP_BASE_HI(i) (0x0004004c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_BASE_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_BASE_HI_OFFSET 7:0 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_HI_OFFSET_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_BASE_HI_LIMIT2 20:16 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_HI_LIMIT2_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_BASE_HI_RSVDA 15:8 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_HI_RSVDA_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_GP_BASE_HI_RSVDB 31:21 /* RW-UF */
+#define NV_PPBDMA_GP_BASE_HI_RSVDB_ZERO 0x00000000 /* RW--V */
+
+
+GP_FETCH - Pointer to the next GP-Entry to be Fetched
+
+ Host does not fetch all GP entries with a single request to the memory
+subsystem. Host fetches GP entries in batches. The NV_PPBDMA_GP_FETCH register
+indicates index of the next GP entry to be fetched by Host. The actual 40-bit
+virtual address of the specified GP entry is computed as follows:
+ fetch address = GP_FETCH_ENTRY * NV_PPBDMA_GP_ENTRY__SIZE + GP_BASE
+ If NV_PPBDMA_GP_PUT==NV_PPBDMA_GP_FETCH, then requests to fetch the entire
+GP circular buffer have been issued, and Host cannot make more requests until
+NV_PPBDMA_GP_PUT is changed. Host may finish fetching GP entries long before it
+has finished processing the PB segments specified by those entries.
+Software should not use NV_PPBDMA_GP_FETCH (it should use NV_PPBDMA_GP_GET), to
+determine whether the GP circular buffer is full. NV_PPBDMA_GP_FETCH represents
+the current extent of prefetching of GP entries; prefetched entries may be
+discarded and refetched later.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_GP_FETCH entry of
+the RAMFC part of the GPU context's GPU-instance block.
+ A PBDMA unit maintains this register. Typically, software does not need to
+access this register. This register is available to software only for debug.
+Because Host may fetch GP entries long before it is ready to process the
+entries, and because Host may discard GP entries that it has fetched, software
+should not use NV_PPBDMA_GP_FETCH to monitor Host's progress (software should
+use NV_PPBDMA_GP_GET for monitoring). Software should use this register only if
+the GPU context is assigned to a PBDMA unit and that PBDMA unit is stalled.
+While a GPU context's Host context is not contained within a PBDMA unit,
+software should use NV_RAMFC_GP_FETCH to access this information.
+ If after a PRI write, or after this register has been restored from RAMFC
+memory, the value equals or exceeds the size of the circular buffer that stores
+GP entries (1<<NV_PPBDMA_GP_BASE_HI_LIMIT2), Host will initiate an interrupt
+(NV_PPBDMA_INTR_*_GPPTR), and stall.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal bus clock. This register was introduced in
+Fermi.
+
+
+#define NV_PPBDMA_GP_FETCH(i) (0x00040050+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_FETCH__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_FETCH_ENTRY 31:0 /* RW-UF */
+#define NV_PPBDMA_GP_FETCH_ENTRY_ZERO 0x00000000 /* RW--V */
+
+
+
+GP_GET - Pointer to the next GP-Entry to be Processed
+
+ After a GP entry is fetched, it needs to be processed. Typically, a GP
+entry is processed by fetching the segment of pushbuffer data specified by that
+GP entry, parsing the pushbuffer data into PB instructions, decoding
+instructions into PB control entries or method headers, and generating methods
+from method headers and their corresponding method data entries.
+ The NV_PPBDMA_GP_GET register contains the index of the GP entry for the
+next PB segment to begin being processed. Once the next GP entry has
+begun processing, that GP entry is committed and will not be refetched, and
+NV_PPBDMA_GP_GET is incremented to indicate that the memory location is no
+longer referenced.
+ NV_PPBDMA_GP_GET is not an address, but rather an index into the GP FIFO,
+offset from the beginning of the GP circular buffer in memory (defined by
+NV_PPBDMA_GP_BASE). The actual 40-bit address is computed as follows:
+ GP_GET address = GP_GET_ENTRY * NV_PPBDMA_GP_ENTRY__SIZE + GP_BASE
+ If it is desired that user-level software be prevented from writing GP
+entries ,
+GP entries may be
+stored in privileged pages of memory. Since NV_PPBDMA_GP_GET is an index, not
+an address, user-level software (which may be able to alter NV_PPBDMA_GP_GET)
+cannot move GP_GET outside of the memory area defined by NV_PPBDMA_GP_BASE.
+ While the circular buffer containing GP entries is full, the CPU cannot
+write any more GP entries. There is no extra state bit to distinguish between a
+full GP buffer and an empty GP buffer. If NV_PPBDMA_GP_PUT equals
+NV_PPBDMA_GP_GET-1, then the buffer is full. If NV_PPBDMA_GP_PUT equals
+NV_PPBDMA_GP_GET, then the GP circular buffer is empty, and there are no more GP
+entries for Host to process. Because of these definitions of full and empty,
+the GP circular buffer must always have at least one entry that is empty.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_GP_GET entry of
+the RAMFC part of the GPU context's GPU-instance block. Host stores GP entries
+that have been fetched but have not been processed in Host's Latency Buffer.
+ Typically, software initializes this information using NV_RAMFC_GP_GET
+when the GPU context is first created. Hardware maintains the value of this
+register. Software usually accesses this information using NV_RAMUSERD_GP_GET.
+This register is available to software only for debug--software should use the
+register directly only if the GPU context is assigned to a PBDMA unit and that
+PBDMA unit is stalled. While a GPU context is not assigned to a PBDMA unit and
+not bound to a channel, software should use NV_RAMFC_GP_GET to access this
+information.
+ If after a PRI write, or after this register has been restored from RAMFC
+memory, the value equals or exceeds the size of the circular buffer that stores
+GP entries (1<<NV_PPBDMA_GP_BASE_HI_LIMIT2), Host will initiate an interrupt
+(NV_PPBDMA_INTR_*_GPPTR), and stall.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_GP_GET(i) (0x00040014+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_GET__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_GET_ENTRY 31:0 /* RW-UF */
+#define NV_PPBDMA_GP_GET_ENTRY_ZERO 0x00000000 /* RW--V */
+
+
+GP_PUT - Pointer to the next GP-Entry to be Written
+
+ Typically, the CPU writes GP entries to a circular buffer, and Host reads
+them from that buffer. Host should not read entries before they have been
+written.
+ The NV_PPBDMA_GP_PUT register contains the index of the next GP entry
+that the CPU will write to memory. NV_PPBDMA_GP_PUT points past the last entry
+that has been written. NV_PPBDMA_GP_PUT is an offset from the beginning of the
+GP circular buffer in memory (NV_PPBDMA_GP_BASE). The actual 40-bit address is
+computed as follows:
+ GP_PUT address = GP_PUT_ENTRY * NV_PPBDMA_GP_ENTRY__SIZE + GP_BASE
+ If NV_PPBDMA_GP_PUT==NV_PPBDMA_GP_GET-1, then the buffer is full. While
+the buffer is full, the CPU can write no more GP entries. If NV_PPBDMA_GP_PUT
+equals NV_PPBDMA_GP_GET, then the buffer is empty. While the buffer is empty,
+Host can process no more GP entries. Because of these definitions of full and
+empty, the GP circular buffer must always have at least one empty entry.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from the NV_RAMFC_GP_PUT entry of
+the RAMFC part of the GPU context's GPU-instance block.
+ Typically, software alters GP_PUT by writing to NV_RAMUSERD_GP_PUT. This
+register is not immediately synchronized with NV_RAMUSERD_GP_PUT--there will be a
+delay in that synchronization until internal reads of the pushbuffer are
+guaranteed to be ordered behind the write (soft-flush). This
+register is available to software only for debug. Software should use this
+register only if the GPU context is assigned to a PBDMA unit and that PBDMA unit
+is stalled. While a GPU context is not assigned to a PBDMA unit and is not
+bound to a channel, software should use NV_RAMFC_GP_PUT to access this
+information.
+ If after a PRI write, or after this register has been restored from RAMFC
+memory, the value equals or exceeds the size of the circular buffer that stores
+GP entries (1<<NV_PPBDMA_GP_BASE_HI_LIMIT2), Host will initiate an interrupt
+(NV_PPBDMA_INTR_*_GPPTR), and stall.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_GP_PUT(i) (0x00040000+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_PUT__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_PUT_ENTRY 31:0 /* RW-UF */
+#define NV_PPBDMA_GP_PUT_ENTRY_ZERO 0x00000000 /* RW--V */
+
+
+
+PB_FETCH - Pointer to the next PB Data to be Fetched
+
+ As directed by GP entries, Host fetches pushbuffer data for a channel,
+processes the data, and sends methods generated from the data to engines. Each
+GP entry specifies a range of addresses from which Host is to fetch pushbuffer
+data.
+ Typically, PB segments are too large for Host to fetch the entire
+segment at one time. The NV_PPBDMA_PB_FETCH_ADDR and NV_PPBDMA_FETCH_HI_ADDR
+registers contain the next address from which Host will fetch pushbuffer data.
+PB compressed method sequences have variable sizes. Until PB data is parsed,
+Host does not know where one PB compressed method sequence ends and another
+begins. PB_FETCH may point to the middle of a compressed method sequence.
+Before Host begins fetching PB data for a new GP entry, it sets this field to
+the value from the GP entry's NV_PPBDMA_GP_ENTRY0_GET and
+NV_PPBDMA_GP_ENTRY1_GET_HI entries so that Host will start fetching from the new
+PB segment.
+ The NV_PPBDMA_PB_FETCH_HI_LENGTH field contains the number of PB entries in
+the PB segment for which no fetch request has been issued. Before Host begins
+fetching PB data for a new GP entry, it sets this field to the value from the GP
+entry's NV_PPBDMA_GP_ENTRY1_LENGTH field.
+ The NV_PPBDMA_PB_FETCH_CONDITIONAL field indicates whether the PB
+segment specified by the GP entry should be fetched unconditionally, or should
+be fetched only if the NV_PPBDMA_SUBDEVICE_STATUS field is STATUS_ACTIVE.
+Before Host begins fetching PB data for a new GP entry, it sets this field to
+the value from the GP entry's NV_PPBDMA_GP_ENTRY0_FETCH field.
+ The NV_PPBDMA_PB_FETCH_HI_SYNC field specifies whether a pushbuffer may be
+fetched before Host has finished processing the preceding PB segment.
+Before Host begins fetching PB data for a new GP entry, it sets this field to
+the value from the GP entry's NV_PPBDMA_GP_ENTRY1_SYNC field.
+ The NV_PPBDMA_PB_FETCH_HI_LEVEL field specifies whether progress through
+the GP entry's PB segment should be indicated in
+NV_RAMUSERD_TOP_LEVEL_GET. If LEVEL is SUBROUTINE, progress is not reflected in
+TOP_LEVEL_GET. Before Host begins fetching PB data for a new GP entry, it sets
+this field to the value from the GP entry's NV_PPBDMA_GP_ENTRY1_LEVEL field.
+ These registers are part of a GPU context's state. On a switch, the
+register values are saved to and restored from the NV_RAMFC_PB_FETCH and
+NV_RAMFC_PB_FETCH_HI entries of the RAMFC part of the GPU context's
+GPU-instance block.
+ Hardware maintains these registers. Typically, software does not access
+them directly; they are available to software only for debug. Because Host
+may fetch pushbuffer data long before it is ready to process the data, and
+because Host may discard pushbuffer data that it has fetched, software should
+not use PB_FETCH to monitor Host's progress. Software should use
+these registers only if the GPU context is assigned to a PBDMA unit and that
+PBDMA unit is stalled. While a GPU context's Host context is not contained
+within a PBDMA unit, software should use NV_RAMFC_PB_FETCH and
+NV_RAMFC_PB_FETCH_HI to access this information.
+ A pair of these registers exists for each of Host's PBDMA units. These
+registers run on Host's internal domain clock.
+
+
+#define NV_PPBDMA_PB_FETCH(i) (0x00040054+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PB_FETCH__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PB_FETCH_CONDITIONAL 0:0 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_CONDITIONAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_FETCH_CONDITIONAL_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_PB_FETCH_ADDR 31:2 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_ADDR_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_PB_FETCH_HI(i) (0x00040058+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PB_FETCH_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PB_FETCH_HI_ADDR 7:0 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_HI_ADDR_ZERO 0x00000000 /* RW--V */
+
+
+#define NV_PPBDMA_PB_FETCH_HI_LEVEL 9:9 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_HI_LEVEL_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_FETCH_HI_LEVEL_SUBROUTINE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_PB_FETCH_HI_SYNC 10:10 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_HI_SYNC_PROCEED 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_FETCH_HI_SYNC_WAIT 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_PB_FETCH_HI_LENGTH 31:11 /* RW-UF */
+#define NV_PPBDMA_PB_FETCH_HI_LENGTH_ZERO 0x00000000 /* RW--V */
+
+
+GET - Pointer to the next PB Data to be Processed
+
+ The NV_PPBDMA_GET and NV_PPBDMA_GET_HI registers contain the virtual
+address of the next pushbuffer data to be processed, called the "GET" pointer.
+GET may point to the middle of a PB compressed method sequence.
+ Pushbuffer data that has been fetched but has not been processed is stored
+in Host's Latency Buffer. When a channel's context is restored from memory to
+Host, if that channel's Latency Buffer data has been preserved, then Host will
+continue fetching pushbuffer data from PB_FETCH (which is stored in the
+NV_PPBDMA_PB_FETCH and NV_PPBDMA_PB_FETCH_HI registers described above). If
+that Latency Buffer data has been lost, then Host will continue fetching
+pushbuffer data from the GET address. Typically, Latency Buffer data is
+preserved if there are more engines than Host has PBDMA units for serving
+engines.
+ These registers are part of a GPU context's state. On a switch, the
+register values are saved to, and restored from, the NV_RAMFC_PB_GET and
+NV_RAMFC_PB_GET_HI entries of the RAMFC part of the GPU context's GPU-instance
+block.
+ Hardware maintains the values of these registers. Typically, software
+accesses this information using NV_RAMUSERD_GET and NV_RAMUSERD_GET_HI. These
+registers are available to software only for debug. Software should use them
+only if the GPU context is assigned to a PBDMA unit. While a GPU context is not
+assigned to a PBDMA unit and is not bound to a channel, software should use
+NV_RAMFC_PB_GET and NV_RAMFC_PB_GET_HI to access this information instead.
+ If after a PRI write, or after this register has been restored from RAMFC
+memory, the value exceeds the value of NV_PPBDMA_PUT, Host will initiate an
+interrupt (NV_PPBDMA_INTR_0_PBPTR), and stall.
+ A pair of these registers exists for each of Host's PBDMA units. These
+registers run on Host's internal domain clock.
+
+
+#define NV_PPBDMA_GET(i) (0x00040018+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GET__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GET_OFFSET 31:2 /* RW-UF */
+#define NV_PPBDMA_GET_OFFSET_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_GET_HI(i) (0x0004001c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GET_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GET_HI_OFFSET 7:0 /* RW-UF */
+#define NV_PPBDMA_GET_HI_OFFSET_ZERO 0x00000000 /* RW--V */
+
+
+PUT - Pointer to the End of the PB Segment
+
+ Each GP entry specifies a range of addresses from which Host is to fetch
+pushbuffer data. This range of addresses defines a PB segment. The
+NV_PPBDMA_PUT and NV_PPBDMA_PUT_HI registers contain the PUT field, which
+specifies the address of the first memory location after the end of the
+PB segment currently being processed. Host will stop fetching the
+PB segment when it reaches this address.
+ This register is part of a GPU context's state. On a switch, the values of
+theses registers are saved to and restored from the NV_RAMFC_PB_PUT and
+NV_RAMFC_PB_PUT_HI entries of the RAMFC part of the GPU context's GPU-instance
+block.
+ Hardware maintains these registers. Typically, software may access this
+information through NV_RAMUSERD_PUT and NV_RAMUSERD_PUT_HI. Software should
+generally not access these registers directly; they are available to software
+only for debug. Software should use them only if the GPU context is assigned
+to a PBDMA unit. While a GPU context is not assigned to a PBDMA unit and is not
+bound to a channel, software should use NV_RAMFC_PB_PUT and NV_RAMFC_PB_PUT_HI
+to access this information.
+ A pair of these registers exists for each of Host's PBDMA units. These
+registers run on Host's internal domain clock.
+
+
+#define NV_PPBDMA_PUT(i) (0x0004005c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PUT__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PUT_OFFSET 31:2 /* RW-UF */
+#define NV_PPBDMA_PUT_OFFSET_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_PUT_RSVD 1:0 /* R-IUF */
+#define NV_PPBDMA_PUT_RSVD_ZERO 0x00000000 /* R-I-V */
+
+#define NV_PPBDMA_PUT_HI(i) (0x00040060+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PUT_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PUT_HI_OFFSET 7:0 /* RW-UF */
+#define NV_PPBDMA_PUT_HI_OFFSET_ZERO 0x00000000 /* RW--V */
+
+
+TOP_LEVEL_GET - Pointer to next top-level (non-subroutine) PB Data to be Processed
+
+ Software may use Host's GET pointers to monitor Host's progress fetching
+and processing the pushbuffer. However, pushbuffers may contain segments that
+are used at many different places within the pushbuffer (for example, a commonly
+called subroutine). If a segment is used in many different places, it may be
+less helpful to know that Host is in the middle of such a lower-level segment.
+Host contains a mechanism (NV_PPBDMA_GP_ENTRY1_LEVEL_SUBROUTINE) to allow
+software to specify that some segments be ignored for GET pointer monitoring.
+TOP_LEVEL_GET reflects GET for the last address in a segment that is not ignored
+for monitoring.
+ The NV_PPBDMA_TOP_LEVEL_GET and NV_PPBDMA_TOP_LEVEL_GET_HI registers hold
+the last value obtained from a GP_ENTRY for NV_PPBDMA_GET and NV_PPBDMA_GET_HI
+respectively that had the NV_PPBDMA_GP_ENTRY1_LEVEL set to LEVEL_MAIN. If Host
+has not yet encountered a GP entry with LEVEL_MAIN, then the
+TOP_LEVEL_GET_HI_VALID field is FALSE. VALID becomes TRUE only after the first
+method has been fetched from the LEVEL_MAIN segment, and becomes FALSE again
+when the channel is switched out.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_PB_TOP_LEVEL_GET and
+NV_RAMFC_PB_TOP_LEVEL_GET_HI entries of the RAMFC part of the GPU context's
+GPU-instance block.
+ Hardware maintains this register. Typically, software accessses this
+information by reading NV_RAMUSERD_TOP_LEVEL_GET first and then
+NV_RAMUSERD_TOP_LEVEL_GET_HI. The TOP_LEVEL_GET registers are available to
+software only for debug. Software should only directly use these registers if
+the GPU context is assigned to a PBDMA unit. While a GPU context is not
+assigned to a PBDMA unit and not bound to a channel, software should use
+NV_RAMFC_PB_TOP_LEVEL_GET and NV_RAMFC_PB_TOP_LEVEL_GET_HI to access this
+information.
+ A pair of these registers exists for each of Host's PBDMA units. These
+registers run on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_TOP_LEVEL_GET(i) (0x00040020+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_TOP_LEVEL_GET__SIZE_1 14 /* */
+
+#define NV_PPBDMA_TOP_LEVEL_GET_OFFSET 31:2 /* RW-UF */
+#define NV_PPBDMA_TOP_LEVEL_GET_OFFSET_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_TOP_LEVEL_GET_RSVD 1:0 /* R-IUF */
+#define NV_PPBDMA_TOP_LEVEL_GET_RSVD_ZERO 0x00000000 /* R-I-V */
+
+#define NV_PPBDMA_TOP_LEVEL_GET_HI(i) (0x00040024+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_TOP_LEVEL_GET_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_TOP_LEVEL_GET_HI_OFFSET 7:0 /* RW-UF */
+#define NV_PPBDMA_TOP_LEVEL_GET_HI_OFFSET_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_TOP_LEVEL_GET_HI_VALID 31:31 /* RWIUF */
+#define NV_PPBDMA_TOP_LEVEL_GET_HI_VALID_FALSE 0x00000000 /* RWI-V */
+#define NV_PPBDMA_TOP_LEVEL_GET_HI_VALID_TRUE 0x00000001 /* RW--V */
+
+
+GP_CRC - CRC Value over GP Entries
+
+ The NV_PPBDMA_GP_CRC register contains a cyclic redundancy check value that
+was calculated from GP entries. It may be used for debug to determine whether
+GP entries have been properly fetched and whether the data returned is expected.
+ The IEEE 802.3 CRC-32 polynomial is used to calculate CRC values.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_GP_CRC entry of
+the RAMFC part of the GPU context's GPU-instance block.
+ Hardware maintains the value of this register. Software may use special GP
+entries (NV_PPBDMA_GP_ENTRY1_OPCODE_GP_CRC) to check and clear this CRC value.
+This register is available to software only for debug. Software should use this
+register only if the GPU context is assigned to a PBDMA unit and that PBDMA unit
+is stalled. While a GPU context's Host context is not contained within a PBDMA
+unit, software should use NV_RAMFC_GP_CRC to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was introduced in
+Fermi.
+
+
+#define NV_PPBDMA_GP_CRC(i) (0x00040074+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_CRC__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_CRC_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_GP_CRC_VALUE_ZERO 0x00000000 /* RW--V */
+
+
+
+PB_HEADER - The PB Instruction Currently Being Processed
+
+ The NV_PPBDMA_PB_HEADER register contains information about the PB
+instruction (either a PB method header or a PB control entry) currently being
+processed. It also contains information about the PB segment from which the PB
+instruction was fetched. Not all of the PB instruction's information is stored
+in this register.
+
+ Note the information stored in PB_HEADER register is a dynamic
+representation of the instruction being processed. It does not contain an exact
+copy of the original PB entry in which the instruction was found. For instance
+if the instruction is a PB incrementing method header, the VALUE field of the
+NV_PPBDMA_PB_COUNT register stores the number of method data entries left to be
+consumed, and thus is decremented for each method generated.
+
+ The NV_PPBDMA_PB_HEADER_TYPE field indicates the specific type of method
+header or control entry currently being processed. The TYPE may be an
+incrementing method header (TYPE_INC), a non-incrementing method header
+(TYPE_NON_INC), an increment-once method header (TYPE_INC_ONCE), an
+immediate-data method header (TYPE_IMMD), a SET_SUBDEVICE_MASK control entry
+(TYPE_SSDM), a STORE_SUBDEVICE_MASK control entry (TYPE_STORE_SDM), a
+USE_SUBDEVICE_MASK control entry (TYPE_USE_SDM), or an end-of-pushbuffer-segment
+control entry (TYPE_END_SEG). See "FIFO_DMA" in dev_ram.ref for details about
+these types of PB instructions. Note when PB_HEADER_TYPE is TYPE_INC_ONCE, this
+field will be updated to TYPE_NON_INC after the first method in the compressed
+sequence has been generated.
+ The NV_PPBDMA_PB_HEADER_METHOD field contains the current method address.
+While processing an incrementing method header and its method data entries, this
+field will increment after each method is generated.
+ The NV_PPBDMA_PB_HEADER_SUBCHANNEL field identifies the subchannel to which
+methods generated from the current instruction are targeting (if applicable).
+Note that the mapping from subchannels to engines is fixed for each runlist
+type.
+ The NV_PPBDMA_PB_HEADER_LEVEL field indicates whether the current PB
+instruction is within a PB segment that is being used for progress monitoring.
+If this field is LEVEL_MAIN, then progress through the current PB segment is
+available in NV_PPBDMA_TOP_LEVEL_GET. If this field is LEVEL_SUBROUTINE, the
+progress through the current PB segment does not affect TOP_LEVEL_GET. The
+value of this field comes from the GP entry that specified the PB segment.
+ The NV_PPBDMA_PB_HEADER_FINAL field indicates that the PB entry in which
+the current PB instruction was found is the final PB entry of a PB segment.
+This field is used by hardware for tracking PB segment boundaries.
+ The NV_PPBDMA_PB_HEADER_FIRST field indicates whether this PB instruction
+is the first PB instruction of a new PB segment. This field is used by hardware
+for tracking.
+ The NV_PPBDMA_PB_HEADER_CONDITIONAL field indicates whether this PB
+instruction is from a conditionally fetched PB segment. If this PB instruction
+changes the subdevice mask to not match, then the remainder of this PB segment
+is not processed.
+
+ This register is part of a channel's state. On a switch, the value of this
+register is saved to and restored from the NV_RAMFC_PB_HEADER field of the RAMFC
+part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_PB_HEADER instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_PB_HEADER(i) (0x00040084+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PB_HEADER__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PB_HEADER_METHOD_OR_SDMASK 15:2 /* RW-UF */
+#define NV_PPBDMA_PB_HEADER_METHOD 13:2 /* */
+#define NV_PPBDMA_PB_HEADER_METHOD_ZERO 0x00000000 /* */
+#define NV_PPBDMA_PB_HEADER_SDMASK 15:4 /* */
+#define NV_PPBDMA_PB_HEADER_SUBCHANNEL 18:16 /* RW-UF */
+#define NV_PPBDMA_PB_HEADER_SUBCHANNEL_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_LEVEL 20:20 /* RW-VF */
+#define NV_PPBDMA_PB_HEADER_LEVEL_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_LEVEL_SUBROUTINE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_FIRST 22:22 /* RW-VF */
+#define NV_PPBDMA_PB_HEADER_FIRST_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_FIRST_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_CONDITIONAL 23:23 /* RW-VF */
+#define NV_PPBDMA_PB_HEADER_CONDITIONAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_CONDITIONAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_FINAL 24:24 /* RW-VF */
+#define NV_PPBDMA_PB_HEADER_FINAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_FINAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE 31:29 /* RW-UF */
+#define NV_PPBDMA_PB_HEADER_TYPE_SSDM 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_INC 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_STORE_SDM 0x00000002 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_NON_INC 0x00000003 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_IMMD 0x00000004 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_INC_ONCE 0x00000005 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_USE_SDM 0x00000006 /* RW--V */
+#define NV_PPBDMA_PB_HEADER_TYPE_END_SEG 0x00000007 /* RW--V */
+
+
+
+PB_COUNT - PB Entry Processor Remaining Count
+
+ Multiple method address/data pairs may be generated from a single PB method
+header. The number of methods generated from a PB method header is indicated by
+the header's count field. A single PB entry may require many cycles to process.
+A channel may be switched out while Host is in the middle of processing a PB
+compressed method sequence. The NV_PPBDMA_PB_COUNT register along with
+NV_PPBDMA_PB_HEADER contains information about the PB method header currently
+being processed.
+ The VALUE field of the NV_PPBDMA_PB_COUNT register contains the number of
+method data entries remaining to be processed in the current compressed method
+sequence. When PB_COUNT_VALUE is 0, there are no more remaining method data
+entries to process, and the next PB entry in the pushbuffer data stream is
+interpreted as the next PB instruction. When PB_COUNT_VALUE is nonzero, the
+next PB entry in the PB data stream is interpreted as method data for use in
+generating the next method address/data pair. After each method data entry is
+processed, PB_COUNT_VALUE is decremented.
+ A PBDMA unit may contain up to three PB entries that have not yet begun
+being parsed into PB instructions or method data. This raw pushbuffer data is
+stored in NV_PPBDMA_PB_DATA*. The NV_PPBDMA_PB_COUNT_DATAVAL* fields indicate
+whether or not the NV_PPBDMA_PB_DATA* registers contain valid PB entries. Each
+PB entry can be from separate PB segments, and therefore may have different
+GP-entry attributes. The attributes for each PB entry are stored in the
+remaining fields (LEVEL*, CONDITIONAL*, and FINAL*) in this register; see
+the above documentation for the associated NV_PPBDMA_PB_HEADER fields.
+ If the PB instruction being processed by Host's PB instruction processor is
+an immediate-data method header, then instead of a count value, PB_COUNT_VALUE
+contains a value to be used as the data part of a method address/data pair.
+ See "FIFO_DMA" in dev_ram.ref for details about compressed method
+sequences and method headers.
+
+ When the RAMFC in the instance block of a new channel is initialized, the
+PB_COUNT_VALUE field should be cleared to allow the first PB entry to be decoded
+as a PB instruction rather than as method data.
+ This register is part of a channel's state. On a switch, the value of this
+register is saved to and restored from the NV_RAMFC_PB_COUNT field of the RAMFC
+part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_COUNT instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_PB_COUNT(i) (0x00040088+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PB_COUNT__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PB_COUNT_VALUE 12:0 /* RW-UF */
+#define NV_PPBDMA_PB_COUNT_VALUE_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_PB_COUNT_DATAVAL0 16:16 /* RW-UF */
+#define NV_PPBDMA_PB_COUNT_DATAVAL0_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_DATAVAL0_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL0 18:18 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_LEVEL0_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL0_SUBROUTINE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL0 14:14 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL0_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL0_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL0 15:15 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_FINAL0_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL0_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_PB_COUNT_DATAVAL1 20:20 /* RW-UF */
+#define NV_PPBDMA_PB_COUNT_DATAVAL1_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_DATAVAL1_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL1 22:22 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_LEVEL1_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL1_SUBROUTINE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL1 28:28 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL1_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL1_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL1 29:29 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_FINAL1_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL1_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_PB_COUNT_DATAVAL2 24:24 /* RW-UF */
+#define NV_PPBDMA_PB_COUNT_DATAVAL2_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_DATAVAL2_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL2 26:26 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_LEVEL2_MAIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_LEVEL2_SUBROUTINE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL2 30:30 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL2_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_CONDITIONAL2_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL2 31:31 /* RW-VF */
+#define NV_PPBDMA_PB_COUNT_FINAL2_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_PB_COUNT_FINAL2_TRUE 0x00000001 /* RW--V */
+
+PB_CRC - CRC Value over PB Entries
+
+ The NV_PPBDMA_PB_CRC register contains a cyclic redundancy check value
+calculated from PB entries. It may be used for debug to determine whether PB
+entries have been properly fetched and whether the data returned is expected.
+The NV_PPBDMA_PB_CRC register is cleared at the beginning of each new PB
+segment. Note the CRC is indeterminate if an END_PB_SEGMENT instruction was
+used in the prior segment (or if the subdevice is disabled via SSDM and the
+segment was marked for conditional fetching) because Host may have already
+calculated the CRC for an arbitrary number of PB entries before processing the
+END_PB_SEGMENT or SSDM control entry.
+ The IEEE 802.3 CRC-32 polynomial is used to calculate CRC values.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to and restored from the NV_RAMFC_PB_CRC entry of the
+RAMFC part of the GPU context's GPU-instance block.
+ This register is maintained by hardware. Software may use special GP
+entries (NV_PPBDMA_GP_ENTRY1_OPCODE_PB_CRC) to check (and clear) the CRC value
+for the previous PB segment. Typically, software does not access this
+register--it is available to software only for debug. Software should use it
+only if the GPU context is assigned to a PBDMA unit and that PBDMA unit is
+stalled. While a GPU context's Host state is not contained within a PBDMA unit,
+software should use NV_RAMFC_PB_CRC to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was introduced in
+Fermi.
+
+
+
+#define NV_PPBDMA_PB_CRC(i) (0x00040098+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_PB_CRC__SIZE_1 14 /* */
+
+#define NV_PPBDMA_PB_CRC_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_PB_CRC_VALUE_ZERO 0x00000000 /* RW--V */
+
+
+SUBDEVICE - Subdevice Identifier and Status Register
+
+ The NV_PPBDMA_SUBDEVICE register is used to differentiate between GPU
+contexts using the same pushbuffer. For example, two different GPU's in a SLI
+configuration might use the same pushbuffer, or two different GPU contexts doing
+stereo rendering might use the same pushbuffer. Using this register and
+SET_SUBDEVICE_MASK PB instructions, software can specify that a set of methods
+be sent to the engine only for a subset of the channels sharing the pushbuffer.
+ The SET_SUBDEVICE_MASK instruction (see dev_ram.ref) compares its mask
+operand with the value in this register, if SUBDEVICE_CHANNEL_DMA is set to
+ENABLED. If the logical-AND of the current SUBDEVICE_ID and the mask is
+non-zero, and if SUBDEVICE_CHANNEL_DMA is ENABLED, SUBDEVICE_STATUS is set to
+ACTIVE, and Host will send methods to the engine. If the current SUBDEVICE_ID
+is not in the mask, SUBDEVICE_STATUS will be set to INACTIVE, and Host will not
+send any methods to the engine.
+ The NV_PPBDMA_SUBDEVICE_STATUS field indicates whether methods being are
+filtered. If this field is INACTIVE, later methods are not being generated,
+decoded, executed by Host, or sent to an engine. If this field is ACTIVE,
+methods are being processed normally.
+ The NV_PPBDMA_SUBDEVICE_CHANNEL_DMA field controls whether filtering
+methods according to the SUBDEVICE_ID is enabled. If this field is DISABLE,
+then SUBDEVICE_STATUS will always be set to ACTIVE, and all methods will be sent
+to the engine. If a SET_SUBDEVICE_MASK or USE_SUBDEVICE_MASK instruction is sent
+while this field is DISABLE, Host will generate an interrupt
+(NV_PPBDMA_INTR_0_PBENTRY).
+ The NV_PPBDMA_SUBDEVICE_STORED_MASK field contains a subdevice mask value
+to be used later by a USE_SUBDEVICE_MASK instruction. This field is loaded by a
+USE_SUBDEVICE_MASK instruction. See dev_ram.ref for details.
+ This register is part of a GPU context's state. Each channel has its own
+NV_PPBDMA_SUBDEVICE register value. On a switch, the NV_PPBDMA_SUBDEVICE value
+is saved to and restored from the NV_RAMFC_SUBDEVICE entry of the RAMFC part of
+the GPU context's GPU-instance block.
+ Typically, software initializes this information in NV_RAMFC_SUBDEVICE when
+the GPU context is first created. This register is available to software only
+for debug. Software should use this register only if the GPU context is
+assigned to a PBDMA unit, and if that PBDMA unit is stalled. While a GPU
+context's Host state is not contained within a PBDMA unit, software should
+NV_RAMFC_SUBDEVICE to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. It was introduced with the NV36
+Channel DMA class.
+
+
+#define NV_PPBDMA_SUBDEVICE(i) (0x00040094+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SUBDEVICE__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SUBDEVICE_ID 11:0 /* RW-UF */
+#define NV_PPBDMA_SUBDEVICE_ID_ENABLE 0x00000FFF /* RW--V */
+#define NV_PPBDMA_SUBDEVICE_STORED_MASK 27:16 /* RW-UF */
+#define NV_PPBDMA_SUBDEVICE_STORED_MASK_ENABLE 0x00000FFF /* RW--V */
+#define NV_PPBDMA_SUBDEVICE_STATUS 28:28 /* RW-UF */
+#define NV_PPBDMA_SUBDEVICE_STATUS_INACTIVE 0x00000000 /* RW--V */
+#define NV_PPBDMA_SUBDEVICE_STATUS_ACTIVE 0x00000001 /* RW--V */
+#define NV_PPBDMA_SUBDEVICE_CHANNEL_DMA 29:29 /* RW-UF */
+#define NV_PPBDMA_SUBDEVICE_CHANNEL_DMA_DISABLE 0x00000000 /* RW--V */
+#define NV_PPBDMA_SUBDEVICE_CHANNEL_DMA_ENABLE 0x00000001 /* RW--V */
+
+
+METHODn - Method FIFO Address Registers
+
+ The NV_PPBDMA_METHOD registers contain the method header information for
+the PBDMA unit's tiny Method FIFO (called "Cache1" in the Tesla architecture).
+The format of these registers does not match the method headers as present in
+the pushbuffer, but they contain the necessary information for Host to process
+each method. Method addresses generated from PB method headers and their
+associated method data entries are stored in the Method FIFO until Host is ready
+to process them. Method addresses indicate an operation to be performed by Host
+or by an engine. The corresponding data for these methods are stored in
+NV_PPBDMA_DATA registers. Compressed method sequences (method headers and their
+associated method data entries) are expanded into these registers such that each
+method data entry corresponds to a method address/data pair in the method FIFO.
+ The size of the method FIFO is given by the METHOD_FIFO_SIZE define; this
+size is hard-coded and will remain constant for any given architecture.
+ The NV_PPBDMA_METHOD0 register contains the first method to be executed.
+METHOD1 contains the second method to be executed, and so forth.
+
+ The NV_PPBDMA_METHOD_SUBCH field contains the subchannel to which the
+method is targeted. Subchannels are associated with engines according to a
+fixed mapping and with class identifiers via the NV_UDMA_OBJECT method.
+
+
+ The NV_PPBDMA_METHOD_FIRST field indicates whether the header for this
+method is the first method header of a PB segment (as specified by a GP entry).
+ The NV_PPBDMA_METHOD_VALID field indicates whether this queue entry is
+valid. If this field is VALID_FALSE, then the entry is empty.
+ For some engines, Host may send two method address/data pairs in a cycle if
+the addresses of the two methods are the same or if the address of the second
+method is the address of the first method incremented. The
+NV_PPBDMA_METHOD_DUAL field indicates that a method may be paired with the
+following entry. If the engine that a method targets cannot support dual
+methods, or if the method address indicates a Host-executed method, then methods
+may be sent one at a time even if the first method is marked DUAL. When
+generating methods from PB method headers and their associated method data
+entries, Host sets this field deterministically (independently of the rate at
+which the PBDMA unit receives PB data from memory). If the
+NV_PPBDMA_METHOD_DUAL field is DUAL_TRUE, then the NV_PPBDMA_METHOD_INCR field
+indicates whether the method address of the second is equal to the address of
+the first incremented. In the case of an incrementing method, DUAL_TRUE and
+INCR_TRUE will only be set if the method address is even.
+
+ This register is part of a GPU context's state. On a switch, the values of
+these registers are saved to, and restored from, the NV_RAMFC_METHOD* fields
+of the RAMFC part of the GPU context's GPU-instance block.
+ Hardware maintains this information. Software should use this register
+only if the GPU context is assigned to a PBDMA unit and that PBDMA unit is
+stalled. While GPU context's Host state is not contained within a PBDMA unit,
+software should use NV_RAMFC_METHOD* to access this information.
+ When a PBDMA unit is stalled due to a software method, software may use
+these registers to determine the method address/data pairs that software is to
+execute. After executing a software method, to indicate to hardware that the
+method has been executed, software should set the METHOD_VALID field to FALSE
+before clearing the NV_PPBDMA_INTR_*_DEVICE register field.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_METHOD0(i) (0x000400c0+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_METHOD0__SIZE_1 14 /* */
+#define NV_PPBDMA_METHOD0_INCR 0:0 /* RW-UF */
+#define NV_PPBDMA_METHOD0_INCR_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_INCR_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD0_ADDR 13:2 /* RW-UF */
+#define NV_PPBDMA_METHOD0_ADDR_NULL 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_SUBCH 18:16 /* RW-UF */
+#define NV_PPBDMA_METHOD0_SUBCH_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_FIRST 22:22 /* RW-UF */
+#define NV_PPBDMA_METHOD0_FIRST_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_FIRST_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD0_DUAL 23:23 /* RW-UF */
+#define NV_PPBDMA_METHOD0_DUAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_DUAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD0_VALID 31:31 /* RW-UF */
+#define NV_PPBDMA_METHOD0_VALID_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD0_VALID_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_METHOD1(i) (0x000400c8+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_METHOD1__SIZE_1 14 /* */
+#define NV_PPBDMA_METHOD1_INCR 0:0 /* RW-UF */
+#define NV_PPBDMA_METHOD1_INCR_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_INCR_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD1_ADDR 13:2 /* RW-UF */
+#define NV_PPBDMA_METHOD1_ADDR_NULL 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_SUBCH 18:16 /* RW-UF */
+#define NV_PPBDMA_METHOD1_SUBCH_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_FIRST 22:22 /* RW-UF */
+#define NV_PPBDMA_METHOD1_FIRST_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_FIRST_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD1_DUAL 23:23 /* RW-UF */
+#define NV_PPBDMA_METHOD1_DUAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_DUAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD1_VALID 31:31 /* RW-UF */
+#define NV_PPBDMA_METHOD1_VALID_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD1_VALID_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_METHOD2(i) (0x000400d0+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_METHOD2__SIZE_1 14 /* */
+#define NV_PPBDMA_METHOD2_INCR 0:0 /* RW-UF */
+#define NV_PPBDMA_METHOD2_INCR_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_INCR_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD2_ADDR 13:2 /* RW-UF */
+#define NV_PPBDMA_METHOD2_ADDR_NULL 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_SUBCH 18:16 /* RW-UF */
+#define NV_PPBDMA_METHOD2_SUBCH_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_FIRST 22:22 /* RW-UF */
+#define NV_PPBDMA_METHOD2_FIRST_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_FIRST_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD2_DUAL 23:23 /* RW-UF */
+#define NV_PPBDMA_METHOD2_DUAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_DUAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD2_VALID 31:31 /* RW-UF */
+#define NV_PPBDMA_METHOD2_VALID_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD2_VALID_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_METHOD3(i) (0x000400d8+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_METHOD3__SIZE_1 14 /* */
+#define NV_PPBDMA_METHOD3_INCR 0:0 /* RW-UF */
+#define NV_PPBDMA_METHOD3_INCR_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_INCR_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD3_ADDR 13:2 /* RW-UF */
+#define NV_PPBDMA_METHOD3_ADDR_NULL 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_SUBCH 18:16 /* RW-UF */
+#define NV_PPBDMA_METHOD3_SUBCH_ZERO 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_FIRST 22:22 /* RW-UF */
+#define NV_PPBDMA_METHOD3_FIRST_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_FIRST_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD3_DUAL 23:23 /* RW-UF */
+#define NV_PPBDMA_METHOD3_DUAL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_DUAL_TRUE 0x00000001 /* RW--V */
+#define NV_PPBDMA_METHOD3_VALID 31:31 /* RW-UF */
+#define NV_PPBDMA_METHOD3_VALID_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_METHOD3_VALID_TRUE 0x00000001 /* RW--V */
+
+DATAn - Method FIFO Data Registers
+
+ The NV_PPBDMA_DATA registers contain the data part of a PBDMA unit's tiny
+method FIFO (Cache1). Method data from the pushbuffer is stored in Host's
+method FIFO until the PBDMA unit is ready to process it.
+ NV_PPBDMA_DATA(0) contains the data for the first method. DATA(1) contains
+data for the second method, and so forth.
+ This register is part of a GPU context's state. On a switch, the values of
+these registers are saved to, and restored from, the NV_RAMFC_DATA*
+fields of the RAMFC part of the GPU context's GPU-instance block.
+ Hardware maintains this information. Software should use this register
+only if the GPU context is assigned to a PBDMA unit and that PBDMA unit is
+stalled. While GPU context's Host state is not contained within a PBDMA unit,
+software should and NV_RAMFC_DATA* to access this information.
+ When a PBDMA unit is stalled due to a software method, software may use
+these registers to determine the data part of the method address/data pairs that
+software is to execute. When handling a software method, software need only set
+the method's NV_PPBDMA_METHOD_VALID bit to VALID_FALSE. It need not move or
+alter the contents of this register.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_DATA0(i) (0x000400c4+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_DATA0__SIZE_1 14 /* */
+#define NV_PPBDMA_DATA0_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_DATA0_VALUE_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_DATA1(i) (0x000400cc+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_DATA1__SIZE_1 14 /* */
+#define NV_PPBDMA_DATA1_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_DATA1_VALUE_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_DATA2(i) (0x000400d4+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_DATA2__SIZE_1 14 /* */
+#define NV_PPBDMA_DATA2_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_DATA2_VALUE_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_DATA3(i) (0x000400dc+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_DATA3__SIZE_1 14 /* */
+#define NV_PPBDMA_DATA3_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_DATA3_VALUE_ZERO 0x00000000 /* RW--V */
+
+TARGET [register] - Target Engine
+
+ The NV_PPBDMA_TARGET_ENGINE field contains the last non-software engine
+that received data from the Method Processor. This register is used to
+determine if an inter-engine subchannel switch has happened. Methods executed
+by Host (not by an engine), regardless of their subchannel, do not affect the
+value of this field.
+ The imaginary software engine is treated specially. A method is directed
+at the software engine by setting its NV_FIFO_DMA_*_SUBCHANNEL field to one of
+the SW subchannels 5-7; see dev_ram.ref. When such a method is encountered, the
+PBDMA unit freezes and raises the NV_PPBDMA_INTR_0_DEVICE interrupt. CPU
+software handles the method, marks the method as having been executed by setting
+NV_PPBDMA_METHOD0_VALID to FALSE, and clears the interrupt to allow the PBDMA to
+continue processing subsequent methods. When initializing a channel, SW should
+set the ENGINE field in NV_RAMFC_TARGET to match the engine that the channel
+will serve. If the ENGINE is not a valid engine for the runqueue, Host will
+force the field to the lowest numbered engine served by the runqueue. If the
+ENGINE still does not match the first encountered engine method on the channel,
+Host will WFI on the engine specified by the TARGET entry in RAMFC before
+submitting the first method to the engine targeted by SUBCHANNEL field of the
+method.
+
+ The NV_PPBDMA_TARGET_ENG_CTX_VALID field indicates whether a valid non-CE
+engine context exists for the channel loaded on the PBDMA. The field is
+populated by the value in the corresponding field of the NV_RAMFC_TARGET entry
+and is not modified by HW. When initializing a channel in a TSG for which a
+valid engine context exists, SW should set the channel's NV_RAMFC_TARGET
+ENG_CTX_VALID field to TRUE. If a valid engine context does not exist at
+channel creation time, the field should be set to FALSE. When a valid engine
+context is created for the TSG, the RAMFC field must be set TRUE for all
+channels in the TSG. Prior to a TSG's engine context being deleted, the TSG's
+channels must be disabled or unbound and the TSG preempted, followed by setting
+the channels' RAMFC ENG_CTX_VALID fields to FALSE. The RAMFC field for a
+channel should only be updated when the channel is disabled and idle.
+ The NV_PPBDMA_TARGET_CE_CTX_VALID field indicates whether a valid copy
+engine method buffer exists for the channel loaded on the PBDMA. The field is
+populated by the value in the corresponding field of the NV_RAMFC_TARGET entry
+and is not modified by HW. When initializing a channel, SW should set the
+channel's NV_RAMFC_TARGET CE_CTX_VALID field to TRUE if the copy engine method
+buffer for the channel's TSG runqueue has already been created; see
+NV_RAMIN_ENG_METHOD_BUFFER_ADDR_* in dev_ram.ref. If a valid method buffer has
+not been created, the field should be set to FALSE. When a method buffer is
+created for the TSG runqueue, this RAMFC field must be set to TRUE for all
+channels in the TSG that target the runqueue. Prior to deallocating the method
+buffer for a TSG runqueue, all channels in the TSG that map to the runqueue must
+be disabled or unbound and the TSG preempted, followed by setting the channel's
+RAMFC CE_CTX_VALID fields to FALSE. The RAMFC field for a channel should only
+be updated when the channel is disabled and idle.
+ If Host receives an engine method for an engine that has the corresponding
+NV_PPBDMA_TARGET_*_CTX_VALID field set to FALSE, Host will raise the stalling
+PBDMA interrupt NV_PPBDMA_INTR_1_CTXNOTVALID.
+
+ Host sets NV_PPBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT whenever the PBDMA
+sends any method to the graphics engine. When set, Host must eventually send a
+HOST_TSG_EVENT at a TSG event point: the channel runs out of work, a TSG yield
+is reached, or a semaphore acquire fails. Therefore, as a performance
+optimization, Host will initiate a context load immediately following the RAMFC
+load in preparation for sending the HOST_TSG_EVENT. SHOULD_SEND_HOST_TSG_EVENT
+is cleared once Host issues a HOST_TSG_EVENT method or when Host does a
+subchannel switch to the PBDMA's grcopy. Note if the clear occurs due to the
+latter case, the initial context load may have been needless.
+ Host sets NV_PPBDMA_TARGET_NEEDS_HOST_TSG_EVENT to TRUE when in a TSG, the
+TARGET_ENGINE is NV_ENGINE_GRAPHICS, and the PBDMA needs to send the target
+engine a HOST_TSG_EVENT internal method. When TRUE on channel load, Host will
+send the HOST_TSG_EVENT prior to sending any other engine methods. This is
+somewhat like having another entry in the NV_PPBDMA_METHODn/DATAn Host method
+fifo that comes before the 0th entry. However, Host may process other Host
+methods concurrently with attempting to send the HOST_TSG_EVENT. Note that when
+this field is TRUE, the PBDMA will initiate a context load immediately after the
+RAMFC is loaded unless a context load is already in progress because of
+CTX_RELOAD or the other PBDMA sharing the runlist. On channel creation,
+software should initialize this field to FALSE in the corresponding
+NV_RAMFC_TARGET entry. This bit is required for Pascal SCG functional
+correctness--when Host cannot send a HOST_TSG_EVENT due to backpressure on the
+method interface to FE, it must remember the fact that it still needs to send a
+HOST_TSG_EVENT if the PBDMA channel switches out. Dropping a HOST_TSG_EVENT can
+result in a hang in FE if the current pipe is in compute mode and the other pipe
+has methods to send.
+ The HOST_TSG_EVENT_REASON field indicates the reason for which a
+HOST_TSG_EVENT internal method must be sent when NEEDS_HOST_TSG_EVENT is TRUE.
+These defines match those of the NV_PMETHOD_HOST_TSG_EVENT_REASON field of the
+internal method; see internal_methods.ref.
+
+ This register is part of a GPU context's state. During a channel switch,
+the value of this register is saved to and restored from the NV_RAMFC_TARGET
+entry of the GPU context's GPU-instance block.
+ This information is maintained by Hardware. Typically, software does not
+access this register. This register is available for debug purposes. Software
+should use this register only if the GPU context is assigned to a PBDMA unit and
+that PBDMA unit is stalled. While a GPU context's Host state is not contained
+within a PBDMA unit, software should use NV_RAMFC_TARGET to access this
+information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_TARGET(i) (0x000400ac+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_TARGET__SIZE_1 14 /* */
+
+#define NV_PPBDMA_TARGET_ENGINE 4:0 /* RW-UF */
+#define NV_PPBDMA_TARGET_ENGINE_SW 31 /* RW--V */
+
+#define NV_PPBDMA_TARGET_ENG_CTX_VALID 16:16 /* RW-UF */
+#define NV_PPBDMA_TARGET_ENG_CTX_VALID_TRUE 1 /* RW--V */
+#define NV_PPBDMA_TARGET_ENG_CTX_VALID_FALSE 0 /* RW--V */
+
+#define NV_PPBDMA_TARGET_CE_CTX_VALID 17:17 /* RW-UF */
+#define NV_PPBDMA_TARGET_CE_CTX_VALID_TRUE 1 /* RW--V */
+#define NV_PPBDMA_TARGET_CE_CTX_VALID_FALSE 0 /* RW--V */
+
+#define NV_PPBDMA_TARGET_HOST_TSG_EVENT_REASON 25:24 /* RW-UF */
+#define NV_PPBDMA_TARGET_HOST_TSG_EVENT_REASON_PBDMA_IDLE 0x0 /* RW--V */
+#define NV_PPBDMA_TARGET_HOST_TSG_EVENT_REASON_SEMAPHORE_ACQUIRE_FAILURE 0x1 /* RW--V */
+#define NV_PPBDMA_TARGET_HOST_TSG_EVENT_REASON_TSG_YIELD 0x2 /* RW--V */
+#define NV_PPBDMA_TARGET_HOST_TSG_EVENT_REASON_HOST_SUBCHANNEL_SWITCH 0x3 /* RW--V */
+
+#define NV_PPBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT 29:29 /* RW-UF */
+#define NV_PPBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT_TRUE 1 /* RW--V */
+#define NV_PPBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT_FALSE 0 /* RW--V */
+
+#define NV_PPBDMA_TARGET_NEEDS_HOST_TSG_EVENT 31:31 /* RW-UF */
+#define NV_PPBDMA_TARGET_NEEDS_HOST_TSG_EVENT_TRUE 1 /* RW--V */
+#define NV_PPBDMA_TARGET_NEEDS_HOST_TSG_EVENT_FALSE 0 /* RW--V */
+
+
+METHOD_CRC - Method CRC Value
+
+ The NV_PPBDMA_METHOD_CRC register contains a cyclic redundancy check value
+calculated from the methods sent to Host's Crossbar. This therefore excludes
+software methods and Host-only methods. It may be used for debug
+to determine whether the correct methods have been sent. A method CRC can
+detect errors in the fetching of GP data, the fetching of PB data, and the
+generation of methods from PB data. If Host fetched GP data incorrectly,
+fetched PB data incorrectly, or generated methods from PB data incorrectly it is
+unlikely that the CRC value calculated by Host would match the CRC value
+calculated by software.
+ The IEEE 802.3 CRC-32 polynomial (x32 + x26 + x23 + x22 + x16 + x12 + x11 +
+x10 + x8 + x7 + x5 + x4 + x2 + x + 1) is used to calculate CRC values. Methods
+can be sent to Host's Crossbar as single methods, or dual methods. The CRC is
+calculated as if dual methods were always sent as two single methods. Each
+method consists of a subchannel identifer (3 bits), and a method address (12
+bits), and method data (32 bits). For the CRC calculation, a method is
+organized into a 6-byte value. Bytes are added to the CRC from the least
+significant byte to the most significant byte.
+
+
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_METHOD_CRC field of
+the RAMFC part of the GPU context's GPU-instance block.
+ This information is maintained by hardware. Software may use special
+methods (NV_UDMA_CRC_CHECK) to check and clear the CRC value. Typically,
+software does not access this register directly. This register is available to
+software only for debug. Software should use this register only if the GPU
+context is assigned to a PBDMA unit and that PBDMA unit is stalled. While a GPU
+context's Host state is not contained within a PBDMA unit, software should use
+NV_RAMFC_METHOD_CRC to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was introduced in
+Fermi.
+
+
+
+#define NV_PPBDMA_METHOD_CRC(i) (0x000400b0+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_METHOD_CRC__SIZE_1 14 /* */
+
+#define NV_PPBDMA_METHOD_CRC_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_METHOD_CRC_VALUE_ZERO 0x00000000 /* RW--V */
+
+REF - Reference Count
+
+ Software may use Reference Counts to monitor Host's progress processing a
+pushbuffer. The pushbuffer specifies that the Reference Count be written. For
+synchronization, software might wait until a particular Reference Count value
+has a particular value before proceeding.
+ The NV_PPBDMA_REF register holds a 32-bit Reference Count value that can be
+written with the NV_UDMA_SET_REF method. The value written to the register is
+from the NV_UDMA_SET_REF method's parameter. The value is not written to this
+register until the target engine reports that it is idle and the memory
+subsystem has been flushed. Waiting for the engine to become idle and the
+memory subsysten to be flushed ensures that all previous instructions in the
+current channel context have completed execution.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_REF entry of the
+RAMFC part of the GPU context's GPU-instance block.
+ Typically, while a GPU context is bound to a channel, software uses
+NV_RAMUSERD_REF to access this information. Typically, software does not access
+this register directly. This register is available to software only for debug.
+Software should use this register only if the GPU context is assigned to a PBDMA
+unit and that PBDMA unit is stalled. While a GPU context is not assigned to a
+PBDMA unit and is not bound to a channel, software should use NV_RAMFC_REF to
+access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_REF(i) (0x00040028+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_REF__SIZE_1 14 /* */
+
+#define NV_PPBDMA_REF_CNT 31:0 /* RW-UF */
+#define NV_PPBDMA_REF_CNT_ZERO 0x00000000 /* RW--V */
+
+
+
+RUNTIME - Active run time on Host
+
+ The NV_PPBDMA_RUNTIME register contains the amount of time a GPU context
+has been actively running within Host. This is not the amount of time that the
+GPU context has been actively running on an engine. The amount of time is
+measured in 1024 ns ticks from the PTIMER. Software may set this value to 0 and
+can later read the value to see whether the GPU context ran.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_RUNTIME entry of the
+RAMFC part of the GPU context's GPU-instance block.
+ This information is maintained by hardware. Software may read this
+register at any time. Software should write this register only if the GPU
+context is assigned to a PBDMA unit and that PBDMA unit is stalled. While a GPU
+context's Host state is not contained within a PBDMA unit, software should use
+NV_RAMFC_RUNTIME to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_RUNTIME(i) (0x0004002c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_RUNTIME__SIZE_1 14 /* */
+
+#define NV_PPBDMA_RUNTIME_VALUE 31:0 /* RW-UF */
+#define NV_PPBDMA_RUNTIME_VALUE_ZERO 0x00000000 /* RW--V */
+
+
+SEM_ADDR_LO [register] - Semaphore Address Low Backing Register
+
+ Semaphores are synchronization primitives located in memory; see the
+documentation above the NV_UDMA_SEM_ADDR_LO method description for a brief
+overview.
+ The NV_PPBDMA_SEM_ADDR_LO register specifies the least significant bits of
+a semaphore's virtual memory address. This register is written to via the
+NV_UDMA_SEM_ADDR_LO method. See the method documentation of
+NV_UDMA_SEM_ADDR_LO for information regarding usage and behavior.
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_SEM_ADDR_LO field of
+the RAMFC part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_SEM_ADDR_LO instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_SEM_ADDR_LO(i) (0x0004003c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SEM_ADDR_LO__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SEM_ADDR_LO_ADDR 31:2 /* RW-UF */
+#define NV_PPBDMA_SEM_ADDR_LO_ADDR_ZERO 0x00000000 /* RW--V */
+
+
+SEM_ADDR_HI [register] - Semaphore Address High Backing Register
+
+ The NV_PPBDMA_SEM_ADDR_HI register contains the most significant 8 bits of
+a semaphore's 40-bit virtual memory address. This register is written to via
+the NV_UDMA_SEM_ADDR_HI method. See the method documentation of
+NV_UDMA_SEM_ADDR_HI for information regarding usage and behavior.
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_SEM_ADDR_HI field of
+the RAMFC part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_SEM_ADDR_HI instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_SEM_ADDR_HI(i) (0x00040038+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SEM_ADDR_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SEM_ADDR_HI_ADDR 7:0 /* RW-UF */
+#define NV_PPBDMA_SEM_ADDR_HI_ADDR_ZERO 0x00000000 /* RW--V */
+
+
+SEM_PAYLOAD_LO [register] - Semaphore Payload Low Backing Register
+
+ The NV_PPBDMA_SEM_PAYLOAD_LO register contains the lowest 32 bits of the
+semaphore payload. The payload is used to either write to the semaphore or
+provide an operand for a semaphore operation. This register is written to via
+the NV_UDMA_SEM_PAYLOAD_LO method. See the method documentation of
+NV_UDMA_SEM_PAYLOAD_LO for information regarding usage and behavior.
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_SEM_PAYLOAD_LO field
+of the RAMFC part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_SEM_PAYLOAD_LO instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_SEM_PAYLOAD_LO(i) (0x00040040+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SEM_PAYLOAD_LO__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SEM_PAYLOAD_LO_DATA 31:0 /* RW-VF */
+#define NV_PPBDMA_SEM_PAYLOAD_LO_DATA_ZERO 0x00000000 /* RW--V */
+
+
+SEM_PAYLOAD_HI [register] - Semaphore Payload High Backing Register
+
+ The NV_PPBDMA_SEM_PAYLOAD_HI register contains the highest 32 bits of the
+semaphore payload. The payload is used to either write to the semaphore or
+provide an operand for a semaphore operation. This register is written to via
+the NV_UDMA_SEM_PAYLOAD_HI method. See the method documentation of
+NV_UDMA_SEM_PAYLOAD_HI for information regarding usage and behavior.
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_SEM_PAYLOAD_HI field of
+the RAMFC part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_SEM_PAYLOAD_HI instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_SEM_PAYLOAD_HI(i) (0x0004009c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SEM_PAYLOAD_HI__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SEM_PAYLOAD_HI_DATA 31:0 /* RW-VF */
+#define NV_PPBDMA_SEM_PAYLOAD_HI_DATA_ZERO 0x00000000 /* RW--V */
+
+
+SEM_EXECUTE [register] - Semaphore Operation Backing Register
+
+ The NV_PPBDMA_SEM_EXECUTE register contains a type of semaphore operation
+to be performed and additional parameters for that operation. This register is
+written to via the NV_UDMA_SEM_EXECUTE method.
+ A semaphore operation is launched by executing the NV_UDMA_SEM_EXECUTE
+method. This semaphore operation uses the semaphore address from the
+NV_PPBDMA_SEM_ADDR_LO and NV_PPBDMA_SEM_ADDR_HI registers, and uses the
+payload value from the NV_PPBDMA_SEM_PAYLOAD_LO and NV_PPBDMA_SEM_PAYLOAD_HI
+registers. However, after the semaphore operation has completed, these
+registers may be updated individually by other semaphore methods; that is, they
+do not retain an accurate view of the most previously executed semaphore
+operation. See the method documentation of NV_UDMA_SEM_EXECUTE for information
+regarding usage and behavior.
+ During execution of the semaphore operation, the ACQUIRE_FAIL field of the
+NV_PPBDMA_SEM_EXECUTE register indicates whether or not an attempt to acquire a
+semaphore has failed or faulted. This field is used by Host to determine
+whether the NV_PPBDMA_ACQUIRE_DEADLINE register should be updated. If the
+value of this field is FALSE, this means an acquire has not yet been attempted,
+and Host will set ACQUIRE_DEADLINE to a new value. If this field is TRUE, this
+means an acquire has been attempted and has failed, and Host will not modify
+ACQUIRE_DEADLINE.
+ The ACQUIRE_FAIL field also indicates whether, during the execution of a
+NV_UDMA_CLEAR_FAULTED method, an attempt to clear a _FAULTED bit of a channel's
+NV_PCCSR_CHANNEL register has failed or not. If this field is FALSE, this might
+mean a CLEAR_FAULTED has not yet been attempted, and Host will set
+ACQUIRE_DEADLINE to a new value. If CLEAR_FAULTED method fails the field is set
+to TRUE. By reading the PPBDMA_METHOD0 register, SW can determine the method
+for which the field is in use. Host will set this field to FALSE when the
+CLEAR_FAULTED method succeeds or its timeout is triggered.
+ Note that during execution of a semaphore operation, the value of the
+NV_PPBDMA_SEM_EXECUTE register is the same as the value of NV_PPBDMA_DATA0,
+with the exception of the NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL field. If
+software modifies NV_PPBDMA_DATA0 during execution of a NV_UDMA_SEM_EXECUTE
+method, it must be careful to update the NV_PPBDMA_SEM_EXECUTE register to be
+consistent with the DATA0 register.
+ This register is part of a channel's state. When the channel is switched
+out, the value of this register is saved to, and restored from, the
+NV_RAMFC_SEM_EXECUTE field of the RAMFC part of the channel's instance block.
+ Software typically does not access this register directly, unless this is
+being done while debugging. Software can directly access this register without
+the risk of race conditions when the channel is loaded on a PBDMA unit and that
+PBDMA unit is stalled. While a channel is not loaded on a PBDMA unit, software
+can read from the NV_RAMFC_SEM_EXECUTE instance block field to access this
+information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+#define NV_PPBDMA_SEM_EXECUTE(i) (0x00040044+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SEM_EXECUTE__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION 2:0 /* RWXVF */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_ACQUIRE 0x00000000 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_RELEASE 0x00000001 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_ACQ_STRICT_GEQ 0x00000002 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_ACQ_CIRC_GEQ 0x00000003 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_ACQ_AND 0x00000004 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_ACQ_NOR 0x00000005 /* -W--V */
+#define NV_PPBDMA_SEM_EXECUTE_OPERATION_REDUCTION 0x00000006 /* -W--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG 12:12 /* RW-VF */
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG_DIS 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG_EN 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL 19:19 /* RWXVF */
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL_FALSE 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL_TRUE 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_WFI 20:20 /* RW-VF */
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_WFI_DIS 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_WFI_EN 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_PAYLOAD_SIZE 24:24 /* RWXVF */
+#define NV_PPBDMA_SEM_EXECUTE_PAYLOAD_SIZE_32BIT 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_PAYLOAD_SIZE_64BIT 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_TIMESTAMP 25:25 /* RW-VF */
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_TIMESTAMP_DIS 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_RELEASE_TIMESTAMP_EN 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION 30:27 /* RWXVF */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IMIN 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IMAX 0x00000001 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IXOR 0x00000002 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IAND 0x00000003 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IOR 0x00000004 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_IADD 0x00000005 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_INC 0x00000006 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_DEC 0x00000007 /* RW--V */
+
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_FORMAT 31:31 /* RW-VF */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_FORMAT_SIGNED 0x00000000 /* RW--V */
+#define NV_PPBDMA_SEM_EXECUTE_REDUCTION_FORMAT_UNSIGNED 0x00000001 /* RW--V */
+
+
+ACQUIRE_DEADLINE - Deadline for Semaphore Acquire and Clear Faulted Timeouts
+
+ The NV_PPBDMA_ACQUIRE_DEADLINE register contains timeout information used
+by the NV_UDMA_SEM_EXECUTE and NV_UDMA_CLEAR_FAULTED methods.
+
+ During execution of a semaphore acquire operation, the timeout period from
+NV_PPBDMA_ACQUIRE_TIMEOUT is added to the current time from PTIMER to compute
+the time at which the acquire will time out. This timeout time is stored in
+NV_PPBDMA_ACQUIRE_DEADLINE_TIMESTAMP.
+ Whenever an acquire is retried, the current time from the PTIMER is
+compared with the value in this register. The comparison is circular. If an
+acquire attempt fails to match, and if the current time is not between the start
+time (STARTTIME = ACQUIRE_DEADLINE - ACQUIRE_TIMEOUT) and ACQUIRE_DEADLINE in
+the circle of 32-bit unsigned integers, then the deadline was missed, and Host
+will raise the NV_PPBDMA_INTR_0_ACQUIRE interrupt.
+
+ During execution of a CLEAR_FAULTED method, if the targeted channel has not
+reported FAULTED and NV_PFIFO_CLEAR_FAULTED_TIMEOUT_DETECTION is ENABLED, the
+value in NV_PFIFO_CLEAR_FAULTED_TIMEOUT_PERIOD is added to the current time from
+PTIMER to compute the time at which the CLEAR_FAULTED will time out. This
+timeout time is stored in NV_PPBDMA_ACQUIRE_DEADLINE_TIMESTAMP.
+ The CLEAR_FAULTED method will be retried approximately every microsecond
+while its containing channel is loaded and active on the PBDMA. When
+CLEAR_FAULTED is retried and its targeted FAULTED bit is still FALSE, the
+current time from PTIMER is compared against the ACQUIRE_DEADLINE_TIMESTAMP. If
+the 32 least-significant microseconds of the PTIMER time exceeds the TIMESTAMP
+in a circular 32-bit comparison, the deadline was missed, and Host will raise
+the NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR interrupt.
+
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_ACQUIRE_DEADLINE
+field of the RAMFC part of the channel's instance block.
+ The value of this register is maintained by hardware. Software typically
+does not access this register directly, unless is this is being done while
+debugging. Software can directly access this register without the risk of race
+conditions when the channel is loaded on a PBDMA unit and that PBDMA unit is
+stalled. While a channel is not loaded on a PBDMA unit, software can read from
+the NV_RAMFC_ACQUIRE_DEADLINE instance block field to access this information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_ACQUIRE_DEADLINE(i) (0x00040034+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_ACQUIRE_DEADLINE__SIZE_1 14 /* */
+
+#define NV_PPBDMA_ACQUIRE_DEADLINE_TIMESTAMP 31:0 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_DEADLINE_TIMESTAMP_ZERO 0x00000000 /* RW--V */
+
+
+ACQUIRE - Acquire Periods
+
+ The NV_UDMA_SEM_EXECUTE method may specify a semaphore acquire operation,
+which involves not continuing channel execution until a given semaphore has a
+particular value. If a semaphore acquire fails (polling the semaphore reveals
+it does not have the desired value), the PBDMA unit may either switch out to a
+different channel, or keep trying to acquire the semaphore; see the
+documentation for the NV_UDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG field. If the
+channel does not switch out and continues trying to acquire the semaphore, then
+the NV_PPBDMA_ACQUIRE_RETRY register controls how long to wait between attempts
+to acquire the semaphore.
+ The NV_PPBDMA_ACQUIRE_RETRY_MAN and RETRY_EXP fields specify the minimum
+number of internal-domain cycles that Host will wait before retrying a failed
+Semaphore Acquire operation. The wait period is MAN*2^EXP nvclk cycles.
+Increasing the period between acquire attempts will reduce the memory throughput
+consumed, but may increase the time between when the semaphore is released and
+when it is acquired.
+ The NV_PPBDMA_ACQUIRE_TIMEOUT_MAN and TIMEOUT_EXP fields specify the
+maximum number of 1024ns periods that a acquire attempt can fail before an
+acquire timeout interrupt is initiated. The acquire timeout period is
+1024*MAN*2^EXP ns. TIMEOUT_EN specifies whether acquire timeouts are enabled.
+The timeout period is limited to a maximum of 0x7FFF8000 so that
+NV_PPBDMA_ACQUIRE_DEADLINE can fit into a single 32-bit register.
+ This register is part of a channel's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_ACQUIRE field of the
+RAMFC part of the channel's instance block.
+ Typically, this register is initialized in NV_RAMFC_ACQUIRE when the
+channel is first created. Software typically does not access this register
+directly, unless this is being done while debugging. Software can directly
+access this register without the risk of race conditions when the channel is
+loaded on a PBDMA unit and that PBDMA unit is stalled. While a channel is not
+loaded on a PBDMA unit, software can read from the NV_RAMFC_ACQUIRE instance
+block field to access this information.
+ One of this type of register exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_ACQUIRE(i) (0x00040030+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_ACQUIRE__SIZE_1 14 /* */
+
+#define NV_PPBDMA_ACQUIRE_RETRY_MAN 6:0 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_RETRY_MAN_2 0x00000002 /* RW--V */
+#define NV_PPBDMA_ACQUIRE_RETRY_EXP 10:7 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_RETRY_EXP_2 0x00000002 /* RW--V */
+
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_EXP 14:11 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_EXP_MAX 0x0000000F /* RW--V */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_MAN 30:15 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_MAN_MAX 0x0000FFFF /* RW--V */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_EN 31:31 /* RW-UF */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_EN_DISABLE 0x00000000 /* RW--V */
+#define NV_PPBDMA_ACQUIRE_TIMEOUT_EN_ENABLE 0x00000001 /* RW--V */
+
+
+^L
+STATUS - PBDMA Unit Status Register
+
+ The NV_PPBDMA_STATUS register contains the status of a PBDMA unit (Pusher,
+Cache1, and Puller).
+ The NV_PPBDMA_STATUS_GPF field contains the status of the PBDMA unit's
+GP-Entry fetching. If this field is GPF_EMPTY, then GP_GET equals GP_PUT, so
+there are no more GP entries to be fetched. If this field is GPF_SUSPENDED,
+then GP-Entry fetching has been suspended (either by Host's Scheduler, by a
+stalling interrupt condition).
+If this field is GPF_BLOCKED, then the GP-Entry fetching is blocked from issuing new
+GP-entry fetch requests because Host's Latency Buffer will not accept them
+(either there is no space in Host's Latency Buffer to store the return data, or
+Host's FB-request Arbiter is not accepting requests from the Latency Buffer).
+Otherwise, this field is GPF_BUSY.
+ The NV_PPBDMA_STATUS_GPP field contains the status of the PBDMA unit's
+GP-Entry processing. If this field is GPP_EMPTY, then the PBDMA unit has no
+GP-Entry to process. If this field is GPP_SUSPENDED, then GP-Entry processing
+has been suspended (either by Host's Scheduler or by a stalling interrupt
+condition). If this field is GPP_BLOCKED, then GP-Entry processing is
+blocked from issuing new pushbuffer read requests because the Latency
+Buffer will not accept them. Otherwise, this field is GPP_BUSY.
+ The NV_PPBDMA_STATUS_PBP field contains the status of the PBDMA unit's
+pushbuffer data processing. If this field is PBP_EMPTY, then the PBDMA unit has
+no pushbuffer data to process. If this field is PBP_SUSPENDED, then
+pushbuffer's processing operations have been suspended (either by Host's
+Scheduler or a stalling interrupt condition). If this field is
+PBP_BLOCKED, then pushbuffer processing is blocked because Host's
+method FIFO is full. Otherwise, this field is PBP_BUSY.
+ The NV_PPBDMA_STATUS_MP field contains the status of a PBDMA unit's method
+processing. If this field is MP_EMPTY, then Host's method FIFO is empty. If
+this field is MP_SUSPENDED, then method processing has been suspended (either by
+Host's Scheduler, by a NV_UDMA_YIELD method,or by an inter-engine
+subchannel switch). If this field is MP_BLOCKED then method
+processing is blocked from making progress either because of a
+semaphore acquire, a FB flush, because Host's Crossbar is not accepting methods, or
+because Host's Semaphore Processor, or Run-List Processor is not accepting a
+request or notification. Otherwise, this field is MP_BUSY.
+
+
+ The NV_PPBDMA_STATUS_PBDMA field contains the state of the PBDMA unit as a
+whole. If this field is PBDMA_EMPTY, then all of the PBDMA unit's sub-blocks
+are reporting that they are empty. If this field is PBDMA_SUSPENDED, then all
+of the PBDMA unit's
+sub-blocks are reporting that they are suspended. If this field is
+PBDMA_BLOCKED, then all of the PBDMA unit's sub-blocks are reporting that they
+are blocked from making progress. Otherwise, this field is PBDMA_BUSY.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on Host's internal domain
+clock. This register is new for Fermi.
+ While NV_PPBDMA_CHANNEL_VALID is FALSE, no channel is present in
+the PBDMA, so, like other non-configuration NV_PPBDMA registers, while
+NV_PPBDMA_CHANNEL_VALID is FALSE, this register should be ignored.
+
+
+#define NV_PPBDMA_STATUS(i) (0x00040100+(i)*8192) /* R--4A */
+#define NV_PPBDMA_STATUS__SIZE_1 14 /* */
+
+#define NV_PPBDMA_STATUS_GPF 3:0 /* R-IUF */
+#define NV_PPBDMA_STATUS_GPF_EMPTY 0x00000000 /* R-I-V */
+#define NV_PPBDMA_STATUS_GPF_SUSPENDED 0x00000001 /* R---V */
+#define NV_PPBDMA_STATUS_GPF_BLOCKED 0x00000002 /* R---V */
+#define NV_PPBDMA_STATUS_GPF_BUSY 0x00000008 /* R---V */
+#define NV_PPBDMA_STATUS_GPP 7:4 /* R-IUF */
+#define NV_PPBDMA_STATUS_GPP_EMPTY 0x00000000 /* R-I-V */
+#define NV_PPBDMA_STATUS_GPP_SUSPENDED 0x00000001 /* R---V */
+#define NV_PPBDMA_STATUS_GPP_BLOCKED 0x00000002 /* R---V */
+#define NV_PPBDMA_STATUS_GPP_BUSY 0x00000008 /* R---V */
+#define NV_PPBDMA_STATUS_PBP 11:8 /* R-IUF */
+#define NV_PPBDMA_STATUS_PBP_EMPTY 0x00000000 /* R-I-V */
+#define NV_PPBDMA_STATUS_PBP_SUSPENDED 0x00000001 /* R---V */
+#define NV_PPBDMA_STATUS_PBP_BLOCKED 0x00000002 /* R---V */
+#define NV_PPBDMA_STATUS_PBP_BUSY 0x00000008 /* R---V */
+#define NV_PPBDMA_STATUS_MP 15:12 /* R-IUF */
+#define NV_PPBDMA_STATUS_MP_EMPTY 0x00000000 /* R-I-V */
+#define NV_PPBDMA_STATUS_MP_SUSPENDED 0x00000001 /* R---V */
+#define NV_PPBDMA_STATUS_MP_BLOCKED 0x00000002 /* R---V */
+#define NV_PPBDMA_STATUS_MP_BUSY 0x00000008 /* R---V */
+#define NV_PPBDMA_STATUS_PBDMA 31:28 /* R-IUF */
+#define NV_PPBDMA_STATUS_PBDMA_EMPTY 0x00000000 /* R-I-V */
+#define NV_PPBDMA_STATUS_PBDMA_SUSPENDED 0x00000001 /* R---V */
+#define NV_PPBDMA_STATUS_PBDMA_BLOCKED 0x00000002 /* R---V */
+#define NV_PPBDMA_STATUS_PBDMA_BUSY 0x00000008 /* R---V */
+
+
+
+CHANNEL - Channel Identifier
+
+ The NV_PPBDMA_CHANNEL register contains the channel number that is
+currently assigned to a PBDMA unit. If VALID_FALSE, then this PBDMA unit
+does not contain any valid state. After loading state from RAMFC, VALID
+is set to TRUE. After saving the state to RAMFC, or during the load of RAMFC,
+VALID is set to FALSE.
+ This information is maintained by Hardware. This register is available for
+debug purposes.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+#define NV_PPBDMA_CHANNEL(i) (0x00040120+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_CHANNEL__SIZE_1 14 /* */
+
+#define NV_PPBDMA_CHANNEL_CHID 11:0 /* */
+#define NV_PPBDMA_CHANNEL_CHID_HW 11:0 /* RWXUF */
+#define NV_PPBDMA_CHANNEL_VALID 13:13 /* RWIVF */
+#define NV_PPBDMA_CHANNEL_VALID_FALSE 0x00000000 /* RWI-V */
+#define NV_PPBDMA_CHANNEL_VALID_TRUE 0x00000001 /* RW--V */
+
+
+
+GP_SHADOW_0 and GP_SHADOW_1 - Last Received GP-Entry Header
+
+ The NV_PPBDMA_GP_SHADOW_* registers contain the last GP entry that was
+received by the PBDMA unit. This is the data at NV_PPBDMA_GP_GET-8. If the
+PBDMA unit is indicating an invalid GP entry (NV_PPBDMA_INTR_0_GPENTRY), then
+this register will contain that entry.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+#define NV_PPBDMA_GP_SHADOW_0(i) (0x00040110+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_SHADOW_0__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_SHADOW_0_VALUE 31:0 /* RWXUF */
+
+#define NV_PPBDMA_GP_SHADOW_1(i) (0x00040114+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_GP_SHADOW_1__SIZE_1 14 /* */
+
+#define NV_PPBDMA_GP_SHADOW_1_VALUE 31:0 /* RWXUF */
+
+
+HDR_SHADOW - Last fetched Pushbuffer-Entry Header
+
+ The NV_PPBDMA_HDR_SHADOW register contains the raw PB instruction
+corresponding to the information in NV_PPBDMA_PB_HEADER. If the PBDMA unit is
+indicating an invalid PB entry (NV_PPBDMA_INTR_0_PBENTRY), then this register
+will contain the raw data for that entry.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+#define NV_PPBDMA_HDR_SHADOW(i) (0x00040118+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_HDR_SHADOW__SIZE_1 14 /* */
+
+#define NV_PPBDMA_HDR_SHADOW_VALUE 31:0 /* RWXUF */
+
+
+
+MEM_OP_* [registers] - Memory-Operation Operand Backing Registers
+
+ The NV_PPBDMA_MEM_OP_* registers contain bits 95:0 of the operands
+to a memory management operation. Memory management operations are
+triggered by NV_UDMA_MEM_OP_D methods; see NV_UDMA_MEM_OP* below for the method
+documentation.
+ This register is part of a GPU context's state. On a switch, the value of
+these registers are saved to, and restored from, the NV_RAMFC_MEM_OP_A,
+NV_RAMFC_MEM_OP_B, and NV_RAMFC_MEM_OP_C fields of the RAMFC part of the GPU
+context's GPU-instance block.
+ Software uses NV_UDMA_MEM_OP_* methods to alter this information.
+Typically, software does not access this register directly. This register is
+available to software only for debug. Software should use this register only if
+the GPU context is assigned to a PBDMA unit and that PBDMA unit is stalled.
+While a GPU context's Host state is not contained within a PBDMA unit, software
+should use NV_RAMFC_MEM_OP_C to access this information.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. These registers were added
+and/or moved for Pascal (MEM_OP_A used to exist at offsets 400a0 + i*8192).
+
+
+
+#define NV_PPBDMA_MEM_OP_A(i) (0x00040004+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_MEM_OP_A__SIZE_1 14 /* */
+#define NV_PPBDMA_MEM_OP_A_DATA 31:0 /* RW-UF */
+#define NV_PPBDMA_MEM_OP_B(i) (0x00040064+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_MEM_OP_B__SIZE_1 14 /* */
+#define NV_PPBDMA_MEM_OP_B_DATA 31:0 /* RW-UF */
+#define NV_PPBDMA_MEM_OP_C(i) (0x000400a0+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_MEM_OP_C__SIZE_1 14 /* */
+#define NV_PPBDMA_MEM_OP_C_DATA 31:0 /* RW-UF */
+
+
+SIGNATURE - RAMFC Signature Register
+
+ This register contains a value that specifies which Host class ID software
+expects the hardware to support, and indicates if the RAMFC might be valid. It
+is intended for debug and as a runtime check that RM is exposing the proper Host
+class ID for the chip.
+ When the RAMFC part of a GPU context's instance block is restored into
+Host, if the HW field does not contain the class ID specified by
+HW_HOST_CLASS_ID or the value HW_VALID, then Host will freeze and initiate an
+NV_PPBDMA_INTR_*_SIGNATURE interrupt. Host's class ID can be queried at runtime
+from NV_PFIFO_CFG2_HOST_CLASS_ID; see dev_fifo.ref. Note the Host class is also
+known as "channel_gpfifo". HW_VALID (0xface) is meant to be used by RM to ease
+transitions between Host classes for new architectures. The HW field does not
+provide a direct check for Host methods sent by a given user mode driver;
+attempting to send methods from a mismatching Host class may or may not work
+depending on the method.
+ The SW field is for use by software. Host is not affected by the value.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_SIGNATURE field of
+the RAMFC part of the GPU context's GPU-instance block.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was added for
+Fermi.
+
+
+
+#define NV_PPBDMA_SIGNATURE(i) (0x00040010+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SIGNATURE__SIZE_1 14 /* */
+#define NV_PPBDMA_SIGNATURE_HW 15:0 /* RW-UF */
+#define NV_PPBDMA_SIGNATURE_HW_VALID 0x0000face /* RW--V */
+#define NV_PPBDMA_SIGNATURE_HW_HOST_CLASS_ID 50031 /* RW--V */
+#define NV_PPBDMA_SIGNATURE_SW 31:16 /* RW-UF */
+#define NV_PPBDMA_SIGNATURE_SW_ZERO 0x00000000 /* RW--V */
+
+
+USERD - Address of User-Driver Accessible State
+
+ A user driver is permitted access to some, but not all, of a GPU context's
+state (for example, GP_PUT). NV_PPBDMA_USERD contains the physical address of a
+block of memory that contains the state the user-driver may access. This block
+is NV_RAMUSERD_CHAN_SIZE-byte aligned. Please see the NV_RAMUSERD section of
+"dev_ram.ref" for a description of the user-driver accessible state.
+ TARGET - The aperture of the physical address space in which USERD resides.
+ ADDR - The low bits of the block-aligned (right shifted) USERD address.
+This field corresponds to the low 32 bits of the byte address with the low bits
+corresponding to its block alignment masked off.
+ HI_ADDR - The high bits of the USERD address. This field specifieds bits
+32+ of the USERD byte-aligned address.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_USERD and
+NV_RAMFC_USERD_HI fields of the RAMFC part of the GPU context's GPU-instance
+block.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was added for
+Fermi.
+
+
+#define NV_PPBDMA_USERD(i) (0x00040008+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_USERD__SIZE_1 14 /* */
+#define NV_PPBDMA_USERD_TARGET 1:0 /* RW-UF */
+#define NV_PPBDMA_USERD_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_PPBDMA_USERD_TARGET_VID_MEM_NVLINK_COHERENT 0x00000001 /* RW--V */
+#define NV_PPBDMA_USERD_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_PPBDMA_USERD_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+#define NV_PPBDMA_USERD_ADDR 31:9 /* RW-UF */
+#define NV_PPBDMA_USERD_ADDR_ZERO 0x00000000 /* RW--V */
+
+#define NV_PPBDMA_USERD_HI(i) (0x0004000c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_USERD_HI__SIZE_1 14 /* */
+#define NV_PPBDMA_USERD_HI_ADDR 7:0 /* RW-UF */
+#define NV_PPBDMA_USERD_HI_ADDR_ZERO 0x00000000 /* RW--V */
+
+
+CONFIG - Miscellaneous Configuration Register
+
+ The CONFIG register is used to configure miscellaneous functions of a PBDMA on a
+per-channel basis. Software can configure these bits via the corresponding
+NV_RAMFC_CONFIG dword in each channel's RAMFC.
+ The L2_EVICT field controls the l2_class field for memory requests from a PBDMA unit.
+ The CE_SPLIT field controls Host taking large copies and splitting them into smaller
+copies to allow fast Copy Engine (CE) switching. If the field value is ENABLE, Host will analyze
+each copy command to determine if the copy should be split into smaller copies, and may
+modify the commands sent to the CE.
+
+
+If the field value is DISABLE, Host will not modify the copy commands sent to the CE.
+If the field is written from ENABLE to DISABLE while Host is in the middle of splitting a copy,
+Host will continue splitting the current copy until the whole copy has been split. Future
+copies, however, will not be split while the field remains set to DISABLE.
+ The THROTTLE_MODE field controls how much work Host sends to the CE. The
+goal is to send enough work to keep the Copy Engine busy while Host switches
+away to another channel to check on a semaphore, while at the same time
+maintaining the CE preemption latency below 10 microseconds. When the field is
+set to THROTTLE, Host will limit the number of copies it sends to the CE. This
+is legacy behavior and is needed on PCIE GEN3 systems. Setting the field to
+NO_THROTTLE will prevent Host from limiting the amount of work that Host sends
+to the CE. NVLINK2 and PCIE GEN4_LITE systems should have the field set to
+NO_THROTTLE.
+Note: Because this is a static setting, if a system slowdown occurs and the link
+is downgraded, preemption latency may exceed 10 microseconds.
+ The AUTH_LEVEL field specifies the authorization level of the channel.
+When AUTH_LEVEL is NON_PRIVILEGED, the channel will not be able to execute
+privileged operations via Host methods on its pushbuffer. Any attempt to do so
+will result in the NV_PPBDMA_INTR_*_METHOD interrupt being raised. When
+AUTH_LEVEL is PRIVILEGED, the channel will be able to execute all methods.
+ The USERD_WRITEBACK field controls whether USERD will be written back to
+memory. Regardless of the setting here, USERD is always written back to memory
+when the channel switches off of the PBDMA. When USERD_WRITEBACK is ENABLE,
+USERD will also be written back to memory whenever the PBDMA falls idle or the
+writeback timer configured via NV_PFIFO_USERD_WRITEBACK_TIMER expires. When the
+field value is DISABLE, the writeback only occurs on channel save. Note GP_PUT
+does not get written back to memory because it is written by software;
+otherwise, GP_PUT updates could be lost on writeback.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to, and restored from, the NV_RAMFC_CONFIG field of the RAMFC
+part of the GPU context's GPU-instance block.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock. This register was added for
+Fermi.
+
+#define NV_PPBDMA_CONFIG(i) (0x000400f4+(i)*8192) /* R--4A */
+#define NV_PPBDMA_CONFIG__SIZE_1 14 /* */
+
+
+#define NV_PPBDMA_CONFIG_L2_EVICT 1:0 /* R--VF */
+#define NV_PPBDMA_CONFIG_L2_EVICT_FIRST 0x00000000 /* R---V */
+#define NV_PPBDMA_CONFIG_L2_EVICT_NORMAL 0x00000001 /* R---V */
+
+
+#define NV_PPBDMA_CONFIG_CE_SPLIT 4:4 /* R--VF */
+#define NV_PPBDMA_CONFIG_CE_SPLIT_ENABLE 0x00000000 /* R---V */
+#define NV_PPBDMA_CONFIG_CE_SPLIT_DISABLE 0x00000001 /* R---V */
+#define NV_PPBDMA_CONFIG_CE_THROTTLE_MODE 5:5 /* R--VF */
+#define NV_PPBDMA_CONFIG_CE_THROTTLE_MODE_THROTTLE 0x00000000 /* R---V */
+#define NV_PPBDMA_CONFIG_CE_THROTTLE_MODE_NO_THROTTLE 0x00000001 /* R---V */
+#define NV_PPBDMA_CONFIG_AUTH_LEVEL 8:8 /* R--VF */
+#define NV_PPBDMA_CONFIG_AUTH_LEVEL_NON_PRIVILEGED 0x00000000 /* R---V */
+#define NV_PPBDMA_CONFIG_AUTH_LEVEL_PRIVILEGED 0x00000001 /* R---V */
+#define NV_PPBDMA_CONFIG_USERD_WRITEBACK 12:12 /* R--VF */
+#define NV_PPBDMA_CONFIG_USERD_WRITEBACK_DISABLE 0x00000000 /* R---V */
+#define NV_PPBDMA_CONFIG_USERD_WRITEBACK_ENABLE 0x00000001 /* R---V */
+
+
+ After a channel switch, the first method Host will send to the graphics or
+copy engine is a NV_PMETHOD_SET_CHANNEL_INFO method. The lower 16 bits of the
+payload of this method (defined in internal_methods.ref) will consist of the
+lower 16 bit value from this register. The upper 16 bits of the payload will
+be populated by Host with the channel ID.
+ The lower 16 bits of the value of this method is expected to be set in
+RAMFC by writing 32 bits to the offset specified as NV_RAMFC_SET_CHANNEL_INFO
+at channel allocation. When generating the method, Host will ignore the upper
+16 bits of the register value and populate the upper 16 bits of the method
+payload with the channel ID. The register value should only change if the
+channel is preempted and not loaded on a PBDMA.
+ The VEID field is used to specify the Virtual Engine ID (VEID) for the
+channel. A VEID is a collection of independent compute or graphics state which
+shares execution resources and a context image. Each channel in a TSG can be
+for a different VEID, any channels sharing a VEID will share WFI behavior.
+ The RESERVED field is reserved for Host and any value written in these
+upper 16 bits by SW is ignored by Host when generating the internal method
+NV_PMETHOD_SET_CHANNEL_INFO.
+ The SET_CHANNEL_INFO data should be set in RAMFC via the
+NV_RAMFC_SET_CHANNEL_INFO entry rather than through this register.
+ This register is part of a GPU context's state. On a switch, the value of
+this register is saved to and restored from the NV_RAMFC_SET_CHANNEL_INFO
+field of the RAMFC part of the GPU context's GPU-instance block.
+ One of these registers exists for each of Host's PBDMA units. This
+register runs on Host's internal domain clock.
+
+
+
+#define NV_PPBDMA_SET_CHANNEL_INFO(i) (0x000400fc+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_SET_CHANNEL_INFO__SIZE_1 14 /* */
+
+#define NV_PPBDMA_SET_CHANNEL_INFO_VALUE 31:0 /* RW--F */
+
+#define NV_PPBDMA_SET_CHANNEL_INFO_SCG_TYPE 0:0 /* */
+#define NV_PPBDMA_SET_CHANNEL_INFO_SCG_TYPE_GRAPHICS_COMPUTE0 0x00000000 /* */
+#define NV_PPBDMA_SET_CHANNEL_INFO_SCG_TYPE_COMPUTE1 0x00000001 /* */
+
+#define NV_PPBDMA_SET_CHANNEL_INFO_VEID ((6-1)+8):8 /* */
+
+#define NV_PPBDMA_SET_CHANNEL_INFO_RESERVED 31:16 /* */
+HCI_CTRL - Misc Additional HCE State
+
+ HCE_CTRL is used for misc. HCE state that needs to be channel swapped
+in addition to the normal CE CLASS state.
+Some of the state bits are part of the MP/SP blocks' interactions with the
+HCE Handling logic.
+ SP_AWAITS_HCEH indicates that the SP block is waiting for HCEH to finish
+processing an HCE trigger method.
+ HCE_RENDER_DISABLED indicates that CE class rendering has been turned off.
+ HCE_SUBCHSW indicates that methods have been sent to HCE, and thus GR
+will need to flush its caches when the next GR method in this channel
+flows down to GR (indicated by interface bit).
+ HCE_PRIV_MODE indicates that physical launchDMA copies are allowed.
+ NOP_RCVD indicates that HCE logic has decoded a NOP method, and will
+send the NOP to CE when permitted.(see launch_dma_rcvd description)
+ LAUNCH_DMA_RCVD indicates that the HCE logic has decoded a launchdma
+method from MP, and it will be sent to CE when CE has returned enough
+credits, and other criteria are met.
+ PM_TRIGGER_RCVD indicates that HCE logic has decoded a pm_trigger method
+and wants to send it to CE.
+ SET_RENDER_ENABLE_C_RCVD indicates that HCE logic has decoded a
+set_render_enable method, and is in the process of updating the render enable
+state for CE. Note, this is not strictly necessary as channel state, but it
+is useful for debug while the channel is loaded.
+
+
+
+
+#define NV_PPBDMA_HCE_CTRL(i) (0x000400e4+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_HCE_CTRL__SIZE_1 14 /* */
+#define NV_PPBDMA_HCE_CTRL_SP_AWAITS_HCEH 0:0 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_SP_AWAITS_HCEH_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_SP_AWAITS_HCEH_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_RENDER_DISABLED 2:2 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_HCE_RENDER_DISABLED_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_RENDER_DISABLED_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_SUBCHSW 4:4 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_HCE_SUBCHSW_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_SUBCHSW_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_PRIV_MODE 5:5 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_HCE_PRIV_MODE_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_HCE_PRIV_MODE_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_LAUNCH_DMA_RCVD 16:16 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_LAUNCH_DMA_RCVD_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_LAUNCH_DMA_RCVD_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_NOP_RCVD 17:17 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_NOP_RCVD_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_NOP_RCVD_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_RCVD 18:18 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_RCVD_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_RCVD_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_END_RCVD 19:19 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_END_RCVD_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_PM_TRIGGER_END_RCVD_YES 0x00000001 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_SET_RENDER_ENABLE_C_RCVD 20:20 /* RW-UF */
+#define NV_PPBDMA_HCE_CTRL_SET_RENDER_ENABLE_C_RCVD_NO 0x00000000 /* RW--V */
+#define NV_PPBDMA_HCE_CTRL_SET_RENDER_ENABLE_C_RCVD_YES 0x00000001 /* RW--V */
+TIMEOUT - Timeout Period Register
+
+ The NV_PPBDMA_TIMEOUT register contains a value used for detecting
+timeouts. The timeout value is in microsecond ticks.
+
+The timeouts that use this value are:
+GPfifo fetch timouts to FB for acks, reqs, rdats.
+PBDMA connection to LB.
+GPfifo processor timeouts to FB for acks, reqs, rdats.
+Method processor timeouts to FB for acks, reqs, rdats.
+The init value was changed to 64K us
+
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+
+#define NV_PPBDMA_TIMEOUT(i) (0x0004012c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_TIMEOUT__SIZE_1 14 /* */
+
+#define NV_PPBDMA_TIMEOUT_PERIOD 31:0 /* RWEUF */
+#define NV_PPBDMA_TIMEOUT_PERIOD_INIT 0x00010000 /* RWE-V */
+#define NV_PPBDMA_TIMEOUT_PERIOD_MAX 0xffffffff /* RW--V */
+
+6 - INTERRUPT REGISTERS
+=========================
+
+ The interrupt registers control the interrupts for the local devices.
+Interrupts are set by an event and are cleared by software.
+
+INTR_0 - PBDMA Unit Interrupt Register
+
+ The NV_PPBDMA_INTR_* registers are a PBDMA unit's interrupt register. The
+logical-OR of this register feeds into the NV_PFIFO_INTR_* register. If a field
+in this register is PENDING, then the corresponding interrupt condition has
+occurred, and software has not yet indicated to hardware that the exception has
+been handled. If a field is NON_PENDING then there are no exceptions of the
+corresponding type that have not been handled. Software writes RESET to one of
+these fields to indicate that a pending interrupt has been handled.
+ Software cannot set bits in this register. Attempting to write a bit to a
+one actually clears the interrupt source. In this way, software can clear
+individual bits in this register. When software recognizes an interrupt, and
+services it, it can then clear the individual source by writing that single bit
+in this register to RESET. Then it can read the register and see if all bits
+are clear. If not, it can service other interrupts in this reg. This is
+especially important since some of these bits are asynchronous to others in this
+register. While an interrupt service routine (ISR) is clearing an interrupt,
+other interrupts may occur.
+ Interrupts differ in severity. Some interrupts (like software interrupts)
+are expected in the normal operation of of the GPU, and do not indicate that any
+GPU context has been damaged, or hung. Some interrupts (like timeouts) do not
+indicate damage, but indicate that deadlock might have occured. Some interrupts
+indicate that an error has occured that might have damaged a GPU context, but
+has not damaged any of the others. Finally some interrupts indicate that any
+or all of the active GPU contexts have been damaged.
+ This register is for interrupts that cause a PBDMA unit to stall
+(non-stalling non-switching interrupts are stored on a per-channel bias) Bits in
+this register being set to PENDING will prevent the contents of the PBDMA unit
+from being switched out. Until software handles these interrupts and writes the
+bits to RESET, the PBDMA will be frozen.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on Host's internal domain
+clock. This register is new for Fermi.
+
+Interrupt field summary for INTR_0, INTR_EN_0, and INTR_STALL:
+
+
+
+#define NV_PPBDMA_INTR_0(i) (0x00040108+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_0__SIZE_1 14 /* */
+
+ The NV_PPBDMA_INTR_*_MEMREQ field indicates that a memory request was not
+accepted within NV_PPBDMA_TIMEOUT_PERIOD. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMREQ 0:0 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMREQ_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMREQ_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMREQ_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_MEMACK_TIMEOUT field indicates that a PBDMA unit
+has not received a MMU acknowledge within NV_PPBDMA_TIMEOUT_PERIOD. This is an
+unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMACK_TIMEOUT 1:1 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMACK_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMACK_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMACK_TIMEOUT_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_MEMACK_EXTRA field indicates thatr a PBDMA unit
+received more MMU acknowledges than it was expecting, or received an
+acknowledge with an unexpected subidentifer. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMACK_EXTRA 2:2 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMACK_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMACK_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMACK_EXTRA_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_MEMDAT_TIMEOUT field indicates that read data was
+not received within NV_PPBDMA_TIMEOUT_PERIOD. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMDAT_TIMEOUT 3:3 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMDAT_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMDAT_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMDAT_TIMEOUT_RESET 0x00000001 /* -W--C */
+
+ NV_PPBDMA_INTR_*_MEMDAT_EXTRA field indicates that a PBDMA unit received
+more data than it requested, or received read data with an unexpected
+sub-identifier. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMDAT_EXTRA 4:4 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMDAT_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMDAT_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMDAT_EXTRA_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_MEMFLUSH field indicates a PBDMA unit issued a FB
+flush request due to a NV_UDMA_FB_FLUSH method, and did not receive a flush
+acknowledge within NV_PPBDMA_TIMEOUT_PERIOD. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMFLUSH 5:5 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMFLUSH_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMFLUSH_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMFLUSH_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_MEM_OP field indicates that a PBDMA unit issued a
+memory request due to a NV_UDMA_MEM_OP_D method, and did not receive an
+acknowledge within NV_PPBDMA_TIMEOUT_PERIOD. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_MEMOP 6:6 /* RWIUF */
+#define NV_PPBDMA_INTR_0_MEMOP_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_MEMOP_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_MEMOP_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_LBCONNECT field indicates that a request to connect to
+a Latency Buffer was not acknowledged within NV_PPBDMA_TIMEOUT_PERIOD. This
+is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_LBCONNECT 7:7 /* RWIUF */
+#define NV_PPBDMA_INTR_0_LBCONNECT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_LBCONNECT_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_LBCONNECT_RESET 0x00000001 /* -W--C */
+
+
+ The NV_PPBDMA_INTR_*_LBACK_TIMEOUT field indicates that a PBDMA unit did
+not receive an acknowledge to a memory request within NV_PPBDMA_TIMEOUT_PERIOD.
+This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_LBACK_TIMEOUT 9:9 /* RWIUF */
+#define NV_PPBDMA_INTR_0_LBACK_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_LBACK_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_LBACK_TIMEOUT_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_LBACK_EXTRA field indicates that a PBDMA received
+more acknowledges from the Latency Buffer than it was expected, or that it
+received more acknowledges than it was expecting. This is an unrecoverable
+error.
+
+#define NV_PPBDMA_INTR_0_LBACK_EXTRA 10:10 /* RWIUF */
+#define NV_PPBDMA_INTR_0_LBACK_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_LBACK_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_LBACK_EXTRA_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_0_LBDAT_TIMEOUT field indicates that a PBDMA has not
+received read data for a request within NV_PPBDMA_TIMEOUT_PERIOD. This is an
+unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_LBDAT_TIMEOUT 11:11 /* RWIUF */
+#define NV_PPBDMA_INTR_0_LBDAT_TIMEOUT_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_LBDAT_TIMEOUT_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_LBDAT_TIMEOUT_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_LBDAT_EXTRA field indicates that a PBDMA receive
+more data from the Latency Buffer than expected, or has received read data
+with an unexpected sub-identifier. This is an unrecoverable error.
+
+#define NV_PPBDMA_INTR_0_LBDAT_EXTRA 12:12 /* RWIUF */
+#define NV_PPBDMA_INTR_0_LBDAT_EXTRA_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_LBDAT_EXTRA_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_LBDAT_EXTRA_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_GPFIFO field indicates that a PBDMA unit encountered
+an invalid GPFIFO (circular buffer of GP-Entries). A GPFIFO that crosses the
+end of the memory address space (0xFFFFFFFFFF) is invalid. The invalid value
+will be in NV_PPBDMA_GP_BASE and NV_PPBDMA_GP_BASE_HI. Fixing this and clearing
+the interrupt will allow the PBDMA unit to continue. The error is limited to
+the channel.
+
+#define NV_PPBDMA_INTR_0_GPFIFO 13:13 /* RWIUF */
+#define NV_PPBDMA_INTR_0_GPFIFO_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_GPFIFO_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_GPFIFO_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_GPPTR field indicated that a PBDMA unit encountered
+invalid GP pointers (either NV_PPBDMA_GP_PUT, NV_PPBDMA_GP_FETCH, or
+NV_PPBDMA_GP_GET). These pointers are invalid if they are not between zero and
+one less than the size of the circular buffer that contains GP entries:
+1<<NV_PPBDMA_GP_BASE_HI_LIMIT2. Fixing the invalid pointer and clearing the
+interrupt will allow the PBDMA unit to continue. The error is limited to the
+channel.
+
+#define NV_PPBDMA_INTR_0_GPPTR 14:14 /* RWIUF */
+#define NV_PPBDMA_INTR_0_GPPTR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_GPPTR_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_GPPTR_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_GPENTRY field indicates that a PBDMA unit encountered
+an invalid GP entry. The invalid entry will be in NV_PPBDMA_GP_SHADOW_*.
+Invalid GP entries are treated like traps, they will set the interrupt and
+freeze the PBDMA, but the invalid entry is discarded. Once the interrupt is
+cleared, the PBDMA unit will simply continue with the next GP entry. The
+GP_CRC is not updated by the discarded entry. Important: Graceful interrupt
+recovery is only possible if a GP entry with a length of ZERO caused this
+interrupt. For NON-ZERO length GP entries, this interrupt is fatal. The error
+is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_GPENTRY 15:15 /* RWIUF */
+#define NV_PPBDMA_INTR_0_GPENTRY_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_GPENTRY_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_GPENTRY_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_GPCRC field indicates that the cyclic redundancy check
+value measured over GP entries did not match the expected value. This interrupt
+is for debug, and indicates that the memory subsystem returned corrupted data on
+previous GP fetches. The NV_PPBDMA_GP_CRC register is cleared independent of
+the comparison succeeding, so clearing the interrupt will continue as if the CRC
+had passed. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_GPCRC 16:16 /* RWIUF */
+#define NV_PPBDMA_INTR_0_GPCRC_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_GPCRC_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_GPCRC_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_PBPTR field indicates that a PBDMA unit encountered an
+invalid PB pointer. NV_PPBDMA_GET is invalid if it is not less than
+NV_PPBDMA_PUT. Fixing the invalid pointer and clearing the interrupt will allow
+the PBDMA unit to continue. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_PBPTR 17:17 /* RWIUF */
+#define NV_PPBDMA_INTR_0_PBPTR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_PBPTR_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_PBPTR_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_PBENTRY field indicates that a PBDMA unit has
+encountered an invalid PB entry. This can occur when Host expects the PB entry
+to be a PB instruction, and any of the following happen:
+
+ * The PB entry does not decode properly into a PB instruction.
+ * The decoded instruction is in an obsolete format or is otherwise not
+ valid (see "FIFO_DMA" in dev_ram.ref).
+ * The decoded instruction is either an incrementing method header or an
+ increment-once method header, and the header's COUNT field would cause
+ the method addresses for the generated method sequence to exceed the
+ maximum method address, thus the method addresses would wrap.
+
+ The expected recovery procedure for handling a PBENTRY interrupt is
+described below:
+
+ 1. In order to determine the cause of a PBENTRY interrupt while an error is
+ pending:
+ 1a. Examine the NV_PPBDMA_HDR_SHADOW register for proper encoding.
+ This register contains the raw PB entry that triggered the PBENTRY
+ interrupt. If its contents are not properly encoded then this was
+ the cause of the interrupt.
+ 1b. If the raw PB entry is properly encoded then the PB header is
+ invalid for some other reason. This means the PB entry was
+ decoded before the PBENTRY interrupt was triggered, and the
+ NV_PPBDMA_PB_HEADER register will contain the decoded PB entry.
+ 2. Regardless of the cause of the PBENTRY interrupt, one must update the
+ NV_PPBDMA_PB_HEADER register to contain a valid header.
+ 3. If the valid updated header is a PB method header, then the VALUE field
+ of the NV_PPBDMA_PB_COUNT register must also be updated to reflect the
+ number of subsequent PB entries to interpret as method data (note that
+ the other fields of PB_COUNT should be left alone; this requires a
+ read-modify-write of this register). If this value is incorrect, then
+ the pushbuffer decoding will become out of sync between headers and
+ data. Note that when decoding PB method headers normally, the HW sets
+ NV_PPBDMA_PB_COUNT_VALUE to the NV_FIFO_DMA_METHOD_COUNT field value of
+ the raw PB entry.
+ 4. For consistency, NV_PPBDMA_HDR_SHADOW should be fixed too, but that is
+ not required for proper HW operation (the HW ignores
+ NV_PPBDMA_HDR_SHADOW).
+ 5. Clear the PBENTRY interrupt after fixing the state to allow the PBDMA
+ unit to continue.
+
+ The PBENTRY error is limited to the channel. Note that while a PBENTRY
+interrupt is pending on a given channel, one cannot assume that any
+method/address pair generated from the preceding PB entries on that channel has
+executed yet (the PB entries themselves are processed in order, but this
+processing consists only executing PB control entries and generating the
+method/address pairs from the PB method headers and PB method data dwords; see
+dev_ram.ref for the difference between control entries and methods).
+
+#define NV_PPBDMA_INTR_0_PBENTRY 18:18 /* RWIUF */
+#define NV_PPBDMA_INTR_0_PBENTRY_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_PBENTRY_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_PBENTRY_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_PBCRC field indicates that the cyclic redundancy check
+value measured over a PB segment did not match the expected value. This
+interrupt is for debug, and indicates that the memory subsystem returned
+corrupted data on previous PB fetches. The NV_PPBDMA_PB_CRC register is cleared
+at the start of each new segment, independent of the comparison succeeding, so
+clearing the interrupt will continue as if the CRC had passed. The error is
+limited to the channel.
+
+#define NV_PPBDMA_INTR_0_PBCRC 19:19 /* RWIUF */
+#define NV_PPBDMA_INTR_0_PBCRC_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_PBCRC_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_PBCRC_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_CLEAR_FAULTED_ERROR field indicates that a PBDMA unit
+encountered a Host CLEAR_FAULTED method and the target FAULT bit for the target
+chid specified in the method payload was not set within the
+NV_PFIFO_CLEAR_FAULTED_TIMEOUT_PERIOD. This is intended to catch SW errors
+where a CLEAR_FAULT method targets the wrong channel or a channel that has
+already had its fault cleared. Please refer to the description of the
+NV_UDMA_CLEAR_FAULTED method in section 9 (HOST METHODS) for details.
+
+ When PENDING, the PBDMA is stalled and remains loaded on the channel. The
+address of the invalid method will be in NV_PPBDMA_METHOD0, and its data will be
+in NV_PPBDMA_DATA0. Fixing the invalid method in NV_PPBDMA_METHOD0 (or changing
+it to NV_UDMA_NOP) and clearing the interrupt will allow the PBDMA unit to
+continue. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR 20:20 /* RWIUF */
+#define NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_METHOD field indicates that a PBDMA unit encountered
+a method that could not be processed for one of the following reasons:
+ * The method is an internal method; that is, its address is in the
+ NV_PMETHOD range (see internal_methods.ref)
+ * The method address is not in the range of engine methods, but it is not a
+ valid Host method either
+ * The method is NV_UDMA_ILLEGAL
+ * The method attempted to perform a privileged operation, but
+ NV_PPBDMA_CONFIG_AUTH_LEVEL is NON_PRIVILEGED
+ * An NV_UDMA_YIELD method with an unknown OP is encountered
+ * A Host SYNCPOINT method is encountered. Syncpoints are only supported on
+ Tegra parts.
+
+ The address of the invalid method will be in NV_PPBDMA_METHOD0, and its
+data will be in NV_PPBDMA_DATA0. Fixing the invalid method in
+NV_PPBDMA_METHOD0 (or changing it to NV_UDMA_NOP) and clearing the interrupt
+will allow the PBDMA unit to continue. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_METHOD 21:21 /* RWIUF */
+#define NV_PPBDMA_INTR_0_METHOD_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_METHOD_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_METHOD_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_METHODCRC field indicates that the cyclic redundancy
+check value measured over methods sent to Host's crossbar did not match the
+expected value. This interrupt is for debug, and indicates that the PBDMA unit
+sent incorrect methods to the engine. There is no use continuing with the
+corrupted method stream, but for debug purposes execution may continue if the
+crc from the NV_UDMA_CRC_CHECK method (from NV_PPBDMA_DATA0) is copied over the
+NV_PPBDMA_METHOD_CRC register before clearing the interrupt. The error is
+limited to the channel.
+
+#define NV_PPBDMA_INTR_0_METHODCRC 22:22 /* RWIUF */
+#define NV_PPBDMA_INTR_0_METHODCRC_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_METHODCRC_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_METHODCRC_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_DEVICE field indicates a SW-class method. More
+specifically, it indicates that the method's subchannel specified a SW engine or
+a non-existent engine. Note the subchannel-to-engine mapping is fixed, and that
+it is not possible to specify a non-existent engine--see NV_UDMA_OBJECT. The
+method information is in NV_PPBDMA_METHOD0 and NV_PPBDMA_DATA0. For a software
+method, METHOD0_SUBCH will be 5, 6, or 7. After handling the SW-class method, SW
+should clear the METHOD0_VALID field to FALSE or replace the method ADDR with
+NV_UDMA_NOP. Consecutive SW-class methods in the method FIFO
+(NV_PPBDMA_{METHOD,DATA}{1,2,3}) may also be handled and replaced with NOPs or
+their VALID fields cleared up to the first non-SW method.
+
+#define NV_PPBDMA_INTR_0_DEVICE 23:23 /* RWIUF */
+#define NV_PPBDMA_INTR_0_DEVICE_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_DEVICE_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_DEVICE_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_ENG_RESET field indicates that an engine was reset
+while the PBDMA unit was processing a channel from a runlist which serves the
+engine. The interrupt is not triggered if PBDMA is in halted state while the
+engine is reset. However, If the engine remains in reset, when the PBDMA continues,
+the interrupt will be fired. This is a potentially fatal condition for the
+channel which was loaded on the PBDMA while the engine was reset. The PBDMA which
+encountered the interrupt will stall and prevent the channel which was loaded at
+the time the interrupt fired from being swapped out until the interrupt is cleared.
+To unblock the PBDMA, SW needs to do the following:
+
+ 1. Disable all the channels in the TSG
+ 2. Initiate a preempt (but do not poll for completion yet)
+ 3. Clear the interrupt bit
+ 4. Poll for preempt completion
+ 5. Tear down the context
+
+Note the TSG ID can be obtained by reading NV_PFIFO_PBDMA_STATUS_ID;
+see dev_fifo.ref. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_ENG_RESET 24:24 /* RWIUF */
+#define NV_PPBDMA_INTR_0_ENG_RESET_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_ENG_RESET_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_ENG_RESET_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_SEMAPHORE field indicates that a PBDMA unit has
+encountered a NV_UDMA_SEM_EXECUTE method whose data field (which indicates the
+details of the semaphore operation) is invalid. The method will be in
+NV_PPBDMA_METHOD0. The method data is in both NV_PPBDMA_DATA0 and
+NV_UDMA_SEM_EXECUTE. Any changes to NV_PPBDMA_METHOD0 or NV_PPBDMA_DATA0 should
+also be reflected consistently in NV_PPBDMA_SEM_EXECUTE. After fixing the
+method and/or data, clearing the interrupt will allow the PBDMA unit to
+continue. The error is limited to the channel.
+
+#define NV_PPBDMA_INTR_0_SEMAPHORE 25:25 /* RWIUF */
+#define NV_PPBDMA_INTR_0_SEMAPHORE_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_SEMAPHORE_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_SEMAPHORE_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_ACQUIRE field indicates that a semaphore acquire did
+not occur within the maximum period (as specified by the
+NV_PPBDMA_ACQUIRE_TIMEOUT register). The method will be in NV_PPBDMA_METHOD0.
+The method data is in both NV_PPBDMA_DATA0 and NV_PPBDMA_SEM_EXECUTE. Any
+changes to NV_PPBDMA_METHOD0 or NV_PPBDMA_DATA0 should also be reflected
+consistently in NV_PPBDMA_SEM_EXECUTE. Because the timeout counter is not
+automatically reset after an acquire failure, clearing the interrupt may result
+in a subsequent ACQUIRE timeout on the next acquire attempt. To prevent this,
+one should choose one of the following cleanup options before clearing the
+interrupt:
+1 - Preempt/unbind the channel
+2 - NOP the semaphore method
+3 - Release the semaphore
+4 - Clear the SEM_EXECUTE_ACQUIRE_FAIL bit to restart the counter.
+After fixing the method and/or data, clearing the
+interrupt will allow the PBDMA unit to continue. The error is limited to the
+channel.
+
+#define NV_PPBDMA_INTR_0_ACQUIRE 26:26 /* RWIUF */
+#define NV_PPBDMA_INTR_0_ACQUIRE_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_ACQUIRE_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_ACQUIRE_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_PRI field indicates that a PRI write access to a
+register occurred while a valid channel is loaded on PBDMA and the PBDMA is not
+IDLE or frozen for an interrupt. This interrupt will occur only if the PRI access
+will cause the PBDMA unit to operate incorrectly. Clearing the interrupt will
+allow the PBDMA unit to continue, however the PBDMA state will be corrupted.
+Depending on the register, this may be an unrecoverable error, or may be limited
+to the channel.
+
+#define NV_PPBDMA_INTR_0_PRI 27:27 /* RWIUF */
+#define NV_PPBDMA_INTR_0_PRI_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_PRI_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_PRI_RESET 0x00000001 /* -W--C */
+
+
+
+
+ The NV_PPBDMA_INTR_*_PBSEG field indicates that a PBDMA unit encountered a
+PB compressed method sequence that begins in a non-conditionally fetched PB
+segment and ends in a conditionally-fetched PB segment. That is, the first valid
+PB entry of a conditionally-fetched PB segment is interpreted as method data.
+This is likely to corrupt the pushbuffer data stream. Clearing the interrupt will
+allow the PBDMA unit to continue. The error is limited to the channel.
+
+Note: Although the PBDMA will continue after the interrupt is cleared, it might
+have a faulty method stream after this interrupt. This is generally fatal to the
+context and an RC will be needed.
+
+#define NV_PPBDMA_INTR_0_PBSEG 30:30 /* RWIUF */
+#define NV_PPBDMA_INTR_0_PBSEG_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_PBSEG_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_PBSEG_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_SIGNATURE field indicates that an invalid Host class
+ID was specified in NV_RAMFC_SIGNATURE when a channel's RAMFC was loaded. This
+usually indicates SW is attempting to use the wrong Host class for the current
+chip. The invalid value will be in NV_PPBDMA_SIGNATURE_HW. Fixing the invalid
+value and clearing the interrupt will allow the PBDMA unit to continue. The
+error is limited to the channel. Note that attempting to use methods from a
+mismatched Host class may or may not work depending on the method, but will not
+necessarily cause an interrupt.
+
+#define NV_PPBDMA_INTR_0_SIGNATURE 31:31 /* RWIUF */
+#define NV_PPBDMA_INTR_0_SIGNATURE_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_0_SIGNATURE_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_0_SIGNATURE_RESET 0x00000001 /* -W--C */
+
+
+INTR_1 is a continuation of INTR_0.
+Added for Kepler to handle HCE interrupts.
+Interrupts related to HCE occupy the least significant bits of the register and
+any new HCE interrupt should be added to the available least significant bit.
+New non-HCE PBDMA interrupts should be added the available most significant bit
+of the register. If a new class of interrupts need to be added, they can be
+added from bit 8 or 16.
+
+
+#define NV_PPBDMA_INTR_1(i) (0x00040148+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_1__SIZE_1 14 /* */
+
+ The INTR_*_HCE_ILLEGAL_OP field indicates that a PBDMA encountered
+a render enable method with an invalid render enable operation.
+The sent invalid op can be found in the pbdma's NV_PPBDMA_HCE_DBG1_MTHD_DATA
+register.
+
+#define NV_PPBDMA_INTR_1_HCE_RE_ILLEGAL_OP 0:0 /* RWIUF */
+#define NV_PPBDMA_INTR_1_HCE_RE_ILLEGAL_OP_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_HCE_RE_ILLEGAL_OP_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_HCE_RE_ILLEGAL_OP_RESET 0x00000001 /* -W--C */
+
+ The INTR_*_HCE_RE_ALIGNB field indicates that a PBDMA unit encountered
+a Set_Render_Enable_C Copy Engine Class method while the Render_Enable_B value
+was not aligned.
+This is effectively a CE Launch Check.
+This error is limited to the channel.
+
+#define NV_PPBDMA_INTR_1_HCE_RE_ALIGNB 1:1 /* RWIUF */
+#define NV_PPBDMA_INTR_1_HCE_RE_ALIGNB_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_HCE_RE_ALIGNB_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_HCE_RE_ALIGNB_RESET 0x00000001 /* -W--C */
+
+ The INTR_*_HCE_PRIV field indicates that a PBDMA unit encountered
+a LaunchDMA Copy Engine Class method setup to access the physical memory aperature,
+but the PRIV_MODE bit in the RAMFC for the loaded channel was NOT set.
+This is effectively a CE Launch Check.
+This error is limited to the channel.
+
+#define NV_PPBDMA_INTR_1_HCE_PRIV 2:2 /* RWIUF */
+#define NV_PPBDMA_INTR_1_HCE_PRIV_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_HCE_PRIV_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_HCE_PRIV_RESET 0x00000001 /* -W--C */
+
+ The INTR_*_HCE_ILLEGAL_MTHD field indicates that a PBDMA encountered
+a method bound for CE that is not decoded in the CE CLASS.
+The method and its data that triggered the error can be found in the pbdma's
+NV_PPBDMA_HCE_DBG0_MTHD_ADDR and NV_PPBDMA_HCE_DBG1_MTHD_DATA registers.
+
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_MTHD 3:3 /* RWIUF */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_MTHD_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_MTHD_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_MTHD_RESET 0x00000001 /* -W--C */
+
+ The INTR_*_HCE_ILLEGAL_CLASS field indicates that a PBDMA encountered
+a SetObject method that specifies an unrecognized class ID.
+The sent illegal class ID can be found in NV_PPBDMA_HCE_DBG1_MTHD_DATA.
+
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_CLASS 4:4 /* RWIUF */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_CLASS_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_CLASS_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_HCE_ILLEGAL_CLASS_RESET 0x00000001 /* -W--C */
+
+ The NV_PPBDMA_INTR_*_CTXNOTVALID field indicates error conditions related
+to the NV_PPBDMA_TARGET_*_CTX_VALID fields for a channel. The following
+conditions trigger the interrupt:
+
+ * The PBDMA unit encountered an engine method or SetObject but the
+ corresponding CTX_VALID bit for the targeted engine is FALSE, or
+ * At channel start/resume, all preemptable engines have CTX_VALID FALSE but:
+ - CTX_RELOAD is set in NV_PCCSR_CHANNEL_STATUS,
+ - NV_PPBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT is TRUE, or
+ - NV_PPBDMA_TARGET_NEEDS_HOST_TSG_EVENT is TRUE
+
+The PBDMA which encountered the interrupt will stall and prevent the channel
+which was loaded at the time the interrupt fired from being swapped out until
+the interrupt is cleared. The field is left NOT_PENDING and the interrupt is
+not raised if the PBDMA is currently halted. This allows SW to unblock the
+PBDMA and recover via the below procedure. SW may read METHOD0, CHANNEL_STATUS,
+and TARGET to determine whether the interrupt was due to an engine method,
+CTX_RELOAD, SHOULD_SEND_HOST_TSG_EVENT, or NEEDS_HOST_TSG_EVENT. If METHOD0
+VALID is TRUE, lazy context creation can be used or the TSG may be destroyed.
+If METHOD0 VALID is FALSE, the error is likely a bug in SW, and the TSG
+will have to be destroyed.
+
+Recovery procedure:
+
+ 1. Determine which CHID and TSG hit the interrupt, and read NV_PPBDMA_METHOD0,
+ NV_PCCSR_CHANNEL_STATUS, and NV_PPBDMA_TARGET to find out whether the
+ interrupt was due to an engine method or not.
+ 2. Disable all channels in the containing TSG by writing ENABLE_CLR to TRUE
+ in their channel RAM entries in NV_PCCSR_CHANNEL (see dev_fifo.ref).
+ 3. Initiate a preempt of the TSG via NV_PFIFO_PREEMPT or
+ NV_PFIFO_RUNLIST_PREEMPT. This must be done prior to clearing the
+ interrupt or it will just fire again.
+ 4. Set the channel's relevant NV_PPBDMA_TARGET_*_CTX_VALID bit to TRUE
+ by writing the PRI register directly. Even though no context is valid,
+ this is required to allow the interrupt to be cleared. This must be
+ done prior to the interrupt even if SW intends to create a context on
+ the fly via step 7c.
+ 5. Clear the interrupt by writing CTXNOTVALID_RESET to NV_PPBDMA_INTR_1.
+ 6. Poll for the preempt to complete. Note: If other interrupts have fired,
+ those must be cleared as well before the preempt will complete.
+ The preempt must finish before any channel or context is torn down.
+ 7. Destroy the TSG, or dynamically allocate the engine context as follows:
+ 7a. Allocate an engine context
+ 7b. Add its pointer to NV_RAMIN and set up NV_PRAMIN (dev_ram.ref)
+ for all channels in the TSG
+ 7c. Set the relevant CTX_VALID to TRUE in NV_RAMFC_TARGET for all
+ channels in the TSG
+ 7d. Re-enable the channels by writing ENABLE_SET_TRUE to each
+ NV_PCCSR_CHANNEL in the TSG
+
+Alternatively, SCHED_DISABLE can be used in lieu of disabling the TSG channels.
+The error is limited to the channel.
+ Warning: If NV_PPBDMA_INTR_STALL_1_CTXNOTVALID is DISABLED, this error is
+non-recoverable.
+
+#define NV_PPBDMA_INTR_1_CTXNOTVALID 31:31 /* RWIUF */
+#define NV_PPBDMA_INTR_1_CTXNOTVALID_NOT_PENDING 0x00000000 /* R-I-V */
+#define NV_PPBDMA_INTR_1_CTXNOTVALID_PENDING 0x00000001 /* R---V */
+#define NV_PPBDMA_INTR_1_CTXNOTVALID_RESET 0x00000001 /* -W--C */
+
+
+
+INTR_EN_0 - PBDMA-Unit Interrupt Enable Register
+
+ The NV_PPBDMA_INTR_EN_0 register controls which PBDMA interrupt conditions
+are enabled. If a field is DISABLED, then the corresponding interrupt in
+NV_PPBDMA_INTR_0 is disabled. If a field is ENABLED, then the corresponding
+interrupt in NV_PPBDMA_INTR_0 is enabled.
+ The masking of interrupts by this register is done after the
+NV_PPBDMA_INTR_0 register. This register stops interrupts from being reported,
+it does not stop bits in the NV_PPBDMA_INTR_0 from being set.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+#define NV_PPBDMA_INTR_EN_0(i) (0x0004010c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_EN_0__SIZE_1 14 /* */
+
+#define NV_PPBDMA_INTR_EN_0_MEMREQ 0:0 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMREQ_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMREQ_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMACK_TIMEOUT 1:1 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMACK_TIMEOUT_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMACK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMACK_EXTRA 2:2 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMACK_EXTRA_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMACK_EXTRA_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_TIMEOUT 3:3 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_TIMEOUT_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_EXTRA 4:4 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_EXTRA_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMDAT_EXTRA_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMFLUSH 5:5 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMFLUSH_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMFLUSH_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_MEMOP 6:6 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_MEMOP_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_MEMOP_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_LBCONNECT 7:7 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_LBCONNECT_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_LBCONNECT_ENABLED 0x00000001 /* RW--V */
+
+
+#define NV_PPBDMA_INTR_EN_0_LBACK_TIMEOUT 9:9 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_LBACK_TIMEOUT_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_LBACK_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_LBACK_EXTRA 10:10 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_LBACK_EXTRA_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_LBACK_EXTRA_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_LBDAT_TIMEOUT 11:11 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_LBDAT_TIMEOUT_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_LBDAT_TIMEOUT_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_LBDAT_EXTRA 12:12 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_LBDAT_EXTRA_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_LBDAT_EXTRA_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_GPFIFO 13:13 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_GPFIFO_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_GPFIFO_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_GPPTR 14:14 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_GPPTR_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_GPPTR_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_GPENTRY 15:15 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_GPENTRY_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_GPENTRY_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_GPCRC 16:16 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_GPCRC_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_GPCRC_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_PBPTR 17:17 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_PBPTR_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_PBPTR_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_PBENTRY 18:18 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_PBENTRY_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_PBENTRY_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_PBCRC 19:19 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_PBCRC_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_PBCRC_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_CLEAR_FAULTED_ERROR 20:20 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_CLEAR_FAULTED_ERROR_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_CLEAR_FAULTED_ERROR_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_METHOD 21:21 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_METHOD_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_METHOD_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_METHODCRC 22:22 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_METHODCRC_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_METHODCRC_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_DEVICE 23:23 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_DEVICE_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_DEVICE_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_ENG_RESET 24:24 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_ENG_RESET_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_ENG_RESET_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_SEMAPHORE 25:25 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_SEMAPHORE_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_SEMAPHORE_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_ACQUIRE 26:26 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_ACQUIRE_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_ACQUIRE_ENABLED 0x00000001 /* RW--V */
+#define NV_PPBDMA_INTR_EN_0_PRI 27:27 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_PRI_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_PRI_ENABLED 0x00000001 /* RW--V */
+
+
+#define NV_PPBDMA_INTR_EN_0_PBSEG 30:30 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_PBSEG_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_PBSEG_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_0_SIGNATURE 31:31 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_0_SIGNATURE_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_0_SIGNATURE_ENABLED 0x00000001 /* RW--V */
+
+INTR_EN_1 is a continuation of INTR_EN_0.
+Added for Kepler to handle HCE interrupts.
+
+
+#define NV_PPBDMA_INTR_EN_1(i) (0x0004014c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_EN_1__SIZE_1 14 /* */
+
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ILLEGAL_OP 0:0 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ILLEGAL_OP_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ILLEGAL_OP_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ALIGNB 1:1 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ALIGNB_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_HCE_RE_ALIGNB_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_1_HCE_PRIV 2:2 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_HCE_PRIV_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_HCE_PRIV_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_MTHD 3:3 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_MTHD_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_MTHD_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_CLASS 4:4 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_CLASS_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_HCE_ILLEGAL_CLASS_ENABLED 0x00000001 /* RW--V */
+
+#define NV_PPBDMA_INTR_EN_1_CTXNOTVALID 31:31 /* RWEUF */
+#define NV_PPBDMA_INTR_EN_1_CTXNOTVALID_DISABLED 0x00000000 /* RWE-V */
+#define NV_PPBDMA_INTR_EN_1_CTXNOTVALID_ENABLED 0x00000001 /* RW--V */
+
+
+
+INTR_STALL - PBDMA-Unit Interrupt Stall Control Register
+
+ The NV_PPBDMA_INTR_STALL register controls whether an interrupt causes the
+PBDMA unit to stop and stall. If an interrupt's field is STALL_*_ENABLED, then
+the interrupt causes the PBDMA to stall. If an interrupt's field is
+STALL_*_DISABLED then the interrupt does not cause the PBDMA unit to stall.
+ This register is intended for verification. In normal operation, the
+register should be left at the default value, meaning all interrupts cause the
+PBDMA unit to stall.
+ One of these registers exists for each of Host's PBDMA units. This
+register is not context switched. This register runs on the internal-domain
+clock.
+
+
+#define NV_PPBDMA_INTR_STALL(i) (0x0004013c+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_STALL__SIZE_1 14 /* */
+
+#define NV_PPBDMA_INTR_STALL_MEMREQ 0:0 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMREQ_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMREQ_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMACK_TIMEOUT 1:1 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMACK_TIMEOUT_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMACK_TIMEOUT_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMACK_EXTRA 2:2 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMACK_EXTRA_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMACK_EXTRA_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMDAT_TIMEOUT 3:3 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMDAT_TIMEOUT_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMDAT_TIMEOUT_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMDAT_EXTRA 4:4 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMDAT_EXTRA_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMDAT_EXTRA_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMFLUSH 5:5 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMFLUSH_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMFLUSH_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_MEMOP 6:6 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_MEMOP_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_MEMOP_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_LBCONNECT 7:7 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_LBCONNECT_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_LBCONNECT_ENABLED 0x00000001 /* RWE-V */
+
+
+#define NV_PPBDMA_INTR_STALL_LBACK_TIMEOUT 9:9 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_LBACK_TIMEOUT_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_LBACK_TIMEOUT_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_LBACK_EXTRA 10:10 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_LBACK_EXTRA_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_LBACK_EXTRA_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_LBDAT_TIMEOUT 11:11 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_LBDAT_TIMEOUT_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_LBDAT_TIMEOUT_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_LBDAT_EXTRA 12:12 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_LBDAT_EXTRA_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_LBDAT_EXTRA_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_GPFIFO 13:13 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_GPFIFO_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_GPFIFO_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_GPPTR 14:14 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_GPPTR_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_GPPTR_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_GPENTRY 15:15 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_GPENTRY_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_GPENTRY_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_GPCRC 16:16 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_GPCRC_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_GPCRC_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_PBPTR 17:17 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_PBPTR_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_PBPTR_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_PBENTRY 18:18 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_PBENTRY_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_PBENTRY_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_PBCRC 19:19 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_PBCRC_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_PBCRC_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_CLEAR_FAULTED_ERROR 20:20 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_CLEAR_FAULTED_ERROR_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_CLEAR_FAULTED_ERROR_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_METHOD 21:21 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_METHOD_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_METHOD_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_METHODCRC 22:22 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_METHODCRC_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_METHODCRC_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_DEVICE 23:23 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_DEVICE_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_DEVICE_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_ENG_RESET 24:24 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_ENG_RESET_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_ENG_RESET_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_SEMAPHORE 25:25 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_SEMAPHORE_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_SEMAPHORE_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_ACQUIRE 26:26 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_ACQUIRE_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_ACQUIRE_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_PRI 27:27 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_PRI_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_PRI_ENABLED 0x00000001 /* RWE-V */
+
+
+
+#define NV_PPBDMA_INTR_STALL_PBSEG 30:30 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_PBSEG_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_PBSEG_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_SIGNATURE 31:31 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_SIGNATURE_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_SIGNATURE_ENABLED 0x00000001 /* RWE-V */
+
+
+INTR_STALL_1 - PBDMA-Unit HCE Interrupt Stall Control Register
+
+ The NV_PPBDMA_INTR_STALL_1 register controls whether an interrupt causes
+the PBDMA unit to stop and stall on HCE interrupts. All HCE interrupts
+that are reported by the PBDMA are launch check interrupts and are immediately
+dropped when encountered. Host will latch the last interrupting method and data
+in HCE_DBG0 and HCE_DBG1. If stalling is ENABLED here, an interrupt will stall
+the pbdma regardless of whether the interrupt is enabled or not via INTR_EN_1.
+ Warning: Do not disable stalling for CTXNOTVALID. Doing so will cause
+undefined behavior if the interrupt condition occurs.
+
+
+#define NV_PPBDMA_INTR_STALL_1(i) (0x00040140+(i)*8192) /* RW-4A */
+#define NV_PPBDMA_INTR_STALL_1__SIZE_1 14 /* */
+
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ILLEGAL_OP 0:0 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ILLEGAL_OP_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ILLEGAL_OP_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ALIGNB 1:1 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ALIGNB_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_HCE_RE_ALIGNB_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_1_HCE_PRIV 2:2 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_HCE_PRIV_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_HCE_PRIV_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_MTHD 3:3 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_MTHD_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_MTHD_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_CLASS 4:4 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_CLASS_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_HCE_ILLEGAL_CLASS_ENABLED 0x00000001 /* RWE-V */
+
+#define NV_PPBDMA_INTR_STALL_1_CTXNOTVALID 31:31 /* RWEUF */
+#define NV_PPBDMA_INTR_STALL_1_CTXNOTVALID_DISABLED 0x00000000 /* RW--V */
+#define NV_PPBDMA_INTR_STALL_1_CTXNOTVALID_ENABLED 0x00000001 /* RWE-V */
+
+
+HCE_DBG0 - Last HCE Method Address
+
+ HCE_DBG0 Stores the method address seen by the HCE Handler that caused
+an HCE interrupt (PBDMA_INTR_1).
+ Only valid to read when a PBDMA_INTR_1 register has an interrupt
+pending and the PBDMA_STALL_1 register is set for the corresponding
+interrupt. Without the stall bit, Host will continue to process
+methods, so other methods might trigger interrupts. Consequently,
+the contents of this register may be unpredictable.
+
+
+#define NV_PPBDMA_HCE_DBG0(i) (0x00040150+(i)*8192) /* R--4A */
+#define NV_PPBDMA_HCE_DBG0__SIZE_1 14 /* */
+
+#define NV_PPBDMA_HCE_DBG0_MTHD_ADDR 13:2 /* R-EUF */
+#define NV_PPBDMA_HCE_DBG0_MTHD_ADDR_VAL0 0x00000000 /* R-E-V */
+
+HCE_DBG0 - Last HCE Method Data
+
+ HCE_DBG1 Stores the method data seen by the HCE Handler that caused
+and HCE interrupt (PBDMA_INTR_1).
+ Only valid to read when a PBDMA_INTR_1 register has an interrupt
+pending and the PBDMA_STALL_1 register is set for the corresponding interrupt.
+
+
+#define NV_PPBDMA_HCE_DBG1(i) (0x00040154+(i)*8192) /* R--4A */
+#define NV_PPBDMA_HCE_DBG1__SIZE_1 14 /* */
+
+#define NV_PPBDMA_HCE_DBG1_MTHD_DATA 31:0 /* R-EUF */
+#define NV_PPBDMA_HCE_DBG1_MTHD_DATA_VAL0 0x00000000 /* R-E-V */
+
+
+9 - HOST METHODS (NV_UDMA)
+============================
+
+ This section describes the types of methods that are executed by Host. In
+DMA mode, Host reads the pushbuffer data and generates method address/data pairs
+from that data.
+ Terminology:
+Host method - the methods listed here, below (left-shifted) address 0x100
+Host-only method - any Host method excluding SetObject, which also sends the
+ method to the engine specified by the subchannel field
+non-Host method - engine or SW method; excludes SetObject
+
+
+OBJECT [method] (SetObject) - Assign Object to Engine via Subchannel Method
+
+ The NV_UDMA_OBJECT method, generally known as SetObject, SET_OBJECT, or
+occasionally SetObj, verifies the engine targeted by the method's subchannel
+field supports the specified class ID.
+ The NVCLASS field specifies the object's class identifier. The target
+engine for the check is determined by the NV_FIFO_DMA_*_SUBCHANNEL specified in
+the method header. See dev_ram.ref for specifics regarding the subchannel
+mapping and for information regarding subchannel switching. On copy engines,
+Host ensures that the object specified in NVCLASS is supported on the HCE, and
+will raise INTR_*_HCE_ILLEGAL_CLASS if it is not; a CE SetObject is otherwise a
+no-op and is not sent to the copy engine. This method is not used to verify the
+chip's Host class ID. Use the NV_PPBDMA_SIGNATURE_HW field in
+NV_RAMFC_SIGNATURE for that.
+ SetObject is a misnomer: the GPU provides no mechanism for SW to select any
+other class interface than the one a given chip supports. SetObject is not
+required by any engine.
+ No subchannel-object mapping is stored in Host. Each engine is
+responsible for maintaining its class identifier state if multiple classes are
+supported. In a TSG on a runlist targeting such a hypothetical engine, the
+SetObject method need only be sent once for a given subchannel on the engine
+because all channels in the TSG share a context. After the SetObject, all
+channels targeting the same engine in the TSG will use the same class binding.
+
+
+
+#define NV_UDMA_OBJECT 0x00000000 /* -W-4R */
+
+#define NV_UDMA_OBJECT_NVCLASS 15:0 /* -W-VF */
+
+
+ILLEGAL [method] - Illegal Method
+
+ By reserving an opcode for an ILLEGAL method, triggering an error can be
+guaranteed to be future-compatible. This triggers the NV_PPBDMA_INTR_0_METHOD
+interrupt. This can be thought of as a software method for the channel class
+XX6f, but a different interrupt bit is set (METHOD instead of DEVICE).
+
+
+#define NV_UDMA_ILLEGAL 0x00000004 /* -W-4R */
+
+#define NV_UDMA_ILLEGAL_HANDLE 31:0 /* -W-VF */
+
+
+NOP [method] - No Operation Method
+
+ This method is discarded upon execution.
+
+
+
+#define NV_UDMA_NOP 0x00000008 /* -W-4R */
+
+#define NV_UDMA_NOP_HANDLE 31:0 /* -W-VF */
+
+
+
+
+
+Host Semaphore Methods
+
+ NVIDIA semaphores provide a basic synchronization mechanism for the GPU.
+(They do not behave like classic Dijkstra semaphores; instead, they provide a
+conditional barrier.) A semaphore refers to a 4-byte or 8-byte payload value
+in memory, the location of which is referred to as the semaphore address. A
+semaphore release writes a payload to the semaphore or performs a reduction
+operation on the semaphore using the payload. A release may optionally write a
+timestamp, in which case 16 bytes are written at the semaphore address. A
+semaphore acquire waits for the semaphore to reach a given condition before
+allowing a channel to proceed. Five Host methods, described below, are
+provided to perform semaphore releases and acquires:
+
+ SEM_ADDR_LO - Set semaphore address least significant bits
+ SEM_ADDR_HI - Set semaphore address most significant bits
+ SEM_PAYLOAD_LO - Set the lower 32 bits of the semaphore payload
+ SEM_PAYLOAD_HI - Set the upper 32 bits of the semaphore payload
+ SEM_EXECUTE - Configure and begin execution of the release or acquire
+
+SEM_ADDR_LO [method] - Set Semaphore Address Low Method
+
+ The NV_UDMA_SEM_ADDR_LO method sets the least significant bits of the
+address of a semaphore.
+
+ The NV_UDMA_SEM_ADDR_LO_OFFSET field contains bits 31:2 of a semaphore
+address. Since the smallest supported semaphore is 4-byte aligned, Host will
+not store bits 1:0 of the address.
+ Host will keep the lowest two bits of the SEM_ADDR_LO method reserved so
+software can directly pack the low 32 bits of an address into the method
+without needing to mask off the lowest two bits.
+ Note that software is required to align all semaphore addresses according
+to their respective sizes, and Host enforces this requirement with the
+NV_PPBDMA_INTR_0 interrupt. See the documentation below for the
+NV_UDMA_SEM_EXECUTE method and its fields PAYLOAD_SIZE and RELEASE_TIMESTAMP.
+ While the channel is loaded on a PBDMA unit, the OFFSET value is stored in
+the NV_PPBDMA_SEM_ADDR_LO register. Otherwise, this value is stored in the
+NV_RAMFC_SEM_ADDR_LO field of the RAMFC part of the channel's instance block.
+
+
+#define NV_UDMA_SEM_ADDR_LO 0x0000005C /* -W-4R */
+
+#define NV_UDMA_SEM_ADDR_LO_OFFSET 31:2 /* -W-VF */
+
+
+SEM_ADDR_HI [method] - Set Semaphore Address High Method
+
+ The NV_UDMA_SEM_ADDR_HI method sets the most significant bits of the
+address of a semaphore.
+
+ The NV_UDMA_SEM_ADDR_HI_OFFSET field contains bits 39:32 of the address of
+a semaphore.
+ While the channel is loaded on a PBDMA unit, the OFFSET value is stored in
+the NV_PPBDMA_SEM_ADDR_HI register. Otherwise, this value is stored in the
+NV_RAMFC_SEM_ADDR_HI field of the RAMFC part of the channel's instance block.
+
+
+#define NV_UDMA_SEM_ADDR_HI 0x00000060 /* -W-4R */
+
+#define NV_UDMA_SEM_ADDR_HI_OFFSET 7:0 /* -W-VF */
+
+
+SEM_PAYLOAD_LO [method] - Set Semaphore Payload Low Method
+
+ The NV_UDMA_SEM_PAYLOAD_LO method sets the lower 32 bits of the semaphore
+payload. This value is used according to the NV_UDMA_SEM_EXECUTE_OPERATION
+field described below.
+
+ While the channel is loaded on a PBDMA unit, the PAYLOAD_LO value is
+stored in the NV_PPBDMA_SEM_PAYLOAD_LO register. Otherwise, this value is
+stored in the NV_RAMFC_SEM_PAYLOAD_LO field of the RAMFC part of the channel's
+instance block.
+
+
+#define NV_UDMA_SEM_PAYLOAD_LO 0x00000064 /* -W-4R */
+
+#define NV_UDMA_SEM_PAYLOAD_LO_PAYLOAD 31:0 /* -W-VF */
+
+
+SEM_PAYLOAD_HI [method] - Set Semaphore Payload High Method
+
+ The NV_UDMA_SEM_PAYLOAD_HI method sets the upper 32 bits of the semaphore
+payload. This value is used according to the NV_UDMA_SEM_EXECUTE_OPERATION
+field described below.
+
+ While the channel is loaded on a PBDMA unit, the PAYLOAD_HI value is
+stored in the NV_PPBDMA_SEM_PAYLOAD_HI register. Otherwise, this value is
+stored in the NV_RAMFC_SEM_PAYLOAD_HI field of the channel's instance block.
+
+
+#define NV_UDMA_SEM_PAYLOAD_HI 0x00000068 /* -W-4R */
+
+#define NV_UDMA_SEM_PAYLOAD_HI_PAYLOAD 31:0 /* -W-VF */
+
+
+SEM_EXECUTE [method] - Semaphore Execute Method
+
+ The NV_UDMA_SEM_EXECUTE method specifies a synchronization operation and
+initiates that operation. To use a semaphore, set the semaphore's address with
+the NV_UDMA_SEM_ADDR_LO/_HI methods, set the semaphore payload with
+NV_UDMA_SEM_ADDR_LO/_HI methods, and then initiate the semaphore operation with
+an NV_UDMA_SEM_EXECUTE method.
+
+Semaphore operation and payload size:
+
+ The NV_UDMA_SEM_EXECUTE_OPERATION field specifies the semaphore operation.
+RELEASE and REDUCTION cause a semaphore release to occur, potentially allowing
+future acquires to succeed and causing a timestamp to be written if
+RELEASE_TIMESTAMP is EN.
+ For iGPU cases where a semaphore release can be mapped to an onchip syncpoint,
+the SIZE must be 4Bytes to avoid double incrementing the target syncpoint.
+Timestamping should also be disabled to avoid unwanted behavior.
+ An operation of ACQUIRE, ACQ_STRICT_GEQ, ACQ_CIRC_GEQ, ACQ_AND, or ACQ_NOR
+causes Host to perform a semaphore acquire, meaning that Host will not process
+any subsequent methods in the channel until the acquire succeeds. When the
+semaphore value does not satisfy the conditions of the acquire, the semahore
+acquire is said to have failed. In this case, the PBDMA unit will switch to
+the next pending channel on its runqueue within the same TSG, if it has not
+reached the end of the runqueue, but otherwise may either start again switching
+to channels on its runqueue within the same TSG or switch to another TSG; see
+the documentation below for NV_UDMA_SEM_EXECSWITCH_TSG field. Upon switching
+back into a channel waiting on a semaphore the PBDMA unit continues to poll the
+semaphore address. When the channel is loaded on the PBDMA unit, the
+NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL register field can be read for debug
+purposes in order to determine whether an acquire has failed or not.
+ If OPERATION is ACQUIRE, the acquire succeeds when the semaphore value is
+equal to the payload value. The PAYLOAD_SIZE controls the size of the memory
+read performed by Host and the comparison. If PAYLOAD_SIZE is 32BIT then a 32
+bit memory read is performed and the return value is compared to PAYLOAD_LO.
+If PAYLOAD_SIZE is 64BIT then a single 64 bit memory read is performed and the
+return value is compared to PAYLOAD_LO/_HI.
+ If OPERATION is ACQ_STRICT_GEQ, the acquire succeeds when (SV >= PV),
+where SV is the semaphore value in memory, PV is the payload value, and >= is
+an unsigned greater-than-or-equal-to comparison.
+ If OPERATION is ACQ_CIRC_GEQ, the acquire succeeds when the two's
+complement signed representation of the semaphore value minus the payload value
+is non-negative; that is, when the semaphore value is within half a range
+greater than or equal to the payload value, modulo that range. The
+PAYLOAD_SIZE field determines if Host is doing a 32 bit comparison or a 64 bit
+comparison. So in other words, the condition is met when the PAYLOAD_SIZE is
+32BIT and the semaphore value is within the range [payload,
+((payload+(2^(32-1)))-1)], modulo 2^32, or when the PAYLOAD_SIZE is 64BIT and
+the semaphore value is within the range [payload, ((payload+(2^(64-1)))-1)],
+modulo 2^64.
+ If OPERATION is ACQ_AND, the acquire succeeds when the bitwise-AND of the
+semaphore value and the payload value is not zero. The PAYLOAD_SIZE field
+determines if a 32 bit or 64 bit value is read from memory, and compared to.
+ If OPERATION is ACQ_NOR, the acquire succeeds when the bitwise-NOR of the
+semaphore value and the payload value is not zero. PAYLOAD_SIZE determines if
+a 32 bit or 64 bit value is read from memory, and compared to.
+ If OPERATION is RELEASE, then Host simply writes the payload value to the
+semaphore structure in memory at the SEM_ADDR_LO/_HI address. The exact value
+written depends on the operation defined. If PAYLOAD_SIZE is 32BIT then a 32
+bit payload value from PAYLOAD_LO is used. If PAYLOAD_SIZE is 64BIT then a 64
+bit payload specified by PAYLOAD_LO/_HI is used.
+ If OPERATION is REDUCTION, then Host sends the memory system an
+instruction to perform the atomic reduction operation specified in the
+REDUCTION field on the memory value, using the PAYLOAD_LO/_HI payload value as
+the operand. The OPERATION_PAYLOAD_SIZE field determines if a 32 bit or 64 bit
+reduction is performed. Note that if the semaphore address refers to a page
+whose PTE has ATOMIC_DISABLE set, the operation will result in an
+ATOMIC_VIOLATION fault;
+ Note that if the PAYLOAD_SIZE is 64BIT, the semaphore address is required
+to be 8-byte aligned. If RELEASE_TIMESTAMP is EN while the operation is a
+RELEASE or REDUCTION operation, the semaphore address is required to be 16-byte
+aligned. The semaphore address is not required to be 16-byte aligned during an
+acquire operation. If the semaphore address is not aligned according to the
+field values Host will raise the NV_PPBDMA_INTR_0 interrupt.
+ For iGPU cases where a semaphore release can be mapped to an onchip syncpoint,
+the SIZE must be 4Bytes to avoid double incrementing the target syncpoint.
+Timestamping should also be disabled to avoid unwanted behavior.
+
+Semaphore switch option:
+
+ The NV_UDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG field specifies whether or not
+Host should switch to processing another TSG if the acquire fails. If every
+channel within the same TSG has no work (is waiting on a semaphore acquire, is
+idle, is unbound, or is disabled), the TSG can make no further progress until
+one of the relevant semaphores is released. Because it may be a long time
+before the release, it may be more efficient for the PBDMA unit to switch off
+the blocked TSG prior to the runqueue timeslice expiring, so that it can serve
+a different TSG that is not waiting, or so that it can poll other semaphores on
+other TSGs whose channels are waiting on acquires.
+ When a semaphore acquire fails, the PBDMA unit will always switch to
+another channel within the same TSG, provided that it has not completed a
+traversal through all the TSG's channels. If every pending channel in the TSG
+is waiting on a semaphore acquire, the Host scheduler is able identify a lack
+of progress for the entire TSG by the time it has completed a traversal through
+all those channels. In this case the value of ACQUIRE_SWITCH_TSG for each of
+these channels determines whether the PBDMA will switch to another TSG or start
+another traversal through the same TSG.
+ If ACQUIRE_SWITCH_TSG is DIS for any of the channels in the TSG, the Host
+scheduler will ignore any lack of progress and continue processing the TSG,
+until either every channel in the TSG runs out of work or the timeslice
+expires. If ACQUIRE_SWITCH_TSG is EN for every pending channel in the TSG, the
+Host scheduler will recognize a lack of progress for the whole TSG, and will
+switch to the next serviceable TSG on the runqueue, if possible.
+ In the case described above, if there isn't a different serviceable TSG
+on the runlist, then the current channel's TSG will continue to be scheduled
+and the acquire retry will be naturally delayed by the time it takes for Host's
+runlist processing to return to the same channel. This retry delay may be too
+short, in which case the runlist search can be throttled to increase the delay
+by configuring NV_PFIFO_ACQ_PRETEST; see dev_fifo.ref. Note that if the
+channel remains switched in, the prefetched pushbuffer data is not discarded,
+so setting ACQUIRE_SWITCH_TSG_EN cannot deterministically be depended on to
+cause the discarding of prefetched pushbuffer data.
+ Also note that when switching between channels within a TSG, Host does not
+wait on any timer (such as NV_PFIFO_ACQ_PRETEST or NV_PPBDMA_ACQUIRE_RETRY),
+but is instead throttled by the time it takes to switch channels. Host will
+honor the ACQUIRE_RETRY time, but only if the same channel is rescheduled
+without a channel switch.
+
+Semaphore wait-for-idle option:
+
+ The NV_UDMA_SEM_EXECUTE_RELEASE_WFI field applies only to releases and
+reductions. It specifies whether Host should wait until the engine to which
+the channel last sent methods is idle (in other words, until all previous
+methods in the channel have been completed) before writing to memory as part of
+the release or reduction operation. If this field is RELEASE_WFI_EN, then Host
+waits for the engine to be idle, inserts a system memory barrier, and then
+updates the value in memory. If this field is RELEASE_WFI_DIS, Host performs
+the semaphore operation on the memory without waiting for the engine to be
+idle, and without using a system memory barrier.
+
+Semaphore timestamp option:
+
+ The NV_UDMA_SEM_EXECUTE_RELEASE_TIMESTAMP specifies whether a timestamp
+should be written by a release in addition to the payload. If
+RELEASE_TIMESTAMP is DIS, then only the semaphore payload will be written. If
+the field is EN then both the semaphore payload and a nanosecond timestamp will
+be written. In this case, the semaphore address must be 16-byte aligned; see
+the related note at NV_UDMA_SEM_ADDR_LO. If RELEASE_TIMESTAMP is EN and
+SEM_ADDR_LO is not 16-byte aligned, then Host will initiate an interrupt
+(NV_PPBDMA_INTR_0_SEMAPHORE). When a 16-byte semaphore is written, the
+semaphore timestamp will be written before the semaphore payload so that when
+an acquire succeeds, the timestamp write will have completed. This ensures SW
+will not get an out-of-date timestamp on platforms which guarantee ordering
+within a 16-byte aligned region. The timestamp value is snapped from the
+NV_PTIMER_TIME_1/0 registers; see dev_timer.ref.
+ For iGPU cases where a semaphore release can be mapped to an onchip syncpoint,
+the SIZE must be 4Bytes to avoid double incrementing the target syncpoint.
+Timestamping should also be disabled for a synpoint backed releast to avoid
+unexpected behavior.
+
+ Below is the little endian format of 16-byte semaphores in memory:
+
+ ---- ------------------- -------------------
+ byte Data(Little endian) Data(Little endian)
+ PAYLOAD_SIZE=32BIT PAYLOAD_SIZE=64BIT
+ ---- ------------------- -------------------
+ 0 Payload[ 7: 0] Payload[ 7: 0]
+ 1 Payload[15: 8] Payload[15: 8]
+ 2 Payload[23:16] Payload[23:16]
+ 3 Payload[31:24] Payload[31:24]
+ 4 0 Payload[39:32]
+ 5 0 Payload[47:40]
+ 6 0 Payload[55:48]
+ 7 0 Payload[63:56]
+ 8 timer[ 7: 0] timer[ 7: 0]
+ 9 timer[15: 8] timer[15: 8]
+ 10 timer[23:16] timer[23:16]
+ 11 timer[31:24] timer[31:24]
+ 12 timer[39:32] timer[39:32]
+ 13 timer[47:40] timer[47:40]
+ 14 timer[55:48] timer[55:48]
+ 15 timer[63:56] timer[63:56]
+ ---- ------------------- -------------------
+
+
+Semaphore reduction operations:
+
+ The NV_UDMA_SEM_EXECUTE_REDUCTION field specifies the reduction operation
+to perform on the semaphore memory value, using the semaphore payload from
+SEM_PAYLOAD_LO/HI as an operand, when the OPERATION field is
+OPERATION_REDUCTION. Based on the PAYLOAD_SIZE field the semaphore value and
+the payload are interpreted as 32bit or 64bit integers and the reduction
+operation is performed according to the signedness specified via the
+REDUCTION_FORMAT field described below. The reduction operation leaves the
+modified value in the semaphore memory according to the operation as follows:
+
+REDUCTION_IMIN - the minimum of the value and payload
+REDUCTION_IMAX - the maximum of the value and payload
+REDUCTION_IXOR - the bitwise exclusive or (XOR) of the value and payload
+REDUCTION_IAND - the bitwise AND of the value and payload
+REDUCTION_IOR - bitwise OR of the value and payload
+REDUCTION_IADD - the sum of the value and payload
+REDUCTION_INC - the value incremented by 1, or reset to 0 if the incremented
+ value would exceed the payload
+REDUCTION_DEC - the value decremented by 1, or reset back to the payload
+ if the original value is already 0 or exceeds the payload
+
+Note that INC and DEC are somewhat surprising: they can be used to repeatedly
+loop the semaphore value when performed successively with the same payload p.
+INC repeatedly iterates from 0 to p inclusive, resetting to 0 once exceeding p.
+DEC repeatedly iterates down from p to 0 inclusive, resetting back to p once
+the value would otherwise underflow. Therefore, an INC or DEC reduction with
+payload 0 effectively releases a semaphore by setting its value to 0.
+
+The reduction opcode assignment matches the enumeration in the XBAR translator
+(to avoid extra remapping of hardware), but this does not match the graphics FE
+reduction opcodes used by graphics backend semaphores. The reduction operation
+itself is performed by L2.
+
+Semaphore signedness option:
+
+ The NV_UDMA_SEM_EXECUTE_REDUCTION_FORMAT field specifies whether the
+values involved in a reduction operation will be interpreted as signed or
+unsigned.
+
+The following table summarizes each reduction operation, and the signedness and
+payload size supported for each operation:
+
+ signedness
+ r op 32b 64b function (v = memory value, p = semaphore payload)
+ -----+-----+-----+---------------------------------------------------
+ IMIN U,S U,S v = (v < p) ? v : p
+ IMAX U,S U,S v = (v > p) ? v : p
+ IXOR N/A N/A v = v ^ p
+ IAND N/A N/A v = v & p
+ IOR N/A N/A v = v | p
+ IADD U,S U v = v + p
+ INC U inv v = (v >= p) ? 0 : v + 1
+ DEC U inv v = (v == 0 || v > p) ? p : v - 1 (from L2 IAS)
+
+An operation with signedness "N/A" will ignore the value of REDUCTION_FORMAT
+when executing, and either value of REDUCTION_FORMAT is valid. If an operation
+is "U only" this means a signed version of this operation is not supported, and
+if it is marked "inv" then it is unsupported for any signedness. If Host sees
+an unsupported reduction op (in other words, is expected to run a reduction op
+while PAYLOAD_SIZE and REDUCTION_FORMAT are set to unsupported values for that
+op), Host will raise the NV_PPBDMA_INTR_0_SEMAPHORE interrupt.
+
+Example: A signed 32-bit IADD reduction operation is valid. A signed 64-bit
+IADD reduction operation is unsupported and will trigger an interrupt if sent to
+Host. A 64-bit INC (or DEC) operation is not supported and will trigger an
+interrupt if sent to Host.
+
+Legal semaphore operation combinations:
+
+ For iGPU cases where a semaphore release can be mapped to an onchip syncpoint,
+the SIZE must be 4Bytes to avoid double incrementing the target syncpoint.
+Timestamping should also be disabled for a synpoint backed release to avoid
+unexpected behavior.
+
+ The following table diagrams the types of semaphore operations that are
+possible. In the columns, "x" matches any field value. ACQ refers to any of
+the ACQUIRE, ACQ_STRICT_GEQ, ACQ_CIRC_GEQ, ACQ_AND, and ACQ_NOR operations.
+REL refers to either a RELEASE or a REDUCTION operation.
+
+ OP SWITCH WFI PAYLOAD_SIZE TIMESTAMP Description
+ --- ------ --- ------------ --------- --------------------------------------------------------------
+ ACQ 0 x 0 x acquire; 4B (32 bit comparison); retry on fail
+ ACQ 0 x 1 x acquire; 8B (64 bit comparison); retry on fail
+ ACQ 1 x 0 x acquire; 4B (32 bit comparison); switch on fail
+ ACQ 1 x 1 x acquire; 8B (64 bit comparison); switch on fail
+ REL x 0 0 1 WFI & release 4B payload + timestamp semaphore
+ REL x 0 1 1 WFI & release 8B payload + timestamp semaphore
+ REL x 1 0 1 do not WFI & release 4B payload + timestamp semaphore
+ REL x 1 1 1 do not WFI & release 8B payload + timestamp semaphore
+ REL x 0 0 0 WFI & release doubleword (4B) semaphore payload
+ REL x 0 1 0 WFI & release quadword (8B) semaphore payload
+ REL x 1 0 0 do not WFI & release doubleword (4B) semaphore payload
+ REL x 1 1 0 do not WFI & release quadword (8B) semaphore payload
+ --- ------ --- ------------ --------- --------------------------------------------------------------
+
+ While the channel is loaded on a PBDMA unit, information from this method
+is stored in the NV_PPBDMA_SEM_EXECUTE register. Otherwise, this information
+is stored in the NV_RAMFC_SEM_EXECUTE field of the RAMFC part of the channel's
+instance block.
+
+Undefined bits:
+
+ Bits in the NV_UDMA_SEM_EXECUTE method data that are not used by the
+specified OPERATION should be set to 0. When non-zero, their behavior is
+undefined.
+
+
+
+#define NV_UDMA_SEM_EXECUTE 0x0000006C /* -W-4R */
+
+#define NV_UDMA_SEM_EXECUTE_OPERATION 2:0 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_ACQUIRE 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_RELEASE 0x00000001 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_ACQ_STRICT_GEQ 0x00000002 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_ACQ_CIRC_GEQ 0x00000003 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_ACQ_AND 0x00000004 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_ACQ_NOR 0x00000005 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_OPERATION_REDUCTION 0x00000006 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG 12:12 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG_DIS 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_ACQUIRE_SWITCH_TSG_EN 0x00000001 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_RELEASE_WFI 20:20 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_RELEASE_WFI_DIS 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_RELEASE_WFI_EN 0x00000001 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_PAYLOAD_SIZE 24:24 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_PAYLOAD_SIZE_32BIT 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_PAYLOAD_SIZE_64BIT 0x00000001 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_RELEASE_TIMESTAMP 25:25 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_RELEASE_TIMESTAMP_DIS 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_RELEASE_TIMESTAMP_EN 0x00000001 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_REDUCTION 30:27 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IMIN 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IMAX 0x00000001 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IXOR 0x00000002 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IAND 0x00000003 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IOR 0x00000004 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_IADD 0x00000005 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_INC 0x00000006 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_DEC 0x00000007 /* -W--V */
+
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_FORMAT 31:31 /* -W-VF */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_FORMAT_SIGNED 0x00000000 /* -W--V */
+#define NV_UDMA_SEM_EXECUTE_REDUCTION_FORMAT_UNSIGNED 0x00000001 /* -W--V */
+
+
+NON_STALL_INT [method] - Non-Stalling Interrupt Method
+
+ The NON_STALL_INT method causes the NV_PFIFO_INTR_0_CHANNEL_INTR field
+to be set to PENDING in the channel's interrupt register, as well as
+NV_PFIFO_INTR_HIER_* registers. This will cause an interrupt if it is
+enabled. Host does not stall the execution of the GPU context's
+method, does not switch out the GPU context, and does not disable switching the
+GPU context.
+ A NON_STALL_INT method's data (NV_UDMA_NON_STALL_INT_HANDLE) is ignored.
+ Software should handle all of a channel's non-stalling interrupts before it
+unbinds the channel from the GPU context.
+
+
+#define NV_UDMA_NON_STALL_INT 0x00000020 /* -W-4R */
+
+#define NV_UDMA_NON_STALL_INT_HANDLE 31:0 /* -W-VF */
+
+
+
+
+MEM_OP methods: membars, and cache and TLB management.
+
+ MEM_OP_A, MEM_OP_B, and MEM_OP_C set up state for performing a memory
+operation. MEM_OP_D sets additional state, specifies the type of memory
+operation to perform, and triggers sending the mem op to HUB. To avoid
+unexpected behavior for future revisions of the MEM_OP methods, all 4 methods
+should be sent for each requested mem op, with irrelevant fields set to 0.
+Note that hardware does not enforce the requirement that unrelated fields be set
+to 0, but ignoring this advice could break forward compatibility.
+ Host does not wait until an engine is idle before beginning to execute
+this method.
+ While a GPU context is bound to a channel and assigned to a PBDMA unit,
+the NV_UDMA_MEM_OP_A-C values are stored in the NV_PPBDMA_MEM_OP_A-C registers
+respectively. While the GPU context is not assigned to a PBDMA unit, these
+values are stored in the respective NV_RAMFC_MEM_OP_A-C fields of the RAMFC part
+of the GPU context's instance block in memory.
+
+Usage, operations, and configuration:
+
+ MEM_OP_D_OPERATION specifies the type of memory operation to perform. This
+field determines the value of the opcode on the Host/FB interface. When Host
+encounters the MEM_OP_D method, Host sends the specified request to the FB and
+waits for an indication that the request has completed before beginning to
+process the next method. To issue a memory operation, first issue the 3
+MEM_OP_A-C methods to configure the operation as documented below. Then send
+MEM_OP_D to complete the configuration and trigger the operation. The
+operations available for MEM_OP_D_OPERATION are as follows:
+ MEMBAR - perform a memory barrier; see below.
+ MMU_TLB_INVALIDATE - invalidate page translation and attribute data from
+the given page directory that are cached in the Memory-Management Unit TLBs.
+ MMU_TLB_INVALIDATE_TARGETED - invalidate page translation and attributes
+data corresponding to a specific page in a given page directory.
+ L2_SYSMEM_INVALIDATE - invalidate data from system memory cached in L2.
+ L2_PEERMEM_INVALIDATE - invalidate peer-to-peer data in the L2 cache.
+ L2_CLEAN_COMPTAGS - clean the L2 compression tag cache.
+ L2_FLUSH_DIRTY - flush dirty lines from L2.
+ L2_WAIT_FOR_SYS_PENDING_READS - ensure all sysmem reads are past the point
+of being modified by a write through a reflected mapping. To do this, L2 drains
+all sysmem reads to the point where they cannot be modified by future
+non-blocking writes to reflected sysmem. L2 will block any new sysmem read
+requests and drain out all read responses. Note VC's with sysmem read requests
+at the head would stall any request till the flush is complete. The niso-nb vc
+does not have sysmem read requests so it would continue to flow. L2 will ack
+that the sys flush is complete and unblock all VC's. Note this operation is a
+NOP on tegra chips.
+ ACCESS_COUNTER_CLR - clear page access counters.
+
+ Depending on the operation given in MEM_OP_D_OPERATION, the other fields of
+all four MEM_OP methods are interpreted differently:
+
+MMU_TLB_INVALIDATE*
+-------------------
+
+ When the operation is MMU_TLB_INVALIDATE or MMU_TLB_INVALIDATE_TARGETED,
+then Host will initiate a TLB invalidate as described above. The MEM_OP
+configuration fields specify what to invalidate, where to perform the
+invalidate, and optionally trigger a replay or cancel event for replayable
+faults buffered within the TLBs as part of UVM page management.
+ When the operation is MMU_TLB_INVALIDATE_TARGETED,
+MEM_OP_C_TLB_INVALIDATE_PDB must be ONE, and the TLB_INVALIDATE_TARGET_ADDR_LO
+and HI fields must be filled in to specify the target page.
+ These operations are privileged and can only be executed from channels
+with NV_PPBDMA_CONFIG_AUTH_LEVEL set to PRIVILEGED. This is configured via the
+NV_RAMFC_CONFIG dword in the channel's RAMFC during channel setup.
+
+ MEM_OP_A_TLB_INVALIDATE_CANCEL_TARGET_GPC_ID and
+MEM_OP_A_TLB_INVALIDATE_CANCEL_TARGET_CLIENT_UNIT_ID identify the GPC and uTLB
+within that GPC respectively that should perform the cancel operation when
+MEM_OP_C_TLB_INVALIDATE_REPLAY is CANCEL_TARGETED. These field values should be
+copied from the GPC_ID and CLIENT fields from the associated
+NV_UVM_FAULT_BUF_ENTRY packet or NV_PFIFO_INTR_MMU_FAULT_INFO(i) entry. The
+CLIENT_UNIT_ID corresponds to the values specified by NV_PFAULT_CLIENT_GPC_* in
+dev_fault.ref. These fields are used with the CANCEL_TARGETED operation. The
+fields also overlap with CANCEL_MMU_ENGINE_ID, and are interpreted as
+CANCEL_MMU_ENGINE_ID during reply of type REPLAY_CANCEL_VA_GLOBAL. For other
+replay operations, these fields must be 0.
+
+ MEM_OP_A_TLB_INVALIDATE_CANCEL_MMU_ENGINE_ID specifies the associated
+MMU_ENGINE_ID of the requests targeted by a REPLAY_CANCEL_VA_GLOBAL
+operation. The field is ignored if the replay operation is not
+REPLAY_CANCEL_VA_GLOBAL. This field overlaps with CANCEL_TARGET_GPC_ID and
+CANCEL_TARGET_CLIENT_UNIT_ID field.
+
+ MEM_OP_A_TLB_INVALIDATE_INVALIDATION_SIZE is aliased/repurposed
+ with MEM_OP_A_TLB_INVALIDATE_CANCEL_TARGET_CLIENT_UNIT_ID field
+ when MEM_OP_C_TLB_INVALIDATE_REPLAY (below) is anything other
+ than CANCEL_TARGETED or CANCEL_VA_GLOBAL or
+ CANCEL_VA_TARGETED. In the invalidation size enabled replay type
+ cases, actual region to be invalidated iscalculated as
+ 4K*(2^INVALIDATION_SIZE) i.e.,
+ 4K*(2^CANCEL_TARGET_CLIENT_UNIT_ID); client unit id and gpc id
+ are not applicable.
+
+ MEM_OP_A_TLB_INVALIDATE_SYSMEMBAR controls whether a Hub SYSMEMBAR
+operation is performed after waiting for all outstanding acks to complete, after
+the TLB is invalidated. Note if ACK_TYPE is ACK_TYPE_NONE then this field is
+ignored and no MEMBAR will be performed. This is provided as a SW optimization
+so that SW does not need to perform a NV_UDMA_MEM_OP_D_OPERATION_MEMBAR op with
+MEMBAR_TYPE SYS_MEMBAR after the TLB_INVALIDATE. This field must be 0 if
+TLB_INVALIDATE_GPC is DISABLE.
+
+ MEM_OP_B_TLB_INVALIDATE_TARGET_ADDR_HI:MEM_OP_A_TLB_INVALIDATE_TARGET_ADDR_LO
+specifies the 4k aligned virtual address of the page whose translation to
+invalidate within the TLBs. These fields are valid only when OPERATION is
+MMU_TLB_INVALIDATE_TARGETED; otherwise, they must be set to 0.
+
+ MEM_OP_C_TLB_INVALIDATE_PDB controls whether a TLB invalidate should apply
+to a particular page directory or to all of them. If PDB is ALL, then all page
+directories are invalidated. If PDB is ONE, then the PDB address and aperture
+are specified in the PDB_ADDR_LO:PDB_ADDR_HI and PDB_APERTURE fields.
+Note that ALL does not make sense when OPERATION is MMU_TLB_INVALIDATE_TARGETED;
+the behavior in that case is undefined.
+
+ MEM_OP_C_TLB_INVALIDATE_GPC controls whether the GPC-MMU and uTLB entries
+should be invalidated in addition to the Hub-MMU TLB (Note: the Hub TLB is
+always invalidated). Set it to INVALIDATE_GPC_ENABLE to invalidate the GPC TLBs.
+The REPLAY, ACK_TYPE, and SYSMEMBAR fields are only used by the GPC TLB and so
+are ignored if INVALIDATE_GPC is DISABLE.
+
+ MEM_OP_C_TLB_INVALIDATE_REPLAY specifies the type of replay to perform in
+addition to the invalidate. A replay causes all replayable faults outstanding
+in the TLB to attempt their translations again. Once a TLB acks a replay, that
+TLB may start accepting new translations again. The replay flavors are as
+follows:
+ NONE - do not replay any replayable faults on invalidate.
+ START - initiate a replay across all TLBs, but don't wait for completion.
+ The replay will be acked as soon as the invalidate is processed, but
+ replays themselves are in flight and not necessarily translated.
+ START_ACK_ALL - initiate the replay and wait until it completes.
+ The replay will be acked after all pending transactions in the replay
+ fifo have been translated. New requests will remain stalled in the
+ gpcmmu until all transactions in the replay fifo have completed and
+ there are no pending faults left in the replay fifo.
+ CANCEL_TARGETED - initiate a cancel-replay on a targeted uTLB, causing any
+ replayable translations buffered in that uTLB to become non-replayable
+ if they fault again. In this case, the first faulting translation
+ will be reported in the NV_PFIFO_INTR_MMU_FAULT registers and will
+ raise PFIFO_INTR_0_MMU_FAULT. The specific TLB to target for the
+ cancel is specified in the CANCEL_TARGET fields. Note the TLB
+ invalidate still applies globally to all TLBs.
+ CANCEL_GLOBAL - like CANCEL_TARGETED, but all TLBs will cancel-replay.
+ CANCEL_VA_GLOBAL - initiates a cancel operation that cancels all requests
+ with the matching mmu_engine_id and access_type that land in the
+ specified 4KB aligned virtual address within the scope of specified
+ PDB. All other requests are replayed. If the specified engine is not
+ bound, or if the PDB of the specified engine does not match the
+ specified PDB, all requests will be replayed and none will be canceled.
+
+ MEM_OP_C_TLB_INVALIDATE_ACK_TYPE controls which sort of ACK the uTLBs wait
+for after having issued a membar to L2. ACK_TYPE_NONE does not perform any sort
+of membar. ACK_TYPE_INTRANODE waits for an ack from the XBAR.
+ACK_TYPE_GLOBALLY waits for an L2 ACK. ACK_TYPE_GLOBALLY is equivalent to a
+MEMBAR operation from the engine, or a SYS_MEMBAR if
+MEM_OP_A_TLB_INVALIDATE_SYSMEMBAR is EN.
+
+ MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL specifies which levels in the page
+directory hierarchy of the TLB cache to invalidate. The levels are numbered
+from the bottom up, with the PTE being at the bottom with level 1. The
+specified level and all those below it in the hierarchy -- that is, all those
+with a lower numbered level -- are invalidated. ALL (the 0 default) is
+special-cased to indicate the top level; this causes the invalidate to apply to
+the entire page mapping structure. The field is ignored if the replay operation
+is REPLAY_CANCEL_VA_GLOBAL.
+
+ MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE specifies the associated ACCESS_TYPE of
+the requests targeted by a REPLAY_CANCEL_VA_GLOBAL operation. This field
+overlaps with the INVALIDATE_PAGE_TABLE_LEVEL field, and is ignored if the
+replay operation is not REPLAY_CANCEL_VA_GLOBAL. The ACCESS_TYPE field can get
+one of the following values:
+ READ - the cancel_va_global should be performed on all pending read requests.
+ WRITE - the cancel_va_global should be performed on all pending write requests.
+ ATOMIC_STRONG - the cancel_va_global should be performed on all pending
+ strong atomic requests.
+ ATOMIC_WEAK - the cancel_va_global should be performed on all pending
+ weak atomic requests.
+ ATOMIC_ALL - the cancel_va_global should be performed on all pending atomic
+ requests.
+ WRITE_AND_ATOMIC - the cancel_va_global should be performed on all pending
+ write and atomic requests.
+ ALL - the cancel_va_global should be performed on all pending requests.
+
+
+ MEM_OP_C_TLB_INVALIDATE_PDB_APERTURE specifies the target aperture of the
+page directory for which TLB entries should be invalidated. This field must be
+0 when TLB_INVALIDATE_PDB is ALL.
+
+ MEM_OP_C_TLB_INVALIDATE_PDB_ADDR_LO specifies the low 20 bits of the
+4k-block-aligned PDB (base address of the page directory) when
+TLB_INVALIDATE_PDB is ONE; otherwise this field must be 0. The PDB byte address
+should be 4k aligned and right-shifted by 12 before being split and packed into
+the ADDR fields. Note that the PDB_ADDR_LO field starts at bit 12, so it is
+possible to set MEM_OP_C to the low 32 bits of the byte address, mask off the
+low 12, and then or in the rest of the configuration fields.
+
+ MEM_OP_D_TLB_INVALIDATE_PDB_ADDR_HI contains the high bits of the PDB when
+TLB_INVALIDATE_PDB is ONE. Otherwise this field must be 0.
+
+UVM handling of replayable faults:
+
+ The following example illustrates how TLB invalidate may be used by the
+UVM driver:
+ 1. When the TLB invalidate completes, all memory accesses using the old
+ TLB entries prior to the invalidate will finish translation (but not
+ completion), and any new virtual accesses will trigger new
+ translations. The outstanding in-flight translations are allowed to
+ fault but will not indefinitely stall the invalidate.
+ 2. When the TLB invalidate completes, in-flight memory accesses using the
+ old physical translations may not yet be visible to other GPU clients
+ (such as CopyEngine) or to the CPU. Accesses coming from clients that
+ support recoverable faults (such as TEX and GCC) can be made visible by
+ requesting the MMU to perform a membar using the ACK_TYPE and SYSMEMBAR
+ fields.
+ a. If ACK_TYPE is NONE the SYSMEMBAR field is ignored and no membar
+ is performed.
+ b. If ACK_TYPE is INTRANODE the invalidate will wait until all
+ in-flight physical accesses using the old translations are visible
+ to XBAR clients on the blocking VC.
+ c. If ACK_TYPE is GLOBALLY the invalidate will wait until all
+ in-flight physical accesses using the old translations are at the
+ point of coherence in L2, meaning writes will be visible to all
+ other GPU clients and reads will not be mutable by them.
+ d. If the SYSMEMBAR field is set to EN then a Hub SYSMEMBAR will also
+ be performed following the ACK_TYPE membar. This is the equivalent
+ of performing a NV_UDMA_MEM_OP_C_MEMBAR_TYPE_SYS_MEMBAR.
+ 3. If fault replay was requested then all pending recoverable faults in
+ the TLB replay list will be retranslated. This includes all faults
+ discovered while the invalidate was pending. This replay may generate
+ more recoverable faults.
+ 4. If fault replay cancel was requested then another replay is attempted of
+ all pending replayable faults on the targeted TLB(s). If any of these
+ re-fault they are discarded (sticky NACK or ACK/TRAP sent back to the
+ client depending on the setting of NV_PGPC_PRI_MMU_DEBUG_CTRL).
+
+
+
+MEMBAR
+------
+
+ When the operation is MEMBAR, Host will perform a memory barrier operation.
+All other fields must be set to 0 except for MEM_OP_C_MEMBAR_TYPE. When
+MEMBAR_TYPE is MEMBAR, then a memory barrier will be performed with respect to
+other clients on the GPU. When it is SYS_MEMBAR, the memory barrier will also be
+performed with respect to the CPU and peer GPUs.
+
+ MEMBAR - This issues a MEMBAR operation following all reads, writes, and
+atomics currently in flight from the PBDMA. The MEMBAR operation will push all
+such accesses already in flight on the same VC as the PBDMA to a point of GPU
+coherence before proceeding. After this operation is complete, reads from any
+GPU client will see prior writes from this PBDMA, and writes from any GPU client
+cannot modify the return data of earlier reads from this PBDMA. This is true
+regardless of whether those accesses target vidmem, sysmem, or peer mem.
+ WARNING: This only guarantees accesses from the same VC as the PBDMA that
+are already in flight are coherent. Accesses from clients such as SM or a
+non-PBDMA engine need already be at some point of coherency before this
+operation to be coherent.
+
+ SYS_MEMBAR - This implies the MEMBAR type above but in addition to having
+accesses reach coherence with all GPU clients, this further waits for accesses
+to be coherent with respect to the CPU and peer GPUs as well. After this
+operation is complete, reads from the CPU or peer GPUs will see prior writes
+from this PBDMA, and writes from the CPU or peer GPUs cannot modify the return
+data of earlier reads from this PBDMA (with the exception of CPU reflected
+writes, which can modify earlier reads). Note SYS_MEMBAR is really only needed
+to guarantee ordering with off-chip clients. For on-chip clients such as the
+graphics engine or copy engine, accesses to sysmem will be coherent with just a
+MEMBAR operation. SYS_MEMBAR provides the same function as
+OPERATION_SYSMEMBAR_FLUSH on previous architectures.
+ WARNING: As described above, SYS_MEMBAR will not prevent CPU reflected
+writes issued after the SYS_MEMBAR from clobbering the return data of reads
+issued before the SYS_MEMBAR. To handle this case, the invalidate must be
+followed with a separate L2_WAIT_FOR_SYS_PENDING_READS mem op.
+
+
+
+L2*
+---
+
+ These values initiate a cache management operation -- see above. All other
+fields must be 0; there are no configuration options.
+
+
+
+
+The ACCESS_COUNTER_CLR operation
+--------------------------------
+ When MEM_OP_D_OPERATION is ACCESS_COUNTER_CLR, Host will request to clear
+the the page access counters. There are two types of access counters - MIMC and
+MOMC. This operation can be issued to clear all counters of all types, all
+counters of a specified type (MIMC or MOMC), or a specific counter indicated by
+counter type, bank and notify tag.
+ This operation is privileged and can only be executed from channels with
+NV_PPBDMA_CONFIG_AUTH_LEVEL set to PRIVILEGED. This is configured via the
+NV_RAMFC_CONFIG dword in the channel's RAMFC during channel setup.
+
+The operation uses the following fields in the MEM_OP_* methods:
+ACCESS_COUNTER_CLR_TYPE (TY) : type of the access counter clear
+ operation
+ACCESS_COUNTER_CLR_TARGETED_TYPE (T) : type of the access counter for
+ targeted operation
+ACCESS_COUNTER_CLR_TARGETED_NOTIFY_TAG : 20 bits notify tag of the access
+ counter for targeted operation
+ACCESS_COUNTER_CLR_TARGETED_BANK : 4 bits bank number of the access
+ counter for targeted operation
+
+
+
+
+
+MEM_OP method field defines:
+
+MEM_OP_A [method] - Memory Operation Method 1/4 - see above for documentation
+
+#define NV_UDMA_MEM_OP_A 0x00000028 /* -W-4R */
+
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_CANCEL_TARGET_CLIENT_UNIT_ID 5:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_INVALIDATION_SIZE 5:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_CANCEL_TARGET_GPC_ID 10:6 /* -W-VF */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_CANCEL_MMU_ENGINE_ID 6:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_SYSMEMBAR 11:11 /* -W-VF */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_SYSMEMBAR_EN 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_SYSMEMBAR_DIS 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_A_TLB_INVALIDATE_TARGET_ADDR_LO 31:12 /* -W-VF */
+
+
+MEM_OP_B [method] - Memory Operation Method 2/4 - see above for documentation
+
+#define NV_UDMA_MEM_OP_B 0x0000002c /* -W-4R */
+
+#define NV_UDMA_MEM_OP_B_TLB_INVALIDATE_TARGET_ADDR_HI 31:0 /* -W-VF */
+
+
+MEM_OP_C [method] - Memory Operation Method 3/4 - see above for documentation
+
+#define NV_UDMA_MEM_OP_C 0x00000030 /* -W-4R */
+
+Membar configuration field. Note: overlaps MMU_TLB_INVALIDATE* config fields.
+#define NV_UDMA_MEM_OP_C_MEMBAR_TYPE 2:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_MEMBAR_TYPE_SYS_MEMBAR 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_MEMBAR_TYPE_MEMBAR 0x00000001 /* -W--V */
+Invalidate TLB entries for ONE page directory base, or for ALL of them.
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB 0:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_ONE 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_ALL 0x00000001 /* -W--V */
+Invalidate GPC MMU TLB entries or not (Hub-MMU entries are always invalidated).
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_GPC 1:1 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_GPC_ENABLE 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_GPC_DISABLE 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY 4:2 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_NONE 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_START 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_START_ACK_ALL 0x00000002 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_CANCEL_TARGETED 0x00000003 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_CANCEL_GLOBAL 0x00000004 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_REPLAY_CANCEL_VA_GLOBAL 0x00000005 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACK_TYPE 6:5 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACK_TYPE_NONE 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACK_TYPE_GLOBALLY 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACK_TYPE_INTRANODE 0x00000002 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE 9:7 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_READ 0 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_WRITE 1 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_ATOMIC_STRONG 2 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_RSVRVD 3 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_ATOMIC_WEAK 4 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_ATOMIC_ALL 5 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_WRITE_AND_ATOMIC 6 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_ACCESS_TYPE_VIRT_ALL 7 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL 9:7 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_ALL 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_PTE_ONLY 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE0 0x00000002 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE1 0x00000003 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE2 0x00000004 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE3 0x00000005 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE4 0x00000006 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PAGE_TABLE_LEVEL_UP_TO_PDE5 0x00000007 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_APERTURE 11:10 /* -W-VF */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_APERTURE_VID_MEM 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_APERTURE_SYS_MEM_COHERENT 0x00000002 /* -W--V */
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_APERTURE_SYS_MEM_NONCOHERENT 0x00000003 /* -W--V */
+Address[31:12] of page directory for which TLB entries should be invalidated.
+#define NV_UDMA_MEM_OP_C_TLB_INVALIDATE_PDB_ADDR_LO 31:12 /* -W-VF */
+
+#define NV_UDMA_MEM_OP_C_ACCESS_COUNTER_CLR_TARGETED_NOTIFY_TAG 19:0 /* -W-VF */
+
+MEM_OP_D [method] - Memory Operation Method 4/4 - see above for documentation
+(Must be preceded by MEM_OP_A-C.)
+
+#define NV_UDMA_MEM_OP_D 0x00000034 /* -W-4R */
+
+Address[58:32] of page directory for which TLB entries should be invalidated.
+#define NV_UDMA_MEM_OP_D_TLB_INVALIDATE_PDB_ADDR_HI 26:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_D_OPERATION 31:27 /* -W-VF */
+#define NV_UDMA_MEM_OP_D_OPERATION_MEMBAR 0x00000005 /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_MMU_TLB_INVALIDATE 0x00000009 /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_MMU_TLB_INVALIDATE_TARGETED 0x0000000a /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_L2_PEERMEM_INVALIDATE 0x0000000d /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_L2_SYSMEM_INVALIDATE 0x0000000e /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_L2_CLEAN_COMPTAGS 0x0000000f /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_L2_FLUSH_DIRTY 0x00000010 /* -W--V */
+#define NV_UDMA_MEM_OP_D_OPERATION_L2_WAIT_FOR_SYS_PENDING_READS 0x00000015 /* -W--V */
+
+#define NV_UDMA_MEM_OP_D_OPERATION_ACCESS_COUNTER_CLR 0x00000016 /* -W--V */
+
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TYPE 1:0 /* -W-VF */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TYPE_MIMC 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TYPE_MOMC 0x00000001 /* -W--V */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TYPE_ALL 0x00000002 /* -W--V */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TYPE_TARGETED 0x00000003 /* -W--V */
+
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TARGETED_TYPE 2:2 /* -W-VF */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TARGETED_TYPE_MIMC 0x00000000 /* -W--V */
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TARGETED_TYPE_MOMC 0x00000001 /* -W--V */
+
+#define NV_UDMA_MEM_OP_D_ACCESS_COUNTER_CLR_TARGETED_BANK 6:3 /* -W-VF */
+
+
+SET_REF [method] - Set Reference Count Method
+
+ The SET_REF method allows the user to set the reference count
+(NV_PPBDMA_REF_CNT) to a value. The reference count may be monitored to track
+Host's progress through the pushbuffer. Instead of monitoring
+NV_RAMUSERD_TOP_LEVEL_GET, software may put into the method stream SET_REF
+methods that set the reference count to ever increasing values, and then read
+NV_RAMUSERD_REF to determine how far in the stream Host has gone.
+ Before the reference count value is altered, Host waits for the engine to
+be idle (to have completed executing all earlier methods), issues a SysMemBar
+flush, and waits for the flush to complete.
+ While the GPU context is bound to a channel and assigned to a PBDMA unit,
+the reference count value is stored in the NV_PPBDMA_REF register. While the
+GPU context is not assigned to a PBDMA unit, the reference count value is stored
+in the NV_RAMFC_REF field of the RAMFC portion of the GPU context's GPU-instance
+block.
+
+
+#define NV_UDMA_SET_REF 0x00000050 /* -W-4R */
+
+#define NV_UDMA_SET_REF_CNT 31:0 /* -W-VF */
+
+
+
+CRC_CHECK [method] - Method-CRC Check Method
+
+ When debugging a problem in a real chip, it may be useful to determine
+whether a PBDMA unit has sent the proper methods toward the engine. The
+CRC_CHECK method checks whether the cyclic redundancy check value
+calculated over previous methods has an expected value. If the value in the
+NV_PPBDMA_METHOD_CRC register is not equal to NV_UDMA_CRC_CHECK_VALUE, then
+Host initiates an interrupt (NV_PPBDMA_INTR_0_METHODCRC) and stalls. After
+each comparison, the NV_PPBDMA_METHOD_CRC register is cleared.
+ The IEEE 802.3 CRC-32 polynomial (0x04c11db7) is used to calculate CRC
+values. The CRC is calculated over the method subchannel, method address, and
+method data of methods sent to an engine. Host can set both single and dual
+methods to engines. The CRC is calculated as if dual methods were sent as
+two single methods. The CRC is calculated on the byte-stream in little-endian
+order.
+
+
+Pseudocode for CRC calculation is:
+
+ static NVR_U32 table[256];
+ void init() {
+ for (NVR_U32 i = 0; i < 256; i++) { // create crc value for every byte
+ NVR_U32 crc = i << 24;
+ for (int j = 0; j < 8; j++) { // for every bit in the byte
+ if (crc & 0x80000000) crc = (crc << 1) ^ 0x04c11db7
+ else crc = (crc << 1);
+ }
+ table[i] = crc;
+ }
+ }
+ NVR_U32 new_crc(unsigned char byte, NVR_U32 old_crc) {
+ NVR_U32 crc_top_byte = old_crc >> 24;
+ crc_top_byte ^= byte;
+ NVR_U32 new_crc = (old_crc << 8) ^ table[crc_top_byte];
+ return new_crc;
+ }
+
+ This method is used for debug.
+ This method was added in Fermi.
+
+
+#define NV_UDMA_CRC_CHECK 0x0000007c /* -W-4R */
+
+#define NV_UDMA_CRC_CHECK_VALUE 31:0 /* -W-VF */
+
+
+YIELD [method] - Yield Method
+
+ The YIELD method causes a channel to yield the remainder of its timeslice.
+The method's OP field specifies whether the channels' PBDMA timeslice, the
+channel's runlist timeslice, or no timeslice is yielded.
+ If YIELD_OP_RUNLIST_TIMESLICE, then Host will act as if the channel's
+runlist or TSG timeslice expired. Host will exit the TSG and switch to the next
+channel after the TSG on the runlist. If there is no such channel to switch to,
+then YIELD_OP_RUNLIST_TIMESLICE will not cause a switch.
+ When the PBDMA executes a YIELD_OP_RUNLIST_TIMESLICE method, it guarantees
+that it will not execute further methods from the same channel or TSG until the
+channel is restarted by the scheduler. However, note that this does not yield
+the engine timeslice; if the engine is preemptable, the context will continue
+to run on the engine until the remainder of its timeslice expires before Host
+will attempt to preempt it. Also if there is an outstanding ctx load either
+due to ctx_reload or from the other PBDMA in the SCG case, then yielding won't
+take place until the outstanding ctx load finishes or aborts due to a preempt.
+When the ctx load does complete on the other PBDMA, it is possible for that
+PBDMA to execute some small number of additional methods before the runlist
+yield takes effect and that PBDMA halts work for its channel.
+ If NV_UDMA_YIELD_OP_TSG, and if the channel is part of a TSG, then Host
+will switch to the next channel in the same TSG, and if the channel is not part
+of the TSG then this will be treated similar to YIELD_OP_NOP. If there is only
+one channel with work in the TSG, Host will simply reschedule the same channel
+in the TSG. YIELD_OP_TSG does not cause the scheduler to leave the TSG. The TSG
+timeslice (TSG timeslice is equivalent to runlist timeslice for TSGs) counter
+continues to increment through the channel switch and does not restart after
+executing the yield method. When the PBDMA executes a Yield method, it
+guarantees that it will not execute the method following that Yield until the
+channel is restarted by the scheduler.
+ YIELD_OP_NOP is simply a NOP. Neither timeslice is yielded. This was kept
+for compatibility with existing tests; NV_UDMA_NOP is the preferred NOP, but
+also see the universal NOP PB instruction. See the description of
+NV_FIFO_DMA_NOP in the "FIFO_DMA" section of dev_ram.ref.
+
+ If an unknown OP is specified, Host will raise an NV_PPBDMA_INTR_*_METHOD
+interrupt.
+
+
+#define NV_UDMA_YIELD 0x00000080 /* -W-4R */
+
+#define NV_UDMA_YIELD_OP 1:0 /* -W-VF */
+#define NV_UDMA_YIELD_OP_NOP 0x00000000 /* -W--V */
+#define NV_UDMA_YIELD_OP_RUNLIST_TIMESLICE 0x00000002 /* -W--V */
+#define NV_UDMA_YIELD_OP_TSG 0x00000003 /* -W--V */
+
+
+WFI [method] - Wait-for-Idle Method
+
+ The WFI (Wait-For-Idle) method will stall Host from processing any more
+methods on the channel until the engine to which the channel last sent methods
+is idle. Note that the subchannel encoded in the method header is ignored (as
+it is for all Host-only methods) and does NOT specify which engine to idle. In
+Kepler, this is only relevant on runlists that serve multiple engines
+(specifically, the graphics runlist, which also serves GR COPY).
+ The WFI method has a single field SCOPE which specifies the level of WFI
+the Host method performs. ALL waits for all work in the engine from the same
+context to be idle across all classes and subchannels. CURRENT_VEID causes the
+WFI to only apply to work from the same VEID as the current channel. Note for
+engines that do not support VEIDs, CURRENT_VEID works identically to ALL.
+ Note that Host methods ignore the subchannel field in the method. A Host
+WFI method always applies to the engine the channel last sent methods to. If a
+WFI with ALL is specified and the channel last sent work to the GRCE, this will
+only guarantee that GRCE has no work in progress. It is possible that the GR
+context will have work in progress from other VEIDs, or even the current VEID if
+the current channel targets GRCE and has never sent FE methods before. This
+means that if SW wants to idle the graphics pipe for all VEIDs, SW must send a
+method to GR immediately before the WFI method. A GR_NOP is sufficient.
+ Note also that even if the current NV_PPBDMA_TARGET is GRAPHICS and not
+GRCE, there are cases where Host can trivially complete a WFI without sending
+the NV_PMETHOD_HOST_WFI internal method to FE. This can happen when
+
+1. the runlist timeslices to a different TSG just before the WFI method,
+2. the other TSG does a ctxsw request due to methods for FE, and
+3. FECS reports non-preempted in the ctx ack, so CTX_RELOAD doesn't get set.
+
+In that case, when the channel switches back onto the PBDMA, the PBDMA rightly
+concludes that there is no way the context could be non-idle for that channel,
+and therefore filters out the WFI, even if the other PBDMA is sending work to
+other VEIDs. As in the subchannel case, a GR_NOP preceding the WFI is
+sufficient to ensure that a SCOPE_ALL_VEID WFI will be sent to FE regardless of
+timeslicing as long as the NOP and the WFI are submitted as part of the same
+GP_PUT update. This is ensured by the semantics of the channel state
+SHOULD_SEND_HOST_TSG_EVENT behaving like CTX_RELOAD: the GR_NOP causes the PBDMA
+to set the SHOULD_SEND_HOST_TSG_EVENT state, so even a channel or context switch
+will still result in the PBDMA having the engine context loaded. Thus the WFI
+will cause the HOST_WFI internal method to be sent to FE.
+
+
+#define NV_UDMA_WFI 0x00000078 /* -W-4R */
+
+#define NV_UDMA_WFI_SCOPE 0:0 /* -W-VF */
+#define NV_UDMA_WFI_SCOPE_CURRENT_VEID 0x00000000 /* -W--V */
+#define NV_UDMA_WFI_SCOPE_ALL 0x00000001 /* -W--V */
+#define NV_UDMA_WFI_SCOPE_ALL_VEID 0x00000001 /* */
+
+
+
+CLEAR_FAULTED [method] - Clear Faulted Method
+
+ The CLEAR_FAULTED method clears a channel's PCCSR PBDMA_FAULTED or
+ENG_FAULTED bit. These bits are set by Host in response to a PBDMA fault or
+engine fault respectively on the specified channel; see dev_fifo.ref.
+
+ The CHID field specifies the ID of the channel whose FAULTED bit is to be
+cleared.
+
+ The TYPE field specifies which FAULTED bit is to be cleared: either
+PBDMA_FAULTED or ENG_FAULTED.
+
+ When Host receives a CLEAR_FAULTED method for a channel, the corresponding
+PCCSR FAULTED bit for the channel should be set. However, due to a race between
+SW seeing the fault message from MMU and handling the fault and sending the
+CLEAR_FAULT method verses Host seeing the fault from CE or MMU and setting the
+FAULTED bit, it is possible for the CLEAR_FAULTED method to arrive before the
+FAULTED bit is set. Host will handle a CLEAR_FAULTED method according to the
+following cases:
+
+ a. The FAULTED bit specified by TYPE is set. Host will clear the bit and
+retire the CLEAR_FAULTED method.
+
+ b. If the bit is not set, the PBDMA will continue to retry the
+CLEAR_FAULTED method on every PTIMER microsecond tick by rechecking the FAULTED
+bit of the target channel. Once the bit is set, the PBDMA will clear the bit and
+retire the method. The execution of the fault handling channel will stall on the
+CLEAR_FAULTED method until the FAULTED bit for the target channel is set. The
+PBDMA will retry the CLEAR_FAULTED method approximately every microsecond.
+
+ c. If the fault handling channel's timeslice expires while stalled on a
+CLEAR_FAULTED method, the channel will switch out. Once rescheduled, the
+channel will resume retrying the CLEAR_FAULTED method.
+
+ d. To avoid indefinitely waiting for the CLEAR_FAULTED method to retire
+(likely due to wrongly injected CLEAR_FAULTED method due to a SW bug), Host
+has a timeout mechanism to inform SW of a potential bug. This timeout is
+controlled by NV_PFIFO_CLEAR_FAULTED_TIMEOUT; see dev_fifo.ref for details.
+
+ e. When a CLEAR_FAULTED timeout is detected, Host will raise a stalling
+interrupt by setting the NV_PPBDMA_INTR_0_CLEAR_FAULTED_ERROR field. The
+address of the invalid CLEAR_FAULTED method will be in NV_PPBDMA_METHOD0, and
+its payload will be in NV_PPBDMA_DATA0.
+
+ Note Setting the timeout value too low could result in false stalling
+interrupts to SW. The timeout should be set equal to NV_PFIFO_FB_TIMEOUT_PERIOD.
+
+ Note the CLEAR_FAULTED timeout mechanism uses the same PBDMA registers and
+RAMFC fields as the semaphore acquire timeout mechanism:
+NV_PPBDMA_SEM_EXECUTE_ACQUIRE_FAIL is set TRUE when the first attempt fails, and
+the NV_PPBDMA_ACQUIRE_DEADLINE is loaded with the sum of the current PTIMER and
+the NV_PFIFO_CLEAR_FAULTED_TIMEOUT. The ACQUIRE_FAIL bit is reset to FALSE when
+the CLEAR_FAULTED method times out or succeeds.
+
+
+#define NV_UDMA_CLEAR_FAULTED 0x00000084 /* -W-4R */
+
+#define NV_UDMA_CLEAR_FAULTED_CHID 11:0 /* -W-VF */
+#define NV_UDMA_CLEAR_FAULTED_TYPE 31:31 /* -W-VF */
+#define NV_UDMA_CLEAR_FAULTED_TYPE_PBDMA_FAULTED 0x00000000 /* -W--V */
+#define NV_UDMA_CLEAR_FAULTED_TYPE_ENG_FAULTED 0x00000001 /* -W--V */
+
+
+
+ Addresses that are not defined in this device are reserved. Those below
+0x100 are reserved for future Host methods. Addresses 0x100 and beyond are
+reserved for the engines served by Host.
diff --git a/manuals/volta/gv100/dev_ram.ref.txt b/manuals/volta/gv100/dev_ram.ref.txt
new file mode 100644
index 0000000..e80d9c0
--- /dev/null
+++ b/manuals/volta/gv100/dev_ram.ref.txt
@@ -0,0 +1,1269 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+2 - GPU INSTANCE RAM (RAMIN)
+==============================
+
+ A GPU contains a block called "XVE" that manages the interface with PCI, a
+block called "Host" that fetches graphics instructions, blocks called "engines"
+that execute graphics instructions, and blocks that manage the interface with
+memory.
+
+ .-----. .------.
+ | |<------------------>| |
+ | | | |
+ | | .---------. | |
+ | |<--->| Engine1 |<---| |
+ | | `---------' | |
+.---------. | | | |
+| GPU | | | .---------. | Host |
+| Local |<-->| FB |<--->| Engine2 |<---| |
+| Memory | | MMU | `---------' | |
+`---------' | Hub | ... | | .--------.
+ | | .---------. | | | System |
+ | |<--->| EngineN |<---| | | Memory |
+ | | `---------' `------' `--------'
+ | | ^ ^
+ | | | |
+.---------. | | .--V--. PCI .--V--. .-----.
+| Display |<-->| |<------------------>| XVE |<--->| NB |<--->| CPU |
+`---------' `-----' `-----' `-----' `-----'
+
+ A GPU context is a virtualization of the GPU for a particular software
+application. A GPU instance block is a block of memory that contains the state
+for a GPU context. A GPU context's instance block consists of Host state,
+pointers to each engine's state, and memory management state. A GPU instance
+block also contains a pointer to a block of memory that contains that part of a
+GPU context's state that a user-level driver may access. A GPU instance block
+fits within a single 4K-byte page of memory.
+
+ Run List Channel-Map RAM
+ .----------. Ch Id .----------------.
+ | RL Entry0 |----. |Ch0 Inst Blk Ptr|
+ | RL Entry1 | | |Ch1 Inst Blk Ptr|
+ | RL Entry2 | | | ... |
+ | ... | `--->|ChI Inst Blk Ptr|----.
+ | RL EntryN | | ... | |
+ `-----------' |ChN Inst Blk Ptr| |
+ `----------------' |
+ |
+ .-----------------------------------------------'
+ |
+ | GPU Instance Block GPFIFO
+ `-->.-----------------. GP_GET .--------. PB Seg
+ | |------------------------------>|GP Entry| .--------.
+ | Host State | |GP Entry|--->|PB Entry|
+ | (RAMFC) | User-Driver State | | |PB Entry|
+ | | .-------. |GP Entry| | ... |
+ | |------------->|(USERD)| GP_PUT |GP Entry| |PB Entry|
+ | | | |------->`--------' `--------'
+ | | | |
+ +-----------------+ | |
+ | Memory | `-------'
+ | Management |----------. Page Directory Page Table
+ | State | | .-------. .-------.
+ +-----------------+ `-->| PDE | | PTE |
+ | Pointer to | | PDE |------->| PTE |
+ | Engine0 |--------. | ... | | ... |
+ | State | | | PDE | | PTE |
+ +-----------------+ | `-------' `-------'
+ | Pointer to | |
+ | Engine1 |-----. | Engine0 State
+ | State | | | .-------.
+ +-----------------+ | `---->| |
+ ... | `-------'
+ +-----------------+ |
+ | Pointer to | | Engine1 State
+ | EngineN |--. | .-------.
+ | State | | `------->| |
+ `-----------------' | `-------'
+ | ...
+ |
+ | EngineN State
+ | .-------.
+ `---------->| |
+ `-------'
+
+ The GPU context's Host state occupies the first 128 double words of an
+instance block. A GPU context's Host state is called "RAMFC". Please see
+the NV_RAMFC section below for a description of Host state.
+
+ The GPU context's memory-management state defines the virtual address space
+that the GPU context uses. Memory management state consists of page and
+directory tables (that specify the mapping between virtual addresses and
+physical addresses, and the attributes of memory pages), and the limit of the
+virtual address space. The NV_RAMIN_PAGE_DIR_BASE entry contains the address of
+base of the GPU context's page directory table (PDB). NV_RAMIN_PAGE_DIR_BASE is
+4K-byte aligned.
+
+ The NV_RAMIN_ENG*_WFI_PTR entry contains the address of a block of memory
+for storing an engine's context state. Blocks of memory that contain engine state
+are 4K-byte aligned. Only one engine context is supported per instance block.
+
+ The NV_RAMIN_ENG*_CS field is deprecated, it was used to indicate whether
+GPU state should be restored from the FGCS pointer or from the WFI CS pointer.
+Engines only need/support one CTXSW pointer and all state is stored there
+whether a WFI CS or other form of preemption was performed. This field must
+always be set to WFI for legacy reasons, and will eventually be deleted.
+
+
+#define NV_RAMIN /* ----G */
+
+// The instance block must be 4k-aligned.
+#define NV_RAMIN_BASE_SHIFT 12 /* */
+
+// The instance block size fits within a single 4k block.
+#define NV_RAMIN_ALLOC_SIZE 4096 /* */
+
+// Host State
+#define NV_RAMIN_RAMFC (127*32+31):(0*32+0) /* RWXUF */
+
+// Memory-Management State
+
+ The following fields are used for non-VEID engines. The NV_RAMIN_SC_* described later
+ are used for VEID engines.
+
+ NV_RAMIN_PAGE_DIR_BASE_TARGET determines if the top level of the page tables
+ is in video memory or system memory (peer is not allowed), and the CPU cache
+ coherency for system memory.
+ Using INVALID, unbinds the selected engine.
+
+#define NV_RAMIN_PAGE_DIR_BASE_TARGET (128*32+1):(128*32+0) /* RWXUF */
+#define NV_RAMIN_PAGE_DIR_BASE_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_TARGET_INVALID 0x00000001 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+
+ NV_RAMIN_PAGE_DIR_BASE_VOL identifies the volatile behavior
+ of top level of the page table (whether local L2 can cache it or not).
+
+#define NV_RAMIN_PAGE_DIR_BASE_VOL (128*32+2):(128*32+2) /* RWXUF */
+#define NV_RAMIN_PAGE_DIR_BASE_VOL_TRUE 0x00000001 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_VOL_FALSE 0x00000000 /* RW--V */
+
+
+ These bits specify whether the MMU will treats faults as replayable or not.
+ The engine will send these bits to the MMU as part of the instance bind.
+
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_TEX (128*32+4):(128*32+4) /* RWXUF */
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_TEX_DISABLED 0x00000000 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_TEX_ENABLED 0x00000001 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_GCC (128*32+5):(128*32+5) /* RWXUF */
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_GCC_DISABLED 0x00000000 /* RW--V */
+#define NV_RAMIN_PAGE_DIR_BASE_FAULT_REPLAY_GCC_ENABLED 0x00000001 /* RW--V */
+
+ NV_RAMIN_USE_NEW_PT_FORMAT determines which page table format to use.
+ When NV_RAMIN_USE_NEW_PT_FORMAT is false, the page table uses the old format.
+ When NV_RAMIN_USE_NEW_PT_FORMAT is true, the page table uses the new format.
+
+ Volta only supports the new format. Selecting the old format results in an UNBOUND_INSTANCE fault.
+
+
+#define NV_RAMIN_USE_VER2_PT_FORMAT (128*32+10):(128*32+10) /* */
+#define NV_RAMIN_USE_VER2_PT_FORMAT_FALSE 0x00000000 /* */
+#define NV_RAMIN_USE_VER2_PT_FORMAT_TRUE 0x00000001 /* */
+
+ When NV_PFB_PRI_MMU_CTRL_USE_PDB_BIG_PAGE_SIZE is bit TRUE, the bit selects the big page size.
+ When NV_PFB_PRI_MMU_CTRL_USE_PDB_BIG_PAGE_SIZE is bit FALSE, NV_PFB_PRI_MMU_CTRL_VM_PG_SIZE selects the big page size.
+
+ Volta only supports 64KB for big pages. Selecting 128KB for big pages results in an UNBOUND_INSTANCE fault.
+
+#define NV_RAMIN_BIG_PAGE_SIZE (128*32+11):(128*32+11) /* RWXUF */
+#define NV_RAMIN_BIG_PAGE_SIZE_128KB 0x00000000 /* RW--V */
+#define NV_RAMIN_BIG_PAGE_SIZE_64KB 0x00000001 /* RW--V */
+
+ NV_RAMIN_PAGE_DIR_BASE_LO and NV_RAMIN_PAGE_DIR_BASE_HI
+ identify the page directory base (start of the page table)
+ location for this context.
+
+#define NV_RAMIN_PAGE_DIR_BASE_LO (128*32+31):(128*32+12) /* RWXUF */
+#define NV_RAMIN_PAGE_DIR_BASE_HI (129*32+31):(129*32+0) /* RWXUF */
+
+// Single engine pointer channels cannot support multiple
+// engines with CTXSW pointers
+#define NV_RAMIN_ENGINE_CS (132*32+3):(132*32+3) /* */
+#define NV_RAMIN_ENGINE_CS_WFI 0x00000000 /* */
+#define NV_RAMIN_ENGINE_CS_FG 0x00000001 /* */
+#define NV_RAMIN_ENGINE_WFI_TARGET (132*32+1):(132*32+0) /* */
+#define NV_RAMIN_ENGINE_WFI_TARGET_LOCAL_MEM 0x00000000 /* */
+#define NV_RAMIN_ENGINE_WFI_TARGET_SYS_MEM_COHERENT 0x00000002 /* */
+#define NV_RAMIN_ENGINE_WFI_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* */
+#define NV_RAMIN_ENGINE_WFI_MODE (132*32+2):(132*32+2) /* */
+#define NV_RAMIN_ENGINE_WFI_MODE_PHYSICAL 0x00000000 /* */
+#define NV_RAMIN_ENGINE_WFI_MODE_VIRTUAL 0x00000001 /* */
+#define NV_RAMIN_ENGINE_WFI_PTR_LO (132*32+31):(132*32+12) /* */
+#define NV_RAMIN_ENGINE_WFI_PTR_HI (133*32+7):(133*32+0) /* */
+
+#define NV_RAMIN_ENGINE_WFI_VEID (134*32+(6-1)):(134*32+0) /* */
+#define NV_RAMIN_ENABLE_ATS (135*32+31):(135*32+31) /* RWXUF */
+#define NV_RAMIN_ENABLE_ATS_TRUE 0x00000001 /* RW--V */
+#define NV_RAMIN_ENABLE_ATS_FALSE 0x00000000 /* RW--V */
+#define NV_RAMIN_PASID (135*32+(20-1)):(135*32+0) /* RWXUF */
+
+
+ Pointer to a method buffer in BAR2 memory where a faulted engine can save
+out methods. BAR2 accesses are assumed to be virtual, so the address saved here
+is a virtual address.
+
+#define NV_RAMIN_ENG_METHOD_BUFFER_ADDR_LO (136*32+31):(136*32+0) /* RWXUF */
+#define NV_RAMIN_ENG_METHOD_BUFFER_ADDR_HI (137*32+(((49-1)-32))):(137*32+0) /* RWXUF */
+
+
+
+ These entries are used to inform FECS which of the below array of PDBs are
+ valid/filled in and need to subsequently be bound.
+
+ This needs to reserve at least NV_LITTER_NUM_SUBCTX entries. Currently
+ there is enough space reserved for 64 subcontexts.
+#define NV_RAMIN_SC_PDB_VALID(i) (166*32+i):(166*32+i) /* RWXUF */
+#define NV_RAMIN_SC_PDB_VALID__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PDB_VALID_FALSE 0x00000000 /* RW--V */
+#define NV_RAMIN_SC_PDB_VALID_TRUE 0x00000001 /* RW--V */
+
+// Memory-Management VEID array
+
+ The NV_RAMIN_SC_PAGE_DIR_BASE_* entries are an array of page table settings
+ for each subcontext. When a context supports subcontexts, the page table
+ information for a given VEID/Subcontext needs to be filled in or else page
+ faults will result on access.
+
+ These properties for the page table must be filled in for all channels
+ sharing the same context as any channel's NV_RAMIN may be used to load the
+ context.
+
+ The non-subcontext page table information such as NV_RAMIN_PAGE_DIR_BASE*
+ are used by non-subcontext engines and clients such as Host, CE, or the
+ video engines.
+
+ NV_RAMIN_SC_PAGE_DIR_BASE_TARGET(i) determines if the top level of the page tables
+ is in video memory or system memory (peer is not allowed), and the CPU cache
+ coherency for system memory.
+ Using INVALID, unbinds the selected subcontext.
+
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET(i) ((168+(i)*4)*32+1):((168+(i)*4)*32+0) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET_INVALID 0x00000001 /* RW--V */ // Note: INVALID should match PEER
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+
+ NV_RAMIN_SC_PAGE_DIR_BASE_VOL(i) identifies the volatile behavior
+ of the top level of the page table (whether local L2 can cache it or not).
+
+#define NV_RAMIN_SC_PAGE_DIR_BASE_VOL(i) ((168+(i)*4)*32+2):((168+(i)*4)*32+2) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_VOL__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_VOL_TRUE 0x00000001 /* RW--V */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_VOL_FALSE 0x00000000 /* RW--V */
+
+ NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_TEX(i) and
+ NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_GCC(i) bits specify whether
+ the MMU will treats faults from TEX and GCC as replayable or
+ not. Based on that fault packets are written into replayable fault
+ buffer (or not) and faulting requests are put into replay request
+ buffer (or not).
+ The last bind that does not unbind a sub-context determines the REPLAY_TEX and REPLAY_GCC for all sub-contexts.
+
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_TEX(i) ((168+(i)*4)*32+4):((168+(i)*4)*32+4) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_TEX__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_TEX_DISABLED 0x00000000 /* RW--V */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_TEX_ENABLED 0x00000001 /* RW--V */
+
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_GCC(i) ((168+(i)*4)*32+5):((168+(i)*4)*32+5) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_GCC__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_GCC_DISABLED 0x00000000 /* RW--V */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_FAULT_REPLAY_GCC_ENABLED 0x00000001 /* RW--V */
+
+ NV_RAMIN_SC_USE_VER2_PT_FORMAT determines which page table format to use.
+ When NV_RAMIN_SC_USE_VER2_PT_FORMAT is false, the page table uses
+ the old format(2-level page table). When
+ NV_RAMIN_SC_USE_VER2_PT_FORMAT is true, the page table uses the
+ new format (5-level 49-bit VA format).
+ The last bind that does not unbind a sub-context determines the page table format for all sub-contexts.
+ Volta only supports the new format. Selecting the old format results in an UNBOUND_INSTANCE fault.
+
+#define NV_RAMIN_SC_USE_VER2_PT_FORMAT(i) ((168+(i)*4)*32+10):((168+(i)*4)*32+10) /* RWXUF */
+#define NV_RAMIN_SC_USE_VER2_PT_FORMAT__SIZE_1 64 /* */
+#define NV_RAMIN_SC_USE_VER2_PT_FORMAT_FALSE 0x00000000 /* RW--V */
+#define NV_RAMIN_SC_USE_VER2_PT_FORMAT_TRUE 0x00000001 /* RW--V */
+
+ The last bind that does not unbind a sub-context determines the big page size for all sub-contexts.
+ Volta only supports 64KB for big pages.
+
+#define NV_RAMIN_SC_BIG_PAGE_SIZE(i) ((168+(i)*4)*32+11):((168+(i)*4)*32+11) /* RWXUF */
+#define NV_RAMIN_SC_BIG_PAGE_SIZE__SIZE_1 64 /* */
+#define NV_RAMIN_SC_BIG_PAGE_SIZE_64KB 0x00000001 /* RW--V */
+
+ NV_RAMIN_SC_PAGE_DIR_BASE_LO(i) and NV_RAMIN_SC_PAGE_DIR_BASE_HI(i)
+ identify the page directory base (start of the page table)
+ location for subcontext i.
+
+#define NV_RAMIN_SC_PAGE_DIR_BASE_LO(i) ((168+(i)*4)*32+31):((168+(i)*4)*32+12) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_LO__SIZE_1 64 /* */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_HI(i) ((169+(i)*4)*32+31):((169+(i)*4)*32+0) /* RWXUF */
+#define NV_RAMIN_SC_PAGE_DIR_BASE_HI__SIZE_1 64 /* */
+
+
+
+
+
+ NV_RAMIN_SC_ENABLE_ATS(i) tells whether subcontext i is ATS
+ enabled or not. In case, set to TRUE, GMMU will look for VA->PA
+ translations into both GMMU and ATS page tables.
+ ATS can be enabled or disabled per subcontext.
+
+#define NV_RAMIN_SC_ENABLE_ATS(i) ((170+(i)*4)*32+31):((170+(i)*4)*32+31) /* RWXUF */
+
+ NV_RAMIN_SC_PASID(i) identifies the PASID (process address space
+ ID) in CPU for subcontext i. PASID is used to get ATS
+ translation when ATS page table lookup is needed. During ATS TLB
+ shootdown, PASID is also used to match against the one coming with
+ shootdown request.
+
+#define NV_RAMIN_SC_PASID(i) ((170+(i)*4)*32+(20-1)):((170+(i)*4)*32+0) /* RWXUF */
+
+
+
+
+3 - FIFO CONTEXT RAM (RAMFC)
+==============================
+
+
+ The NV_RAMFC part of a GPU-instance block contains Host's part of a virtual
+GPU's state. Host is referred to as "FIFO". "FC" stands for FIFO Context.
+When Host switches from serving one GPU context to serving a second, Host saves
+state for the first GPU context to the first GPU context's RAMFC area, and loads
+state for the second GPU context from the second GPU context's RAMFC area.
+
+ RAMFC is located at NV_RAMIN_RAMFC within the GPU instance block. In
+Kepler, this is at the start of the block. RAMFC is 4KB aligned.
+
+ Every Host word entry in RAMFC directly corresponds to a PRI-accessible
+register. For a description of the contents of a RAMFC entry, please see the
+description of the corresponding register in "manuals/dev_pbdma.ref". The
+offsets of the fields within each entry in RAMFC match those of the
+corresponding register in the associated PBDMA unit's PRI space.
+
+
+ RAMFC Entry PBDMA Register
+ ------------------------------- ----------------------------------
+ NV_RAMFC_SIGNATURE NV_PPBDMA_SIGNATURE(i)
+ NV_RAMFC_GP_BASE NV_PPBDMA_GP_BASE(i)
+ NV_RAMFC_GP_BASE_HI NV_PPBDMA_GP_BASE_HI(i)
+ NV_RAMFC_GP_FETCH NV_PPBDMA_GP_FETCH(i)
+ NV_RAMFC_GP_GET NV_PPBDMA_GP_GET(i)
+ NV_RAMFC_GP_PUT NV_PPBDMA_GP_PUT(i)
+ NV_RAMFC_PB_FETCH NV_PPBDMA_PB_FETCH(i)
+ NV_RAMFC_PB_FETCH_HI NV_PPBDMA_PB_FETCH_HI(i)
+ NV_RAMFC_PB_GET NV_PPBDMA_GET(i)
+ NV_RAMFC_PB_GET_HI NV_PPBDMA_GET_HI(i)
+ NV_RAMFC_PB_PUT NV_PPBDMA_PUT(i)
+ NV_RAMFC_PB_PUT_HI NV_PPBDMA_PUT_HI(i)
+ NV_RAMFC_PB_TOP_LEVEL_GET NV_PPBDMA_TOP_LEVEL_GET(i)
+ NV_RAMFC_PB_TOP_LEVEL_GET_HI NV_PPBDMA_TOP_LEVEL_GET_HI(i)
+ NV_RAMFC_GP_CRC NV_PPBDMA_GP_CRC(i)
+ NV_RAMFC_PB_HEADER NV_PPBDMA_PB_HEADER(i)
+ NV_RAMFC_PB_COUNT NV_PPBDMA_PB_COUNT(i)
+ NV_RAMFC_PB_CRC NV_PPBDMA_PB_CRC(i)
+ NV_RAMFC_SUBDEVICE NV_PPBDMA_SUBDEVICE(i)
+ NV_RAMFC_METHOD0 NV_PPBDMA_METHOD0(i)
+ NV_RAMFC_METHOD1 NV_PPBDMA_METHOD1(i)
+ NV_RAMFC_METHOD2 NV_PPBDMA_METHOD2(i)
+ NV_RAMFC_METHOD3 NV_PPBDMA_METHOD3(i)
+ NV_RAMFC_DATA0 NV_PPBDMA_DATA0(i)
+ NV_RAMFC_DATA1 NV_PPBDMA_DATA1(i)
+ NV_RAMFC_DATA2 NV_PPBDMA_DATA2(i)
+ NV_RAMFC_DATA3 NV_PPBDMA_DATA3(i)
+ NV_RAMFC_TARGET NV_PPBDMA_TARGET(i)
+ NV_RAMFC_METHOD_CRC NV_PPBDMA_METHOD_CRC(i)
+ NV_RAMFC_REF NV_PPBDMA_REF(i)
+ NV_RAMFC_RUNTIME NV_PPBDMA_RUNTIME(i)
+ NV_RAMFC_SEM_ADDR_LO NV_PPBDMA_SEM_ADDR_LO(i)
+ NV_RAMFC_SEM_ADDR_HI NV_PPBDMA_SEM_ADDR_HI(i)
+ NV_RAMFC_SEM_PAYLOAD_LO NV_PPBDMA_SEM_PAYLOAD_LO(i)
+ NV_RAMFC_SEM_PAYLOAD_HI NV_PPBDMA_SEM_PAYLOAD_HI(i)
+ NV_RAMFC_SEM_EXECUTE NV_PPBDMA_SEM_EXECUTE(i)
+ NV_RAMFC_ACQUIRE_DEADLINE NV_PPBDMA_ACQUIRE_DEADLINE(i)
+ NV_RAMFC_ACQUIRE NV_PPBDMA_ACQUIRE(i)
+ NV_RAMFC_MEM_OP_A NV_PPBDMA_MEM_OP_A(i)
+ NV_RAMFC_MEM_OP_B NV_PPBDMA_MEM_OP_B(i)
+ NV_RAMFC_MEM_OP_C NV_PPBDMA_MEM_OP_C(i)
+ NV_RAMFC_USERD NV_PPBDMA_USERD(i)
+ NV_RAMFC_USERD_HI NV_PPBDMA_USERD_HI(i)
+ NV_RAMFC_HCE_CTRL NV_PPBDMA_HCE_CTRL(i)
+ NV_RAMFC_CONFIG NV_PPBDMA_CONFIG(i)
+ NV_RAMFC_SET_CHANNEL_INFO NV_PPBDMA_SET_CHANNEL_INFO(i)
+ ------------------------------- ----------------------------------
+
+#define NV_RAMFC /* ----G */
+#define NV_RAMFC_GP_PUT (0*32+31):(0*32+0) /* RWXUF */
+#define NV_RAMFC_MEM_OP_A (1*32+31):(1*32+0) /* RWXUF */
+#define NV_RAMFC_USERD (2*32+31):(2*32+0) /* RWXUF */
+#define NV_RAMFC_USERD_HI (3*32+31):(3*32+0) /* RWXUF */
+#define NV_RAMFC_SIGNATURE (4*32+31):(4*32+0) /* RWXUF */
+#define NV_RAMFC_GP_GET (5*32+31):(5*32+0) /* RWXUF */
+#define NV_RAMFC_PB_GET (6*32+31):(6*32+0) /* RWXUF */
+#define NV_RAMFC_PB_GET_HI (7*32+31):(7*32+0) /* RWXUF */
+#define NV_RAMFC_PB_TOP_LEVEL_GET (8*32+31):(8*32+0) /* RWXUF */
+#define NV_RAMFC_PB_TOP_LEVEL_GET_HI (9*32+31):(9*32+0) /* RWXUF */
+#define NV_RAMFC_REF (10*32+31):(10*32+0) /* RWXUF */
+#define NV_RAMFC_RUNTIME (11*32+31):(11*32+0) /* RWXUF */
+#define NV_RAMFC_ACQUIRE (12*32+31):(12*32+0) /* RWXUF */
+#define NV_RAMFC_ACQUIRE_DEADLINE (13*32+31):(13*32+0) /* RWXUF */
+#define NV_RAMFC_SEM_ADDR_HI (14*32+31):(14*32+0) /* RWXUF */
+#define NV_RAMFC_SEM_ADDR_LO (15*32+31):(15*32+0) /* RWXUF */
+#define NV_RAMFC_SEM_PAYLOAD_LO (16*32+31):(16*32+0) /* RWXUF */
+#define NV_RAMFC_SEM_EXECUTE (17*32+31):(17*32+0) /* RWXUF */
+#define NV_RAMFC_GP_BASE (18*32+31):(18*32+0) /* RWXUF */
+#define NV_RAMFC_GP_BASE_HI (19*32+31):(19*32+0) /* RWXUF */
+#define NV_RAMFC_GP_FETCH (20*32+31):(20*32+0) /* RWXUF */
+#define NV_RAMFC_PB_FETCH (21*32+31):(21*32+0) /* RWXUF */
+#define NV_RAMFC_PB_FETCH_HI (22*32+31):(22*32+0) /* RWXUF */
+#define NV_RAMFC_PB_PUT (23*32+31):(23*32+0) /* RWXUF */
+#define NV_RAMFC_PB_PUT_HI (24*32+31):(24*32+0) /* RWXUF */
+#define NV_RAMFC_MEM_OP_B (25*32+31):(25*32+0) /* RWXUF */
+#define NV_RAMFC_RESERVED26 (26*32+31):(26*32+0) /* RWXUF */
+#define NV_RAMFC_RESERVED27 (27*32+31):(27*32+0) /* RWXUF */
+#define NV_RAMFC_RESERVED28 (28*32+31):(28*32+0) /* RWXUF */
+#define NV_RAMFC_GP_CRC (29*32+31):(29*32+0) /* RWXUF */
+#define NV_RAMFC_PB_HEADER (33*32+31):(33*32+0) /* RWXUF */
+#define NV_RAMFC_PB_COUNT (34*32+31):(34*32+0) /* RWXUF */
+#define NV_RAMFC_SUBDEVICE (37*32+31):(37*32+0) /* RWXUF */
+#define NV_RAMFC_PB_CRC (38*32+31):(38*32+0) /* RWXUF */
+#define NV_RAMFC_SEM_PAYLOAD_HI (39*32+31):(39*32+0) /* RWXUF */
+#define NV_RAMFC_MEM_OP_C (40*32+31):(40*32+0) /* RWXUF */
+#define NV_RAMFC_RESERVED20 (41*32+31):(41*32+0) /* RWXUF */
+#define NV_RAMFC_RESERVED21 (42*32+31):(42*32+0) /* RWXUF */
+#define NV_RAMFC_TARGET (43*32+31):(43*32+0) /* RWXUF */
+#define NV_RAMFC_METHOD_CRC (44*32+31):(44*32+0) /* RWXUF */
+#define NV_RAMFC_METHOD0 (48*32+31):(48*32+0) /* RWXUF */
+#define NV_RAMFC_DATA0 (49*32+31):(49*32+0) /* RWXUF */
+#define NV_RAMFC_METHOD1 (50*32+31):(50*32+0) /* RWXUF */
+#define NV_RAMFC_DATA1 (51*32+31):(51*32+0) /* RWXUF */
+#define NV_RAMFC_METHOD2 (52*32+31):(52*32+0) /* RWXUF */
+#define NV_RAMFC_DATA2 (53*32+31):(53*32+0) /* RWXUF */
+#define NV_RAMFC_METHOD3 (54*32+31):(54*32+0) /* RWXUF */
+#define NV_RAMFC_DATA3 (55*32+31):(55*32+0) /* RWXUF */
+#define NV_RAMFC_HCE_CTRL (57*32+31):(57*32+0) /* RWXUF */
+#define NV_RAMFC_CONFIG (61*32+31):(61*32+0) /* RWXUF */
+#define NV_RAMFC_SET_CHANNEL_INFO (63*32+31):(63*32+0) /* RWXUF */
+
+#define NV_RAMFC_BASE_SHIFT 12 /* */
+
+ Size of the full range of RAMFC in bytes.
+#define NV_RAMFC_SIZE_VAL 0x00000200 /* ----C */
+
+4 - USER-DRIVER ACCESSIBLE RAM (RAMUSERD)
+=========================================
+
+ A user-level driver is allowed to access only a small portion of a GPU
+context's state. The portion of a GPU context's state that a user-level driver
+can access is stored in a block of memory called NV_RAMUSERD. NV_RAMUSERD is a
+user-level driver's window into NV_RAMFC. The NV_RAMUSERD state for each GPU
+context is stored in an aligned NV_RAMUSERD_CHAN_SIZE-byte block of memory.
+
+ To submit more methods, a user driver writes a PB segment to
+memory, writes a GP entry that points to the PB segment, updates GP_PUT in
+RAMUSERD, and writes the channel's handle to the
+NV_USERMODE_NOTIFY_CHANNEL_PENDING register (see dev_usermode.ref).
+
+ The RAMUSERD data structure is updated at regular intervals as controlled
+by the NV_PFIFO_USERD_WRITEBACK setting (see dev_fifo.ref). For a particular
+channel, RAMUSERD writeback can be disabled and it is reccomended that SW track
+pushbuffer and channel progress via Host WFI_DIS semaphores rather than reading
+the RAMUSERD data structure.
+
+ When write-back is enabled a user driver can check the GPU progress in
+executing a channel's PB segments. The driver can use:
+ * GP_GET to monitor the index of the next GP entry the GPU will process
+ * PB_GET to monitor the address of the next PB entry the GPU will process
+ * TOP_LEVEL_GET (see NV_PPBDMA_TOP_LEVEL_GET) to monitor the address of the
+ next "top-level" (non-SUBROUTINE) PB entry the GPU will process
+ * REF to monitor the current "reference count" value see NV_PPBDMA_REF.
+
+ Each entry in RAMUSERD corresponds to a PRI-accessible PBDMA register in Host.
+For a description of the behavior and contents of a RAMUSERD entry, please see
+the description of the corresponding register in "manuals/dev_pbdma.ref".
+
+ RAMUSERD Entry PBDMA Register Access
+ ------------------------------- ----------------------------- ----------
+ NV_RAMUSERD_GP_PUT NV_PPBDMA_GP_PUT(i) Read/Write
+ NV_RAMUSERD_GP_GET NV_PPBDMA_GP_GET(i) Read-only
+ NV_RAMUSERD_GET NV_PPBDMA_GET(i) Read-only
+ NV_RAMUSERD_GET_HI NV_PPBDMA_GET_HI(i) Read-only
+ NV_RAMUSERD_PUT NV_PPBDMA_PUT(i) Read-only
+ NV_RAMUSERD_PUT_HI NV_PPBDMA_PUT_HI(i) Read-only
+ NV_RAMUSERD_TOP_LEVEL_GET NV_PPBDMA_TOP_LEVEL_GET(i) Read-only
+ NV_RAMUSERD_TOP_LEVEL_GET_HI NV_PPBDMA_TOP_LEVEL_GET_HI(i) Read-only
+ NV_RAMUSERD_REF NV_PPBDMA_REF(i) Read-only
+ ------------------------------- ----------------------------- ----------
+
+ A user driver may write to NV_RAMUSERD_GP_PUT to kick off more work in a
+channel. Although writes to the other, read-only, entries can alter memory,
+writes to those entries will not affect the operation of the GPU, and can be
+overwritten by the GPU.
+
+ When Host loads its part of a GPU context's state from RAMFC memory, it
+may not immediately read RAMUSERD_GP_PUT. Host can use the GP_PUT values from
+RAMFC directly from RAMFC while waiting for the RAMUSERD_GP_PUT to synchronize.
+Because reads of RAMUSERD_GP_PUT can be delayed, the value in NV_PPBDMA_GP_PUT
+can be older than the value in NV_RAMUSERD_GP_PUT.
+
+ When Host saves a GPU context's state to NV_RAMFC, it also writes to
+NV_RAMUSERD the values of the entries other than GP_PUT.
+Because Host does not continuously write the read-only RAMFC entries, the
+read-only values in USERD memory can be older than the values in the Host PBDMA
+unit.
+
+#define NV_RAMUSERD /* ----G */
+#define NV_RAMUSERD_PUT (16*32+31):(16*32+0) /* RWXUF */
+#define NV_RAMUSERD_GET (17*32+31):(17*32+0) /* RWXUF */
+#define NV_RAMUSERD_REF (18*32+31):(18*32+0) /* RWXUF */
+#define NV_RAMUSERD_PUT_HI (19*32+31):(19*32+0) /* RWXUF */
+#define NV_RAMUSERD_TOP_LEVEL_GET (22*32+31):(22*32+0) /* RWXUF */
+#define NV_RAMUSERD_TOP_LEVEL_GET_HI (23*32+31):(23*32+0) /* RWXUF */
+#define NV_RAMUSERD_GET_HI (24*32+31):(24*32+0) /* RWXUF */
+#define NV_RAMUSERD_GP_GET (34*32+31):(34*32+0) /* RWXUF */
+#define NV_RAMUSERD_GP_PUT (35*32+31):(35*32+0) /* RWXUF */
+#define NV_RAMUSERD_BASE_SHIFT 9 /* */
+#define NV_RAMUSERD_CHAN_SIZE 512 /* */
+
+
+
+
+5 - RUN-LIST RAM (RAMRL)
+========================
+
+ Software specifies the GPU contexts that hardware should "run" by writing a
+list of entries (known as a "runlist") to a 4k-aligned area of memory (beginning
+at NV_PFIFO_RUNLIST_BASE), and by notifying Host that a new list is available
+(by writing to NV_PFIFO_RUNLIST).
+ Submission of a new runlist causes Host to expire the timeslice of all work
+scheduled by the previous runlist, allowing it to schedule the channels present
+in the new runlist once they are fetched. SW can check the status of the runlist
+by polling NV_PFIFO_ENG_RUNLIST_PENDING. (see dev_fifo.ref NV_PFIFO_RUNLIST for
+a full description of the runlist submit mechanism).
+ Runlists can be stored in system memory or video memory (as specified by
+NV_PFIFO_RUNLIST_BASE_TARGET). If a runlist is stored in video memory, software
+will have to execute flush or read the last entry written before submitting the
+runlist to Host to guarantee coherency .
+ The size of a runlist entry data structure is 16 bytes. Each entry
+specifies either a channel entry or a TSG header; the type is determined by the
+NV_RAMRL_ENTRY_TYPE.
+
+
+Runlist Channel Entry Type:
+
+ A runlist entry of type NV_RAMRL_ENTRY_TYPE_CHAN specifies a channel to
+run. All such entries must occur within the span of some TSG as specified by
+the NV_RAMRL_ENTRY_TYPE_TSG described below. If a channel entry is encountered
+outside a TSG, Host will raise the NV_PFIFO_INTR_SCHED_ERROR_CODE_BAD_TSG
+interrupt.
+
+ The fields available in a channel runlist entry are as follows (Fig 5.1):
+
+ ENTRY_TYPE (T) : type of this entry: ENTRY_TYPE_CHAN
+ CHID (ID) : identifier of the channel to run (overlays ENTRY_ID)
+ RUNQUEUE_SELECTOR (Q) : selects which PBDMA should run this channel if
+ more than one PBDMA is supported by the runlist
+
+ INST_PTR_LO : lower 20 bits of the 4k-aligned instance block pointer
+ INST_PTR_HI : upper 32 bit of instance block pointer
+ INST_TARGET (TGI) : aperture of the instance block
+
+ USERD_PTR_LO : upper 24 bits of the low 32 bits, of the 512-byte-aligned USERD pointer
+ USERD_PTR_HI : upper 32 bits of USERD pointer
+ USERD_TARGET (TGU) : aperture of the USERD data structure
+
+ CHID is a channel identifier that uniquely specifies the channel described
+by this runlist entry to the scheduling hardware and is reported in various
+status registers.
+ RUNQUEUE_SELECTOR determines to which runqueue the channel belongs, and
+thereby which PBDMA will run the channel. Increasing values select increasingly
+numbered PBDMA IDs serving the runlist. If the selector value exceeds the
+number of PBDMAs on the runlist, the hardware will silently reassign the channel
+to run on the first PBDMA as though RUNQUEUE_SELECTOR had been set to 0. (In
+current hardware, this is used by SCG on the graphics runlist only to determine
+which FE pipe should service a given channel. A value of 0 targets the first FE
+pipe, which can process all FE driven engines: Graphics, Compute, Inline2Memory,
+and TwoD. A value of 1 targets the second FE pipe, which can only process
+Compute work. Note that GRCE work is allowed on either runqueue.)
+ The INST fields specify the physical address of the channel's instance
+block, the in-memory data structure that stores the context state.
+The target aperture of the instance block is given by INST_TARGET, and the byte
+offset within that aperture is calculated as
+
+ (INST_PTR_HI << 32) | (INST_PTR_LO << NV_RAMRL_ENTRY_CHAN_INST_PTR_ALIGN_SHIFT)
+
+This address should match the one specified in the channel RAM's
+NV_PCCSR_CHANNEL_INST register; see NV_RAMIN and NV_RAMFC for the format of the
+instance block. The hardware ignores the RAMRL INST fields, but in future
+chips the instance pointer may be removed from the channel RAM and the RAMRL
+INST fields used instead, resulting in smaller hardware.
+ The USERD fields specify the physical address of the USERD memory region
+used by software to submit additional work to the channel. The target aperture
+of the USERD region is given by USERD_TARGET, and the byte offset within that
+aperture is calculated as
+
+ (USERD_PTR_HI << 32) | (USERD_PTR_LO << NV_RAMRL_ENTRY_CHAN_USERD_PTR_ALIGN_SHIFT)
+
+
+SW uses the NV_RAMUSERD_CHAN_SIZE define to allocate and align a channel's
+RAMUSERD data structure. See the documentation for NV_RAMUSERD for a
+description of the use of USERD and its format. This address and it's
+alignment must match the one specified in the RAMFC's NV_RAMFC_USERD and
+NV_RAMFC_USERD_HI fields which are backed by NV_PPBDMA_USERD in dev_pbdma.ref.
+The hardware ignores the RAMRL USERD fields, but in future chips the USERD
+pointer may be read from these fields in the runlist entry instead of the RAMFC
+to avoid the extra level of indirection in fetching the USERD data that
+currently results in a dependent read.
+
+
+Runlist TSG Entry Type:
+
+ The other type of runlist entry is Timeslice Group (TSG) header entry
+(Fig 5.2). This type of entry is specified by NV_RAMRL_ENTRY_TYPE_TSG. A TSG
+entry describes a collection of channels all of which share the same context and
+are scheduled as a single unit by Host. All runlists support this type of entry.
+
+ The fields available in a TSG header runlist entry are as follows (Fig 5.2):
+
+ ENTRY_TYPE (T) : type of this entry: ENTRY_TYPE_TSG
+ TSGID : identifier of the Timeslice group (overlays ENTRY_ID)
+ TSG_LENGTH : number of channels that are part of this timeslice group
+ TIMESLICE_SCALE : scale factor for the TSG's timeslice
+ TIMESLICE_TIMEOUT : timeout amount for the TSG's timeslice
+
+ A timeslice group entry consists of an integer identifier along with a
+length which specifies the number of channels in the TSG. After a TSG header
+runlist entry, the next TSG_LENGTH runlist entries are considered to be part of
+the timeslice group. Note that the minimum length of a TSG is at least one entry.
+ All channels in a TSG share the same runlist timeslice which specifies how
+long a single context runs on an engine or PBDMA before being swapped for a
+different context. The timeslice period is set in the TSG header by specifying
+TSG_TIMESLICE_TIMEOUT and TSG_TIMESLICE_SCALE. The TSG timeslice period is
+calculated as follows:
+
+ timeslice = (TSG_TIMESLICE_TIMEOUT << TSG_TIMESLICE_SCALE) * 1024 nanoseconds
+
+ The timeslice period should normally not be set to zero. A timeslice of
+zero will be treated as a timeslice period of one . The runlist
+timeslice period begins after the context has been loaded on a PBDMA but is
+paused while the channel has an outstanding context load to an engine. Time
+spent switching a context into an engine is not part of the runlist timeslice.
+
+ If Host reaches the end of the runlist or receives another entry of type
+NV_RAMRL_ENTRY_TYPE_TSG before processing TSG_LENGTH additional runlist entries,
+or if it encounters a TSG of length 0, a SCHED_ERROR interrupt will be generated
+with ERROR_CODE_BAD_TSG.
+
+
+Host Scheduling Memory Layout:
+
+Example of graphics runlist entry to GPU context mapping via channel id:
+
+
+ .------Ints_ptr -------.
+ | |
+ Graphics Runlist | Channel-Map RAM | GPU Instance Block
+ .------------ . | .----------------. | .-------------------.
+ | TSG Hdr L=m |--.----' |Ch0 Inst Blk Ptr|--'------->| Host State |
+ | RL Entry T1 | | |Ch1 Inst Blk Ptr| .------| Memory State |
+ | RL Entry T2 | | | ... | | | Engine0 State Ptr |
+ | ... | |-chid->|ChI Inst Blk Ptr| | | Engine1 State Ptr |
+ | RL Entry Tm | | | ... | | | ... |
+ | TSG Hdr L=n | | |ChN Inst Blk Ptr| | .-| EngineN State Ptr |
+ | RL Entry T1 | | `----------------' | | `-------------------'
+ | RL Entry T2 |userd_ptr | |
+ | ... | | .--------------. | | .--------------.
+ | RL Entry Tn | | | USERD | | | | Engine Ctx |
+ | | '------->| |<----' '-->| State N |
+ `-------------' | | | |
+ `--------------' `--------------'
+
+Runlist Diagram Description:
+ Here we have (M+N) number of channel type (ENTRY_TYPE_CHID) runlist entries
+grouped together within two TSGs. The first entry in the runlist is a TSG header
+entry (ENTRY_TYPE_TSG) that describes the first TSG. The TSG header specifies m
+as the length of the TSG. The header would also contain the timeslice
+information for the TSG (SCALE/TIMEOUT), as well as the TSG id specified in the
+TSGID field.
+ Because the length here is M, the Runlist *must* contain M additional
+runlist entries of type ENTRY_TYPE_CHAN that will be part of this TSG.
+Similarly, the next (N+1) number of entries, a TSG header entry followed by N
+number of regular channel entry, correspond to the second TSG.
+
+#define NV_RAMRL_ENTRY /* ----G */
+#define NV_RAMRL_ENTRY_RANGE 0xF:0x00000000 /* RW--M */
+#define NV_RAMRL_ENTRY_SIZE 16 /* */
+// Runlist base must be 4k-aligned.
+#define NV_RAMRL_ENTRY_BASE_SHIFT 12 /* */
+
+
+#define NV_RAMRL_ENTRY_TYPE (0+0*32):(0+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_TYPE_CHAN 0x00000000 /* RW--V */
+#define NV_RAMRL_ENTRY_TYPE_TSG 0x00000001 /* RW--V */
+
+#define NV_RAMRL_ENTRY_ID (11+2*32):(0+2*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_ID_HW 11:0 /* RWXUF */
+#define NV_RAMRL_ENTRY_ID_MAX (4096-1) /* RW--V */
+
+
+
+
+
+#define NV_RAMRL_ENTRY_CHAN_RUNQUEUE_SELECTOR (1+0*32):(1+0*32) /* RWXUF */
+
+#define NV_RAMRL_ENTRY_CHAN_INST_TARGET (5+0*32):(4+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_CHAN_INST_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_RAMRL_ENTRY_CHAN_INST_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_RAMRL_ENTRY_CHAN_INST_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+
+#define NV_RAMRL_ENTRY_CHAN_USERD_TARGET (7+0*32):(6+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_CHAN_USERD_TARGET_VID_MEM 0x00000000 /* RW--V */
+#define NV_RAMRL_ENTRY_CHAN_USERD_TARGET_VID_MEM_NVLINK_COHERENT 0x00000001 /* RW--V */
+#define NV_RAMRL_ENTRY_CHAN_USERD_TARGET_SYS_MEM_COHERENT 0x00000002 /* RW--V */
+#define NV_RAMRL_ENTRY_CHAN_USERD_TARGET_SYS_MEM_NONCOHERENT 0x00000003 /* RW--V */
+
+#define NV_RAMRL_ENTRY_CHAN_USERD_PTR_LO (31+0*32):(8+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_CHAN_USERD_PTR_HI (31+1*32):(0+1*32) /* RWXUF */
+
+#define NV_RAMRL_ENTRY_CHAN_CHID (11+2*32):(0+2*32) /* RWXUF */
+
+#define NV_RAMRL_ENTRY_CHAN_INST_PTR_LO (31+2*32):(12+2*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_CHAN_INST_PTR_HI (31+3*32):(0+3*32) /* RWXUF */
+
+
+
+// Macros for shifting out low bits of INST_PTR and USERD_PTR.
+#define NV_RAMRL_ENTRY_CHAN_INST_PTR_ALIGN_SHIFT 12 /* ----C */
+#define NV_RAMRL_ENTRY_CHAN_USERD_PTR_ALIGN_SHIFT 8 /* ----C */
+
+
+
+
+
+
+
+#define NV_RAMRL_ENTRY_TSG_TIMESLICE_SCALE (19+0*32):(16+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_TSG_TIMESLICE_SCALE_3 0x00000003 /* RWI-V */
+#define NV_RAMRL_ENTRY_TSG_TIMESLICE_TIMEOUT (31+0*32):(24+0*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_TSG_TIMESLICE_TIMEOUT_128 0x00000080 /* RWI-V */
+
+
+#define NV_RAMRL_ENTRY_TSG_TIMESLICE_TIMEOUT_1US 0x00000000 /* */
+
+#define NV_RAMRL_ENTRY_TSG_LENGTH (7+1*32):(0+1*32) /* RWXUF */
+#define NV_RAMRL_ENTRY_TSG_LENGTH_INIT 0x00000000 /* RW--V */
+#define NV_RAMRL_ENTRY_TSG_LENGTH_MIN 0x00000001 /* RW--V */
+#define NV_RAMRL_ENTRY_TSG_LENGTH_MAX 0x00000080 /* RW--V */
+
+#define NV_RAMRL_ENTRY_TSG_TSGID (11+2*32):(0+2*32) /* RWXUF */
+
+
+
+6 - Host Pushbuffer Format (FIFO_DMA)
+=======================================
+
+ "FIFO" refers to Host. "FIFO_DMA" means data that Host reads from memory:
+the pushbuffer. Host autonomously reads pushbuffer data from memory and
+generates method address/data pairs from the data.
+
+ Pushbuffer terminology:
+
+ - A channel is the logical sequence of instructions associated with a GPU
+ context.
+
+ - The pushbuffer is a stream of data in memory containing the
+ specifications of the operations that a channel is to perform for a
+ particular client. Pushbuffer data consists of pushbuffer entries.
+
+ - A pushbuffer entry (PB entry) is a 32-bit (doubleword) sized unit of
+ pushbuffer data. This is the smallest granularity at which Host consumes
+ pushbuffer data. A PB entry is either a PB instruction (which is either
+ a PB control entry or a PB method header), or a method data entry.
+
+ - A pushbuffer segment (PB segment) is a contiguous block of memory
+ containing pushbuffer entries. The location and size of a pushbuffer
+ segment is defined by its respective GP entry in the GPFIFO.
+
+ - A pushbuffer control entry (PB control entry) is a single PB entry of
+ type SET_SUBDEVICE_MASK, STORE_SUBDEVICE_MASK, USE_SUBDEVICE_MASK,
+ END_PB_SEGMENT, or a universal NOP (NV_FIFO_DMA_NOP).
+
+ - A pushbuffer compressed method sequence is a sequence of pushbuffer
+ entries starting with a method header and a variable-length sequence of
+ method data entries (the length being defined by the method header). A
+ single PB compressed method sequence expands into one or more methods.
+ This may also be known as a "pushbuffer method" (PB method), but that
+ terminology is ambiguous and not preferred.
+
+ - A pushbuffer method header (PB method header) is the first PB entry found
+ in a PB compressed method sequence. A PB method header is a PB
+ instruction performed on method data entries.
+
+ - A pushbuffer instruction (PB instruction) is a PB entry that is not a PB
+ method data entry. A PB instruction is either a PB control entry or a PB
+ method header.
+
+ - A method is an address/data pair representing an operation to perform.
+
+ - A method data entry is the 32-bit operand for its corresponding method.
+
+
+
+#define NV_FIFO_PB_ENTRY_SIZE 4 /* */
+
+
+ Some engines such as Graphics internally support a double-wide method FIFO;
+these are known as "data-hi" methods. It is Host that performs the packing of
+two methods into one double-wide entry. Host will only generate data-hi methods
+if the following conditions are satisfied:
+
+ 1. The two methods come from the same PB method (in other words they share
+ the same method header).
+
+ 2. The method header specifies a non-incrementing method, an incrementing
+ method, or an increment-once method.
+
+ 3. The paired methods either have the same method address, or the first
+ method has an even NV_FIFO_DMA_METHOD_ADDRESS field and the second
+ (data-hi) method is the increment of the first. (That is, the
+ left-shifted method address as listed in the class files must be
+ divisible by 8 for this condition to hold.)
+
+ 4. The second method is available at the time of pushing the first one into
+ the engine's method FIFO. In other words, Host will not wait to pack
+ methods. Note that if the engine's method fifo is full, the
+ back-pressure will in itself create a "wait time".
+
+The first three conditions are under SW's control. Only the graphics engine
+supports data-hi methods.
+
+
+Types of PB Entries
+
+ PB entries can be classified into three types: PB method headers, PB
+control entries, and PB method data. Different types of PB entries have
+different formats. Because PB compressed method sequences are of variable
+length, it is impossible to determine the type of a PB entry without tracking
+the pushbuffer from the beginning or from the location of a PB entry that is
+known to not be a PB method data entry.
+
+ A PB method data entry is always found in a method data sequence
+immediately following a PB method header in the logical stream of PB entries.
+The PB method header contains a NV_FIFO_DMA_METHOD_COUNT field, the value of
+which is equal to the length of the method data sequence. Note a PB method
+header does not necessarily come with PB method data entries (see details below
+about immediate-data method headers and method headers for which COUNT is zero).
+Also note the PB method data entries may be located in a PB segment separate
+from their corresponding method header. The format of any given PB method data
+entry is defined in the "NV_UDMA" section of dev_pbdma.ref.
+
+ A PB entry that is either a PB method header or PB control entry is known
+as a PB instruction. The type of a PB instruction is specified by the
+NV_FIFO_DMA_SEC_OP field and the NV_FIFO_DMA_TERT_OP field.
+
+ secondary tertiary
+ opcode opcode entry type
+ --------- -------- --------------------------------
+ 000 01 SET_SUBDEVICE_MASK
+ 000 10 STORE_SUBDEVICE_MASK
+ 000 11 USE_SUBDEVICE_MASK
+ 001 xx incrementing method header
+ 011 xx non-incrementing method header
+ 100 xx immediate-data method header
+ 101 xx increment-once method header
+ 111 xx END_PB_SEGMENT
+ --------- -------- --------------------------------
+
+ Types of methods:
+
+ - A Host method is a method whose address is defined in the NV_UDMA device
+ range.
+
+ - A Host-only method is any Host method excluding SetObject (also known as
+ NV_UDMA_OBJECT).
+
+ - An engine method is a method whose address is not defined within the
+ NV_UDMA device range. There are multiple engines designated by a
+ subchannel ID. Software methods are included in this category.
+
+ - A software method (SW method) is a method which causes an interrupt for
+ the express purpose of being handled by software. For details see the
+ section on software methods below.
+
+ For more information about types of methods see "HOST METHODS" and
+"RESERVED METHOD ADDRESSES" in dev_pbdma.ref.
+
+ The method address in a PB method header (stored in the
+NV_FIFO_DMA_METHOD_ADDRESS field) is a dword-address, not a byte-address. In
+other words the least significant two bits of the address are not stored because
+the byte-address is dword-aligned (thus the least significant two bits are
+always zero).
+
+ The subchannel in a PB method header (stored in the
+NV_FIFO_DMA_*_SUBCHANNEL field) determines the engine to which a method will be
+sent if the method is SetObject or an engine method (otherwise, the SUBCHANNEL
+field is ignored). SetObject enables SW to request HW to check the expectation
+that a given subchannel serves the specified class ID; see the description of
+"NV_UDMA_OBJECT" in dev_pbdma.ref.
+
+ The mapping between subchannels and engines is fixed. A subchannel is
+bound to a given class according to the runlist. Each engine method is applied
+to an "object," which itself is an instance of an NV class as defined by the
+master MFS class files. Each object belongs to an engine. For SetObject and
+engine methods, the engine is determined entirely by the SUBCHANNEL field of
+the method's header via a fixed mapping that depends on the runlist on which the
+method arrives.
+
+ Methods on subchannels 0-4 are handled by the primary engine served by the
+runlist, except that subchannel 4 targets GRCOPY0 and GRCOPY1 on the graphics
+runlist. For Graphics/Compute, SetObject associates subchannels 0, 1, 2, and 3
+with class identifiers for 3D, compute, I2M, and 2D respectively. On other
+runlists, the subchannel is ignored, and Host does not send the subchannel ID to
+the engine. It is recommended that SW only use subchannel 4 on the dedicated
+copy engines for consistency with GRCOPY usage.
+
+ Subchannels 5-7 are for software methods. Any methods on these subchannels
+(including SetObject methods) are kicked back to software for handling via the
+SW method dispatch mechanism using the NV_PPBDMA_INTR_*_DEVICE interrupt. SW
+may choose to send a SetObject method to each engine subchannel before sending
+any methods on that particular subchannel in order to support multiple software
+classes.
+
+ If a method stream subchannel-switches from targeting graphics/compute to a
+copy engine or vice-versa, that is, to or from subchannel 4 on GR, Host will:
+
+ 1. Wait until the first engine has completed all its methods,
+
+ 2. Wait until that engine indicates that it is idle (WFI), and
+
+ 3. Send a sysmem barrier flush and wait until it completes.
+
+Only then will Host send methods to the newly targeted engine.
+
+ Note that this WFI will not occur for sending Host-only methods on the new
+subchannel, since Host-only methods ignore the subchannel field. Additionally,
+when switching from CE to graphics/compute, Host forces FE to perform a cache
+invalidate. Other subchannel switch semantics may be provided by the engines
+themselves, such as switching between subchannels 0-3 within FE.
+
+
+#define NV_FIFO_DMA /* ----G */
+#define NV_FIFO_DMA_METHOD_ADDRESS_OLD 12:2 /* RWXUF */
+#define NV_FIFO_DMA_METHOD_ADDRESS 11:0 /* RWXUF */
+
+#define NV_FIFO_DMA_SUBDEVICE_MASK 15:4 /* RWXUF */
+
+#define NV_FIFO_DMA_METHOD_SUBCHANNEL 15:13 /* RWXUF */
+
+#define NV_FIFO_DMA_TERT_OP 17:16 /* RWXUF */
+#define NV_FIFO_DMA_TERT_OP_GRP0_SET_SUB_DEV_MASK 0x00000001 /* RW--V */
+#define NV_FIFO_DMA_TERT_OP_GRP0_STORE_SUB_DEV_MASK 0x00000002 /* RW--V */
+#define NV_FIFO_DMA_TERT_OP_GRP0_USE_SUB_DEV_MASK 0x00000003 /* RW--V */
+
+#define NV_FIFO_DMA_METHOD_COUNT_OLD 28:18 /* RWXUF */
+#define NV_FIFO_DMA_METHOD_COUNT 28:16 /* RWXUF */
+#define NV_FIFO_DMA_IMMD_DATA 28:16 /* RWXUF */
+
+#define NV_FIFO_DMA_SEC_OP 31:29 /* RWXUF */
+#define NV_FIFO_DMA_SEC_OP_GRP0_USE_TERT 0x00000000 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_INC_METHOD 0x00000001 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_NON_INC_METHOD 0x00000003 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_IMMD_DATA_METHOD 0x00000004 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_ONE_INC 0x00000005 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_RESERVED6 0x00000006 /* RW--V */
+#define NV_FIFO_DMA_SEC_OP_END_PB_SEGMENT 0x00000007 /* RW--V */
+
+
+Incrementing PB Method Header Format
+
+ An incrementing PB method header specifies that Host generate a sequence of
+methods. The length of the sequence is defined by the method header. The
+method data for each method in this sequence is found in a sequence of PB
+entries immediately following the method header.
+
+ The dword-address of the first method is specified by the method header,
+and the dword-address of each subsequent method is equal to the dword-address of
+the previous method plus one. Or in other words, the byte-address of each
+subsequent method is equal to the byte-address of the previous method plus four.
+
+Example sequence of methods generated from an incrementing method header:
+
+ addr data0
+ addr+1 data1
+ addr+2 data2
+ addr+3 data3
+ ... ...
+
+ The NV_FIFO_DMA_INCR_COUNT field contains the number of methods in the
+generated sequence. This is the same as the number of method data entries that
+follow the method header. If the COUNT field is zero, the other fields are
+ignored, and the PB method effectively becomes a no-op with no method data
+entries following it.
+
+ The NV_FIFO_DMA_INCR_SUBCHANNEL field contains the subchannel to use for
+the methods generated from the method header. See the documentation above for
+NV_FIFO_DMA_*_SUBCHANNEL.
+
+ The NV_FIFO_DMA_INCR_ADDRESS field contains the method address for the
+first method in the generated sequence. The dword-address of the method is
+incremented by one each time a method is generated. A method address specifies
+an operation to be performed. Note that because the ADDRESS is a dword-address
+and not a byte-address, the least two significant bits of the method's
+byte-address are not stored.
+
+ The NV_FIFO_DMA_INCR_DATA fields contain the method data for the methods in
+the generated sequence. The number of method data entries is defined by the
+COUNT field. A method data entry contains an operand for its respective method.
+
+ Bit 12 is reserved for the future expansion of either the subchannel or the
+address fields.
+
+
+#define NV_FIFO_DMA_INCR /* ----G */
+#define NV_FIFO_DMA_INCR_OPCODE (0*32+31):(0*32+29) /* RWXUF */
+#define NV_FIFO_DMA_INCR_OPCODE_VALUE 0x00000001 /* ----V */
+#define NV_FIFO_DMA_INCR_COUNT (0*32+28):(0*32+16) /* RWXUF */
+#define NV_FIFO_DMA_INCR_SUBCHANNEL (0*32+15):(0*32+13) /* RWXUF */
+#define NV_FIFO_DMA_INCR_ADDRESS (0*32+11):(0*32+0) /* RWXUF */
+#define NV_FIFO_DMA_INCR_DATA (1*32+31):(1*32+0) /* RWXUF */
+
+
+Non-Incrementing PB Method Header Format
+
+ A non-incrementing PB method header specifies that Host generate a sequence
+of methods. The length of the sequence is defined by the method header. The
+method data for each method in this sequence is contained within the PB entries
+immediately following the method header.
+
+ Unlike with the incrementing PB method header, the sequence of methods
+generated all have the same method address. The dword-address of every method
+in this sequence is specified by the method header. Although the methods all
+have the same address, the method data entries may be different.
+
+Example sequence of methods generated from a non-incrementing method header:
+
+ addr data0
+ addr data1
+ addr data2
+ addr data3
+ ... ...
+
+ The NV_FIFO_DMA_NONINCR_COUNT field contains the number of methods
+in the generated sequence. This is the same as the number of method data
+entries that follow the method header. If the COUNT field is zero, the other
+fields are ignored, and the PB method effectively becomes a no-op with no method
+data entries following it.
+
+ The NV_FIFO_DMA_NONINCR_SUBCHANNEL field contains the subchannel to use for
+the methods generated from the method header. See the documentation above for
+NV_FIFO_DMA_*_SUBCHANNEL.
+
+ The NV_FIFO_DMA_NONINCR_ADDRESS field contains the method address for every
+method in the generated sequence. A method address specifies an operation to be
+performed. Note that because the ADDRESS field is a dword-address and not a
+byte-address, the least two significant bits of the method's byte-address are
+not stored.
+
+ The NV_FIFO_DMA_NONINCR_DATA fields contain the method data for the methods
+in the generated sequence. The number of method data entries is defined by the
+COUNT field. A method data entry contains an operand for its respective method.
+
+ Bit 12 is reserved for the future expansion of either the subchannel or the
+address fields.
+
+
+#define NV_FIFO_DMA_NONINCR /* ----G */
+#define NV_FIFO_DMA_NONINCR_OPCODE (0*32+31):(0*32+29) /* RWXUF */
+#define NV_FIFO_DMA_NONINCR_OPCODE_VALUE 0x00000003 /* ----V */
+#define NV_FIFO_DMA_NONINCR_COUNT (0*32+28):(0*32+16) /* RWXUF */
+#define NV_FIFO_DMA_NONINCR_SUBCHANNEL (0*32+15):(0*32+13) /* RWXUF */
+#define NV_FIFO_DMA_NONINCR_ADDRESS (0*32+11):(0*32+0) /* RWXUF */
+#define NV_FIFO_DMA_NONINCR_DATA (1*32+31):(1*32+0) /* RWXUF */
+
+
+Increment-Once PB Method Header Format
+
+ An increment-once PB method header specifies that Host generate a sequence
+of methods. The length of the sequence is defined by the method header. The
+method data for each method in this sequence is found in a sequence of PB
+entries immediately following the method header.
+
+ The dword-address of the first method is specified by the method header.
+The address of the second and all following methods is equal to the
+dword-address of the first method plus one. In other words, the byte-address of
+the second and all following methods is equal to the byte-address of the first
+method plus four.
+
+Example sequence of methods generated from an increment-once method header:
+
+ addr data0
+ addr+1 data1
+ addr+1 data2
+ addr+1 data3
+ ... ...
+
+ The NV_FIFO_DMA_ONEINCR_COUNT field contains the number of methods in the
+generated sequence. This is the same as the number of method data entries that
+follow the method header. If the COUNT field is zero, the other fields are
+ignored, and the PB method effectively becomes a no-op method with no method
+data entries following it.
+
+ The NV_FIFO_DMA_ONEINCR_SUBCHANNEL field contains the subchannel to use for
+the methods generated from the method header. See the documentation above for
+NV_FIFO_DMA_*_SUBCHANNEL.
+
+ The NV_FIFO_DMA_ONEINCR_ADDRESS field contains the method address for the
+first method in the generated sequence. A method address specifies an operation
+to be performed. Note that because the ADDRESS is a dword-address and not a
+byte-address, the least two significant bits of the method's byte-address are
+not stored.
+
+ The NV_FIFO_DMA_ONEINCR_DATA fields contain the method data for the methods
+in the generated sequence. The number of method data entries is defined by the
+COUNT field. A method data entry contains an operand for its respective method.
+
+ Bit 12 is reserved for the future expansion of either the subchannel or the
+address fields.
+
+
+#define NV_FIFO_DMA_ONEINCR /* ----G */
+#define NV_FIFO_DMA_ONEINCR_OPCODE (0*32+31):(0*32+29) /* RWXUF */
+#define NV_FIFO_DMA_ONEINCR_OPCODE_VALUE 0x00000005 /* ----V */
+#define NV_FIFO_DMA_ONEINCR_COUNT (0*32+28):(0*32+16) /* RWXUF */
+#define NV_FIFO_DMA_ONEINCR_SUBCHANNEL (0*32+15):(0*32+13) /* RWXUF */
+#define NV_FIFO_DMA_ONEINCR_ADDRESS (0*32+11):(0*32+0) /* RWXUF */
+#define NV_FIFO_DMA_ONEINCR_DATA (1*32+31):(1*32+0) /* RWXUF */
+
+
+No-Operation PB Instruction Formats
+
+ The method header for a no-op PB method may be specified in multiple ways,
+but the preferred way is to set the PB instruction to NV_FIFO_DMA_NOP.
+In any case NV_FIFO_DMA_NOP is a universal NOP entry that bypasses any method
+header format check, and is not considered a method header.
+
+
+#define NV_FIFO_DMA_NOP 0x00000000 /* ----C */
+
+
+Immediate-Data PB Method Header Format
+
+ If a method's operand fits within 13 bits, a PB method may be specified in
+a single PB entry, using the immediate-data PB method header format. Exactly
+one method is generated from this method header.
+
+ The NV_FIFO_DMA_IMMD_SUBCHANNEL field contains the subchannel to use for
+the method generated from the method header. See the documentation above for
+NV_FIFO_DMA_*_SUBCHANNEL.
+
+ The NV_FIFO_DMA_IMMD_ADDRESS field contains the method address for the
+single generated method. A method address specifies an operation to be
+performed. Note that because the ADDRESS is a dword-address and not a
+byte-address, the least two significant bits of the method's byte-address are
+not stored.
+
+ The single NV_FIFO_DMA_IMMD_DATA field contains the method data for the
+generated method. This method data contains an operand for the generated
+method.
+
+
+#define NV_FIFO_DMA_IMMD /* ----G */
+#define NV_FIFO_DMA_IMMD_ADDRESS 11:0 /* RWXUF */
+#define NV_FIFO_DMA_IMMD_SUBCHANNEL 15:13 /* RWXUF */
+#define NV_FIFO_DMA_IMMD_DATA 28:16 /* RWXUF */
+#define NV_FIFO_DMA_IMMD_OPCODE 31:29 /* RWXUF */
+#define NV_FIFO_DMA_IMMD_OPCODE_VALUE 0x00000004 /* ----V */
+
+
+Set Sub-Device Mask PB Control Entry Format
+
+ The SET_SUBDEVICE_MASK (SSDM) PB control entry is used when multiple GPU
+contexts are using the same pushbuffer (for example, for SLI or for stereo
+rendering) and there is data in the push buffer that is for only a subset of the
+GPU contexts. This instruction allows the pushbuffer to tell a specific GPU
+context to use or ignore methods following the SET_SUBDEVICE_MASK. While the
+logical-AND of NV_FIFO_DMA_SET_SUBDEVICE_MASK_VALUE and the GPU context's
+NV_PPBDMA_SUBDEVICE_ID value is zero, methods are ignored. Pushbuffer control
+entries (like SET_SUBDEVICE_MASK) are not ignored.
+
+********************************************************************************
+Warning: When using subdevice masking, one must take care to synchronize
+properly with any later GP entries marked FETCH_CONDITIONAL. If GP fetching
+gets too far ahead of PB processing, it is possible for a later conditional PB
+segment to be discarded prior to reaching an SSDM command that sets
+SUBDEVICE_STATUS to ACTIVE. This would cause Host to execute garbage data. One
+way to avoid this would be to set the SYNC_WAIT flag on any FETCH_CONDITIONAL
+segments following a subdevice reenable.
+********************************************************************************
+
+
+
+#define NV_FIFO_DMA_SET_SUBDEVICE_MASK /* ----G */
+#define NV_FIFO_DMA_SET_SUBDEVICE_MASK_VALUE 15:4 /* RWXUF */
+#define NV_FIFO_DMA_SET_SUBDEVICE_MASK_OPCODE 31:16 /* RWXUF */
+#define NV_FIFO_DMA_SET_SUBDEVICE_MASK_OPCODE_VALUE 0x00000001 /* ----V */
+
+
+Store Sub-Device Mask PB Control Entry Format
+
+ The STORE_SUBDEVICE_MASK PB control entry is used to save a subdevice mask
+value to be used later by a USE_SUBDEVICE_MASK PB instruction.
+
+
+#define NV_FIFO_DMA_STORE_SUBDEVICE_MASK /* ----G */
+#define NV_FIFO_DMA_STORE_SUBDEVICE_MASK_VALUE 15:4 /* RWXUF */
+#define NV_FIFO_DMA_STORE_SUBDEVICE_MASK_OPCODE 31:16 /* RWXUF */
+#define NV_FIFO_DMA_STORE_SUBDEVICE_MASK_OPCODE_VALUE 0x00000002 /* ----V */
+
+
+Use Sub-Device Mask PB Control Entry Format
+
+ The USE_SUBDEVICE_MASK PB control entry is used to apply the subdevice mask
+value saved by a STORE_SUBDEVICE_MASK PB instruction. The effect of the mask is
+the same as for a SET_SUBDEVICE_MASK PB instruction.
+
+
+#define NV_FIFO_DMA_USE_SUBDEVICE_MASK /* ----G */
+#define NV_FIFO_DMA_USE_SUBDEVICE_MASK_OPCODE 31:16 /* RWXUF */
+#define NV_FIFO_DMA_USE_SUBDEVICE_MASK_OPCODE_VALUE 0x00000003 /* ----V */
+
+
+End-PB-Segment PB Control Entry Format
+
+ Engines may write PB segments themselves, but they cannot write GP entries.
+Because they cannot write GP entries, they cannot alter the size of a PB
+segment. If an engine is writing a PB segment, and if it does not need to fill
+the entire PB segment it was allocated, instead of filling the remainder of the
+PB segment with no-op PB instructions, it may write a single End-PB-Segment
+control entry to indicate that the pushbuffer data contains no further valid
+data. No further PB entries from that PB segment will be decoded or processed.
+Host may have already issued requests to fetch the remainder of the PB segment
+before an End-PB-Segment PB instruction is processed. Host may or may not fetch
+the remainder of the PB segment. Also note that doing a PB CRC check on this
+segment via NV_PPBDMA_GP_ENTRY1_OPCODE_PB_CRC will be indeterminate.
+
+
+#define NV_FIFO_DMA_ENDSEG_OPCODE 31:29 /* RWXUF */
+#define NV_FIFO_DMA_ENDSEG_OPCODE_VALUE 0x00000007 /* ----V */
+
+
diff --git a/manuals/volta/gv100/dev_timer.ref.txt b/manuals/volta/gv100/dev_timer.ref.txt
new file mode 100644
index 0000000..3f56b3b
--- /dev/null
+++ b/manuals/volta/gv100/dev_timer.ref.txt
@@ -0,0 +1,79 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+#define NV_PTIMER_PRI_TIMEOUT 0x00009080 /* RW-4R */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD 23:0 /* RWIVF */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD_MIN 0x00000003 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD_MAX 0x00ffffff /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD_RTL 0x0000000a /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD_SHORT 0x00000006 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD_INIT 0x00000100 /* RWI-V */
+#define NV_PTIMER_PRI_TIMEOUT_PERIOD__PROD 0x00002000 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_EN 31:31 /* RWIVF */
+#define NV_PTIMER_PRI_TIMEOUT_EN_DISABLED 0x00000000 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_EN_ENABLED 0x00000001 /* RWI-V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0 0x00009084 /* RW-4R */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_TO 0:0 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_TO_ERROR 0x1 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_TO_CLEAR 0x0 /* -W--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_TO_NONE 0x0 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_WRITE 1:1 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_WRITE_TRUE 0x1 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_WRITE_FALSE 0x0 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_ADDR 23:2 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_FECS_TGT 31:31 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_FECS_TGT_TRUE 0x1 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_0_FECS_TGT_FALSE 0x0 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_1 0x00009088 /* RW-4R */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_1_DATA 31:0 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_1_DATA_WAS_READ 0x0 /* RW--V */
+#define NV_PTIMER_PRI_TIMEOUT_FECS_ERRCODE 0x0000908C /* RW-4R */
+#define NV_PTIMER_PRI_TIMEOUT_FECS_ERRCODE_DATA 31:0 /* RWXVF */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_3 0x00009090 /* RW-4R */
+#define NV_PTIMER_PRI_TIMEOUT_SAVE_3_SUBID 3:0 /* R-XVF */
+#define NV_PTIMER_INTR_0 0x00009100 /* RW-4R */
+#define NV_PTIMER_INTR_0_ALARM 0:0 /* RWXVF */
+#define NV_PTIMER_INTR_0_ALARM_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PTIMER_INTR_0_ALARM_PENDING 0x00000001 /* R---V */
+#define NV_PTIMER_INTR_0_ALARM_RESET 0x00000001 /* -W--C */
+#define NV_PTIMER_INTR_0_TIMER 1:1 /* RWXVF */
+#define NV_PTIMER_INTR_0_TIMER_NOT_PENDING 0x00000000 /* R---V */
+#define NV_PTIMER_INTR_0_TIMER_PENDING 0x00000001 /* R---V */
+#define NV_PTIMER_INTR_0_TIMER_RESET 0x00000001 /* -W--C */
+#define NV_PTIMER_INTR_EN_0 0x00009140 /* RW-4R */
+#define NV_PTIMER_INTR_EN_0_ALARM 0:0 /* RWIVF */
+#define NV_PTIMER_INTR_EN_0_ALARM_DISABLED 0x00000000 /* RWI-V */
+#define NV_PTIMER_INTR_EN_0_ALARM_ENABLED 0x00000001 /* RW--V */
+#define NV_PTIMER_INTR_EN_0_TIMER 1:1 /* RWIVF */
+#define NV_PTIMER_INTR_EN_0_TIMER_DISABLED 0x00000000 /* RWI-V */
+#define NV_PTIMER_INTR_EN_0_TIMER_ENABLED 0x00000001 /* RW--V */
+#define NV_PTIMER_GR_TICK_FREQ 0x00009480 /* RW-4R */
+#define NV_PTIMER_GR_TICK_FREQ_SELECT 2:0 /* RWIUF */
+#define NV_PTIMER_GR_TICK_FREQ_SELECT_MAX 0x00000000 /* RW--V */
+#define NV_PTIMER_GR_TICK_FREQ_SELECT_DEFAULT 0x00000005 /* RWI-V */
+#define NV_PTIMER_GR_TICK_FREQ_SELECT_MIN 0x00000007 /* RW--V */
+#define NV_PTIMER_ALARM_0 0x00009420 /* RW-4R */
+#define NV_PTIMER_ALARM_0_NSEC 31:5 /* RWIUF */
+#define NV_PTIMER_ALARM_0_NSEC_INIT 0x0 /* RWI-V */
+#define NV_PTIMER_TIMER_0 0x00009428 /* RW-4R */
+#define NV_PTIMER_TIMER_0_NSEC 31:0 /* */
+#define NV_PTIMER_TIMER_0_USEC 31:10 /* RWIUF */
+#define NV_PTIMER_TIMER_0_USEC_INIT 0x0 /* RWI-V */
diff --git a/manuals/volta/gv100/dev_usermode.ref.txt b/manuals/volta/gv100/dev_usermode.ref.txt
new file mode 100644
index 0000000..cb98f96
--- /dev/null
+++ b/manuals/volta/gv100/dev_usermode.ref.txt
@@ -0,0 +1,134 @@
+Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+
+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 AUTHORS OR COPYRIGHT HOLDERS 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.
+--------------------------------------------------------------------------------
+
+ This manual describes the USERMODE device. USERMODE is a mappable range of
+registers for use by usermode drivers. The range is 64KB aligned and 64KB in
+size to match the maximum page size of systems supported by NVIDIA hardware.
+
+ Note that accesses to undefined registers in this device range do not cause
+PRI_TIMEOUT interrupts to be raised. This is different from other PRI devices.
+Writes to undefined registers are silently thrown away. Reads from undefined
+registers return 0.
+
+Mnemonic Description Size Interface
+------- ----------- ---- ---------
+USERMODE Usermode region 64K HOST
+
+#define NV_USERMODE 0x0081FFFF:0x00810000 /* RW--D */
+
+ Table 1-1 Local Devices
+
+
+
+2 - IDENTIFICATION AND CAPABILITIES REGISTERS
+===============================================================================
+
+ The first 128 bytes of the NV_USERMODE device are reserved for up to 32
+configuration and capabilities registers.
+
+
+CFG0 - Config register 0: Class ID for the NV_USERMODE class
+
+ The USERMODE_CLASS_ID field of the CFG0 register contains the class ID for
+the class corresponding to the NV_USERMODE device. In gv100, this is the class
+volta_usermode_a.
+
+
+#define NV_USERMODE_CFG0 0x00810000 /* R--4R */
+#define NV_USERMODE_CFG0_USERMODE_CLASS_ID 15:0 /* R-IUF */
+#define NV_USERMODE_CFG0_USERMODE_CLASS_ID_VALUE 50017 /* R-I-V */
+
+// Note: addresses up to 0x810080 are reserved for CGF and capabilities registers
+
+
+3 - PTIMER CURRENT TIME REGISTERS
+===============================================================================
+
+ The TIME registers contain the current time as kept by the PTIMER; see
+dev_timer.ref. The current time is expressed in elapsed nanoseconds since the
+UNIX epoch, 00:00 GMT, January 1, 1970 (zero hour). It generally has a
+resolution of 32 nanoseconds.
+
+ Note: To query the current time, read TIME_1, then TIME_0, and then TIME_1
+again. If the two readings of TIME_1 do not match, repeat the procedure. This
+avoids incorrectly retrieving an incorrect time referring to a point up to 4
+seconds in the future: if one were to simply read TIME_0 and then TIME_1, TIME_0
+may overflow between the two reads.
+
+ TIME_0 contains the low 32 bits of the timer. The least significant 5 bits
+are always zero. The NSEC field contains the low order bits in 32ns
+granularity.
+
+ TIME_1 contains the high order bits. The NSEC field contains the upper 29
+bits of the timer.
+
+
+TIME_0 Register - Timer Low Bits
+
+
+#define NV_USERMODE_TIME_0 0x00810080 /* R--4R */
+#define NV_USERMODE_TIME_0_NSEC 31:5 /* R-XUF */
+
+
+TIME_1 Register - Timer High Bits
+
+
+#define NV_USERMODE_TIME_1 0x00810084 /* R--4R */
+#define NV_USERMODE_TIME_1_NSEC 28:0 /* R-XUF */
+
+// Note: addresses 0x810088 and 0x81008c are reserved for future TIME registers
+
+
+
+4 - CHANNEL WORK SUBMISSION REGISTERS
+===============================================================================
+
+NOTIFY_CHANNEL_PENDING - Notify Host that a channel has new work available
+
+ Writing a channel ID to the ID field of NOTIFY_CHANNEL_PENDING tells Host
+that new work is available to run on that channel. This causes the PENDING
+status to be set in the NV_PCCSR_CHANNEL_STATUS field for that channel and
+behaves identically to writing NV_PCCSR_CHANNEL_FORCE_PENDING, but is accessible
+to usermode drivers. Setting pending will cause Host to schedule the channel
+the next time it comes up in the runlist. Once the channel is scheduled, the
+PBDMA will read GP_PUT from USERD to determine whether work is actually
+available for the channel.
+
+ Submitting new work to a channel involves these steps:
+
+ 1. Write methods to the pushbuffer space
+ 2. Construct a new gp_fifo entry pointing to that pushbuffer space
+ 3. Update GP_PUT in USERD to indicate the new gp_fifo entry is ready
+ 4. Write the channel's handle to NV_USERMODE_NOTIFY_CHANNEL_PENDING_ID
+
+ Note that if the ID refers to a non-existent channel, the write will be
+ignored. Moreover, a write to an ID that exceeds the maximum supported channel
+ID will have no effect (it will not overflow, causing some other channel to go
+pending).
+
+ Note that if the ID refers to a channel for which GP_PUT == GP_GET, Host will
+still schedule the channel in order to determine the current status of its
+GP_PUT, at which point it will discover there is no new work and move on to the
+next channel.
+
+
+#define NV_USERMODE_NOTIFY_CHANNEL_PENDING 0x00810090 /* -W-4R */
+#define NV_USERMODE_NOTIFY_CHANNEL_PENDING_ID 31:0 /* -W-UF */
diff --git a/manuals/volta/gv100/index.html b/manuals/volta/gv100/index.html
new file mode 100644
index 0000000..aece319
--- /dev/null
+++ b/manuals/volta/gv100/index.html
@@ -0,0 +1,14 @@
+<html>
+ <head><title>gv100</title></head>
+ <body>
+ <h1>gv100</h1>
+ <a href="dev_bus.ref.txt">dev_bus.ref.txt</a><br/>
+ <a href="dev_display.ref.txt">dev_display.ref.txt</a><br/>
+ <a href="dev_fifo.ref.txt">dev_fifo.ref.txt</a><br/>
+ <a href="dev_master.ref.txt">dev_master.ref.txt</a><br/>
+ <a href="dev_pbdma.ref.txt">dev_pbdma.ref.txt</a><br/>
+ <a href="dev_ram.ref.txt">dev_ram.ref.txt</a><br/>
+ <a href="dev_timer.ref.txt">dev_timer.ref.txt</a><br/>
+ <a href="dev_usermode.ref.txt">dev_usermode.ref.txt</a><br/>
+ </body>
+</html>
diff --git a/manuals/volta/index.html b/manuals/volta/index.html
new file mode 100644
index 0000000..4e6c771
--- /dev/null
+++ b/manuals/volta/index.html
@@ -0,0 +1,7 @@
+<html>
+ <head><title>volta</title></head>
+ <body>
+ <h1>volta</h1>
+ <a href="gv100">gv100</a><br/>
+ </body>
+</html>