1344c2e5aSBen Skeggs /*
2344c2e5aSBen Skeggs  * Copyright (c) 1993-2014, NVIDIA CORPORATION. All rights reserved.
3344c2e5aSBen Skeggs  *
4344c2e5aSBen Skeggs  * Permission is hereby granted, free of charge, to any person obtaining a
5344c2e5aSBen Skeggs  * copy of this software and associated documentation files (the "Software"),
6344c2e5aSBen Skeggs  * to deal in the Software without restriction, including without limitation
7344c2e5aSBen Skeggs  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8344c2e5aSBen Skeggs  * and/or sell copies of the Software, and to permit persons to whom the
9344c2e5aSBen Skeggs  * Software is furnished to do so, subject to the following conditions:
10344c2e5aSBen Skeggs  *
11344c2e5aSBen Skeggs  * The above copyright notice and this permission notice shall be included in
12344c2e5aSBen Skeggs  * all copies or substantial portions of the Software.
13344c2e5aSBen Skeggs  *
14344c2e5aSBen Skeggs  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15344c2e5aSBen Skeggs  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16344c2e5aSBen Skeggs  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17344c2e5aSBen Skeggs  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18344c2e5aSBen Skeggs  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19344c2e5aSBen Skeggs  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20344c2e5aSBen Skeggs  * DEALINGS IN THE SOFTWARE.
21344c2e5aSBen Skeggs  */
22344c2e5aSBen Skeggs 
23344c2e5aSBen Skeggs 
24344c2e5aSBen Skeggs #ifndef _cl917d_h_
25344c2e5aSBen Skeggs #define _cl917d_h_
26344c2e5aSBen Skeggs 
27344c2e5aSBen Skeggs // class methods
28344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL(a)                                               (0x00000200 + (a)*0x00000020)
29344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK                                       3:0
30344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK_NONE                                  (0x00000000)
31344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK_HEAD0                                 (0x00000001)
32344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK_HEAD1                                 (0x00000002)
33344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK_HEAD2                                 (0x00000004)
34344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_OWNER_MASK_HEAD3                                 (0x00000008)
35344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL                                         11:8
36344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_LVDS_CUSTOM                             (0x00000000)
37344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_SINGLE_TMDS_A                           (0x00000001)
38344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_SINGLE_TMDS_B                           (0x00000002)
39344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_DUAL_TMDS                               (0x00000005)
40344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_DP_A                                    (0x00000008)
41344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_DP_B                                    (0x00000009)
42344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PROTOCOL_CUSTOM                                  (0x0000000F)
43344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_DE_SYNC_POLARITY                                 14:14
44344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_DE_SYNC_POLARITY_POSITIVE_TRUE                   (0x00000000)
45344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_DE_SYNC_POLARITY_NEGATIVE_TRUE                   (0x00000001)
46344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PIXEL_REPLICATE_MODE                             21:20
47344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PIXEL_REPLICATE_MODE_OFF                         (0x00000000)
48344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PIXEL_REPLICATE_MODE_X2                          (0x00000001)
49344c2e5aSBen Skeggs #define NV917D_SOR_SET_CONTROL_PIXEL_REPLICATE_MODE_X4                          (0x00000002)
50344c2e5aSBen Skeggs 
51344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR(a)                                       (0x00000480 + (a)*0x00000300)
52344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_ENABLE                                   31:31
53344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_ENABLE_DISABLE                           (0x00000000)
54344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_ENABLE_ENABLE                            (0x00000001)
55344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_FORMAT                                   25:24
56344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_FORMAT_A1R5G5B5                          (0x00000000)
57344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_FORMAT_A8R8G8B8                          (0x00000001)
58344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_SIZE                                     27:26
59344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_SIZE_W32_H32                             (0x00000000)
60344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_SIZE_W64_H64                             (0x00000001)
61344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_SIZE_W128_H128                           (0x00000002)
62344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_SIZE_W256_H256                           (0x00000003)
63344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_HOT_SPOT_X                               15:8
64344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_HOT_SPOT_Y                               23:16
65344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_COMPOSITION                              29:28
66344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_COMPOSITION_ALPHA_BLEND                  (0x00000000)
67344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_COMPOSITION_PREMULT_ALPHA_BLEND          (0x00000001)
68344c2e5aSBen Skeggs #define NV917D_HEAD_SET_CONTROL_CURSOR_COMPOSITION_XOR                          (0x00000002)
69*ba839b75SLyude Paul #define NV917D_HEAD_SET_OFFSET_CURSOR(a)                                        (0x00000484 + (a)*0x00000300)
70*ba839b75SLyude Paul #define NV917D_HEAD_SET_OFFSET_CURSOR_ORIGIN                                    31:0
71*ba839b75SLyude Paul #define NV917D_HEAD_SET_CONTEXT_DMA_CURSOR(a)                                   (0x0000048C + (a)*0x00000300)
72*ba839b75SLyude Paul #define NV917D_HEAD_SET_CONTEXT_DMA_CURSOR_HANDLE                               31:0
73344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL(a)                                       (0x000004A0 + (a)*0x00000300)
74344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_ENABLE                                   0:0
75344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_ENABLE_DISABLE                           (0x00000000)
76344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_ENABLE_ENABLE                            (0x00000001)
77344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_BITS                                     2:1
78344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_BITS_DITHER_TO_6_BITS                    (0x00000000)
79344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_BITS_DITHER_TO_8_BITS                    (0x00000001)
80344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_BITS_DITHER_TO_10_BITS                   (0x00000002)
81344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE                                     6:3
82344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE_DYNAMIC_ERR_ACC                     (0x00000000)
83344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE_STATIC_ERR_ACC                      (0x00000001)
84344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE_DYNAMIC_2X2                         (0x00000002)
85344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE_STATIC_2X2                          (0x00000003)
86344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_MODE_TEMPORAL                            (0x00000004)
87344c2e5aSBen Skeggs #define NV917D_HEAD_SET_DITHER_CONTROL_PHASE                                    8:7
88344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS(a)                            (0x000004D0 + (a)*0x00000300)
89344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_USABLE                        0:0
90344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_USABLE_FALSE                  (0x00000000)
91344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_USABLE_TRUE                   (0x00000001)
92344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_PIXEL_DEPTH                   11:8
93344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_PIXEL_DEPTH_BPP_8             (0x00000000)
94344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_PIXEL_DEPTH_BPP_16            (0x00000001)
95344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_PIXEL_DEPTH_BPP_32            (0x00000003)
96344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_PIXEL_DEPTH_BPP_64            (0x00000005)
97344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_SUPER_SAMPLE                  13:12
98344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_SUPER_SAMPLE_X1_AA            (0x00000000)
99344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_SUPER_SAMPLE_X4_AA            (0x00000002)
100344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_BASE_LUT                      17:16
101344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_BASE_LUT_USAGE_NONE           (0x00000000)
102344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_BASE_LUT_USAGE_257            (0x00000001)
103344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_BASE_LUT_USAGE_1025           (0x00000002)
104344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_OUTPUT_LUT                    21:20
105344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_OUTPUT_LUT_USAGE_NONE         (0x00000000)
106344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_OUTPUT_LUT_USAGE_257          (0x00000001)
107344c2e5aSBen Skeggs #define NV917D_HEAD_SET_BASE_CHANNEL_USAGE_BOUNDS_OUTPUT_LUT_USAGE_1025         (0x00000002)
108344c2e5aSBen Skeggs #endif // _cl917d_h
109