xref: /linux/drivers/gpu/drm/nouveau/include/nvhw/class/clca7e.h (revision fb7399cf2d0b33825b8039f95c45395c7deba25c)
1 /* SPDX-License-Identifier: MIT
2  *
3  * Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4  */
5 #ifndef _clca7e_h_
6 #define _clca7e_h_
7 
8 // class methods
9 #define NVCA7E_SET_NOTIFIER_CONTROL                                             (0x00000220)
10 #define NVCA7E_SET_NOTIFIER_CONTROL_MODE                                        0:0
11 #define NVCA7E_SET_NOTIFIER_CONTROL_MODE_WRITE                                  (0x00000000)
12 #define NVCA7E_SET_NOTIFIER_CONTROL_MODE_WRITE_AWAKEN                           (0x00000001)
13 #define NVCA7E_SET_SIZE                                                         (0x00000224)
14 #define NVCA7E_SET_SIZE_WIDTH                                                   15:0
15 #define NVCA7E_SET_SIZE_HEIGHT                                                  31:16
16 #define NVCA7E_SET_STORAGE                                                      (0x00000228)
17 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT                                         3:0
18 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_ONE_GOB                (0x00000000)
19 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_TWO_GOBS               (0x00000001)
20 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_FOUR_GOBS              (0x00000002)
21 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_EIGHT_GOBS             (0x00000003)
22 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_SIXTEEN_GOBS           (0x00000004)
23 #define NVCA7E_SET_STORAGE_BLOCK_HEIGHT_NVD_BLOCK_HEIGHT_THIRTYTWO_GOBS         (0x00000005)
24 #define NVCA7E_SET_PARAMS                                                       (0x0000022C)
25 #define NVCA7E_SET_PARAMS_FORMAT                                                7:0
26 #define NVCA7E_SET_PARAMS_FORMAT_I8                                             (0x0000001E)
27 #define NVCA7E_SET_PARAMS_FORMAT_R4G4B4A4                                       (0x0000002F)
28 #define NVCA7E_SET_PARAMS_FORMAT_R5G6B5                                         (0x000000E8)
29 #define NVCA7E_SET_PARAMS_FORMAT_A1R5G5B5                                       (0x000000E9)
30 #define NVCA7E_SET_PARAMS_FORMAT_R5G5B5A1                                       (0x0000002E)
31 #define NVCA7E_SET_PARAMS_FORMAT_A8R8G8B8                                       (0x000000CF)
32 #define NVCA7E_SET_PARAMS_FORMAT_X8R8G8B8                                       (0x000000E6)
33 #define NVCA7E_SET_PARAMS_FORMAT_A8B8G8R8                                       (0x000000D5)
34 #define NVCA7E_SET_PARAMS_FORMAT_X8B8G8R8                                       (0x000000F9)
35 #define NVCA7E_SET_PARAMS_FORMAT_A2R10G10B10                                    (0x000000DF)
36 #define NVCA7E_SET_PARAMS_FORMAT_A2B10G10R10                                    (0x000000D1)
37 #define NVCA7E_SET_PARAMS_FORMAT_R16_G16_B16_A16_NVBIAS                         (0x00000023)
38 #define NVCA7E_SET_PARAMS_FORMAT_R16_G16_B16_A16                                (0x000000C6)
39 #define NVCA7E_SET_PARAMS_FORMAT_RF16_GF16_BF16_AF16                            (0x000000CA)
40 #define NVCA7E_SET_PARAMS_FORMAT_Y8_U8__Y8_V8_N422                              (0x00000028)
41 #define NVCA7E_SET_PARAMS_FORMAT_U8_Y8__V8_Y8_N422                              (0x00000029)
42 #define NVCA7E_SET_PARAMS_FORMAT_Y8___U8V8_N444                                 (0x00000035)
43 #define NVCA7E_SET_PARAMS_FORMAT_Y8___U8V8_N422                                 (0x00000036)
44 #define NVCA7E_SET_PARAMS_FORMAT_Y8___V8U8_N420                                 (0x00000038)
45 #define NVCA7E_SET_PARAMS_FORMAT_Y8___U8___V8_N444                              (0x0000003A)
46 #define NVCA7E_SET_PARAMS_FORMAT_Y8___U8___V8_N420                              (0x0000003B)
47 #define NVCA7E_SET_PARAMS_FORMAT_Y10___U10V10_N444                              (0x00000055)
48 #define NVCA7E_SET_PARAMS_FORMAT_Y10___U10V10_N422                              (0x00000056)
49 #define NVCA7E_SET_PARAMS_FORMAT_Y10___V10U10_N420                              (0x00000058)
50 #define NVCA7E_SET_PARAMS_FORMAT_Y12___U12V12_N444                              (0x00000075)
51 #define NVCA7E_SET_PARAMS_FORMAT_Y12___U12V12_N422                              (0x00000076)
52 #define NVCA7E_SET_PARAMS_FORMAT_Y12___V12U12_N420                              (0x00000078)
53 #define NVCA7E_SET_PARAMS_CLAMP_BEFORE_BLEND                                    18:18
54 #define NVCA7E_SET_PARAMS_CLAMP_BEFORE_BLEND_DISABLE                            (0x00000000)
55 #define NVCA7E_SET_PARAMS_CLAMP_BEFORE_BLEND_ENABLE                             (0x00000001)
56 #define NVCA7E_SET_PARAMS_SWAP_UV                                               19:19
57 #define NVCA7E_SET_PARAMS_SWAP_UV_DISABLE                                       (0x00000000)
58 #define NVCA7E_SET_PARAMS_SWAP_UV_ENABLE                                        (0x00000001)
59 #define NVCA7E_SET_PARAMS_FMT_ROUNDING_MODE                                     22:22
60 #define NVCA7E_SET_PARAMS_FMT_ROUNDING_MODE_ROUND_TO_NEAREST                    (0x00000000)
61 #define NVCA7E_SET_PARAMS_FMT_ROUNDING_MODE_ROUND_DOWN                          (0x00000001)
62 #define NVCA7E_SET_PLANAR_STORAGE(b)                                            (0x00000230 + (b)*0x00000004)
63 #define NVCA7E_SET_PLANAR_STORAGE_PITCH                                         12:0
64 #define NVCA7E_SET_POINT_IN(b)                                                  (0x00000290 + (b)*0x00000004)
65 #define NVCA7E_SET_POINT_IN_X                                                   15:0
66 #define NVCA7E_SET_POINT_IN_Y                                                   31:16
67 #define NVCA7E_SET_SIZE_IN                                                      (0x00000298)
68 #define NVCA7E_SET_SIZE_IN_WIDTH                                                15:0
69 #define NVCA7E_SET_SIZE_IN_HEIGHT                                               31:16
70 #define NVCA7E_SET_SIZE_OUT                                                     (0x000002A4)
71 #define NVCA7E_SET_SIZE_OUT_WIDTH                                               15:0
72 #define NVCA7E_SET_SIZE_OUT_HEIGHT                                              31:16
73 #define NVCA7E_SET_PRESENT_CONTROL                                              (0x00000308)
74 #define NVCA7E_SET_PRESENT_CONTROL_MIN_PRESENT_INTERVAL                         3:0
75 #define NVCA7E_SET_PRESENT_CONTROL_BEGIN_MODE                                   6:4
76 #define NVCA7E_SET_PRESENT_CONTROL_BEGIN_MODE_NON_TEARING                       (0x00000000)
77 #define NVCA7E_SET_PRESENT_CONTROL_BEGIN_MODE_IMMEDIATE                         (0x00000001)
78 #define NVCA7E_SET_PRESENT_CONTROL_TIMESTAMP_MODE                               8:8
79 #define NVCA7E_SET_PRESENT_CONTROL_TIMESTAMP_MODE_DISABLE                       (0x00000000)
80 #define NVCA7E_SET_PRESENT_CONTROL_TIMESTAMP_MODE_ENABLE                        (0x00000001)
81 #define NVCA7E_SET_PRESENT_CONTROL_STEREO_MODE                                  13:12
82 #define NVCA7E_SET_PRESENT_CONTROL_STEREO_MODE_MONO                             (0x00000000)
83 #define NVCA7E_SET_PRESENT_CONTROL_STEREO_MODE_PAIR_FLIP                        (0x00000001)
84 #define NVCA7E_SET_PRESENT_CONTROL_STEREO_MODE_AT_ANY_FRAME                     (0x00000002)
85 #define NVCA7E_SET_ILUT_CONTROL                                                 (0x00000440)
86 #define NVCA7E_SET_ILUT_CONTROL_INTERPOLATE                                     0:0
87 #define NVCA7E_SET_ILUT_CONTROL_INTERPOLATE_DISABLE                             (0x00000000)
88 #define NVCA7E_SET_ILUT_CONTROL_INTERPOLATE_ENABLE                              (0x00000001)
89 #define NVCA7E_SET_ILUT_CONTROL_MIRROR                                          1:1
90 #define NVCA7E_SET_ILUT_CONTROL_MIRROR_DISABLE                                  (0x00000000)
91 #define NVCA7E_SET_ILUT_CONTROL_MIRROR_ENABLE                                   (0x00000001)
92 #define NVCA7E_SET_ILUT_CONTROL_MODE                                            3:2
93 #define NVCA7E_SET_ILUT_CONTROL_MODE_SEGMENTED                                  (0x00000000)
94 #define NVCA7E_SET_ILUT_CONTROL_MODE_DIRECT8                                    (0x00000001)
95 #define NVCA7E_SET_ILUT_CONTROL_MODE_DIRECT10                                   (0x00000002)
96 #define NVCA7E_SET_ILUT_CONTROL_SIZE                                            18:8
97 #define NVCA7E_SET_SURFACE_ADDRESS_HI_NOTIFIER                                  (0x00000650)
98 #define NVCA7E_SET_SURFACE_ADDRESS_HI_NOTIFIER_ADDRESS_HI                       31:0
99 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER                                  (0x00000654)
100 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_ADDRESS_LO                       31:4
101 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_TARGET                           3:2
102 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_TARGET_IOVA                      (0x00000000)
103 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_TARGET_PHYSICAL_NVM              (0x00000001)
104 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_TARGET_PHYSICAL_PCI              (0x00000002)
105 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_TARGET_PHYSICAL_PCI_COHERENT     (0x00000003)
106 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_ENABLE                           0:0
107 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_ENABLE_DISABLE                   (0x00000000)
108 #define NVCA7E_SET_SURFACE_ADDRESS_LO_NOTIFIER_ENABLE_ENABLE                    (0x00000001)
109 #define NVCA7E_SET_SURFACE_ADDRESS_HI_ISO(b)                                    (0x00000658 + (b)*0x00000004)
110 #define NVCA7E_SET_SURFACE_ADDRESS_HI_ISO_ADDRESS_HI                            31:0
111 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO(b)                                    (0x00000670 + (b)*0x00000004)
112 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_ADDRESS_LO                            31:4
113 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_TARGET                                3:2
114 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_TARGET_IOVA                           (0x00000000)
115 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_TARGET_PHYSICAL_NVM                   (0x00000001)
116 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_TARGET_PHYSICAL_PCI                   (0x00000002)
117 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_TARGET_PHYSICAL_PCI_COHERENT          (0x00000003)
118 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_KIND                                  1:1
119 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_KIND_PITCH                            (0x00000000)
120 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_KIND_BLOCKLINEAR                      (0x00000001)
121 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_ENABLE                                0:0
122 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_ENABLE_DISABLE                        (0x00000000)
123 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ISO_ENABLE_ENABLE                         (0x00000001)
124 #define NVCA7E_SET_SURFACE_ADDRESS_HI_ILUT                                      (0x00000688)
125 #define NVCA7E_SET_SURFACE_ADDRESS_HI_ILUT_ADDRESS_HI                           31:0
126 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT                                      (0x0000068C)
127 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_ADDRESS_LO                           31:4
128 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_TARGET                               3:2
129 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_TARGET_IOVA                          (0x00000000)
130 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_TARGET_PHYSICAL_NVM                  (0x00000001)
131 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_TARGET_PHYSICAL_PCI                  (0x00000002)
132 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_TARGET_PHYSICAL_PCI_COHERENT         (0x00000003)
133 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_ENABLE                               0:0
134 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_ENABLE_DISABLE                       (0x00000000)
135 #define NVCA7E_SET_SURFACE_ADDRESS_LO_ILUT_ENABLE_ENABLE                        (0x00000001)
136 
137 #endif // _clca7e_h
138