1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2005-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  */
23 
24 #pragma once
25 
26 #include <nvtypes.h>
27 
28 //
29 // This file was generated with FINN, an NVIDIA coding tool.
30 // Source file:      ctrl/ctrl5070/ctrl5070system.finn
31 //
32 
33 #include "ctrl/ctrl5070/ctrl5070base.h"
34 #include "ctrl/ctrl5070/ctrl5070common.h" // NV5070_CTRL_CMD_MAX_HEADS
35 
36 /* extract cap bit setting from tbl */
37 #define NV5070_CTRL_SYSTEM_GET_CAP(tbl,c)         (((NvU8)tbl[(1?c)]) & (0?c))
38 
39 /* caps format is byte_index:bit_mask */
40 #define NV5070_CTRL_SYSTEM_CAPS_BUG_237734_REQUIRES_DMI_WAR                 0:0x01 // Deprecated
41 #define NV5070_CTRL_SYSTEM_CAPS_STEREO_DIN_AVAILABLE                        0:0x02
42 #define NV5070_CTRL_SYSTEM_CAPS_BUG_381003_MULTIWAY_AFR_WAR                 0:0x04
43 #define NV5070_CTRL_SYSTEM_CAPS_BUG_538079_COLOR_COMPRESSION_SUPPORTED      0:0x08 // Deprecated
44 #define NV5070_CTRL_SYSTEM_CAPS_BUG_2052012_GLITCHY_MCLK_SWITCH             0:0x10
45 #define NV5070_CTRL_SYSTEM_CAPS_DEEP_COLOR_SUPPORT                          0:0x20
46 #define NV5070_CTRL_SYSTEM_CAPS_BUG_644815_DNISO_VIDMEM_ONLY                0:0x40
47 
48 
49 /* size in bytes of display caps table */
50 #define NV5070_CTRL_SYSTEM_CAPS_TBL_SIZE   1
51 
52 /*
53  * NV5070_CTRL_CMD_SYSTEM_GET_CAPS_V2
54  *
55  * This command returns the set of display capabilities for the parent device
56  * in the form of an array of unsigned bytes.  Display capabilities
57  * include supported features and required workarounds for the display
58  * engine(s) within the device, each represented by a byte offset into the
59  * table and a bit position within that byte.  The set of display capabilities
60  * will be normalized across all GPUs within the device (a feature capability
61  * will be set only if it's supported on all GPUs while a required workaround
62  * capability will be set if any of the GPUs require it).
63  *
64  *   [out] capsTbl
65  *     This caps table array is where the display cap bits will be transferred
66  *     by the RM. The caps table is an array of unsigned bytes.
67  *
68  * Possible status values returned are:
69  *   NV_OK
70  */
71 #define NV5070_CTRL_CMD_SYSTEM_GET_CAPS_V2 (0x50700709) /* finn: Evaluated from "(FINN_NV50_DISPLAY_SYSTEM_INTERFACE_ID << 8) | NV5070_CTRL_SYSTEM_GET_CAPS_V2_PARAMS_MESSAGE_ID" */
72 
73 #define NV5070_CTRL_SYSTEM_GET_CAPS_V2_PARAMS_MESSAGE_ID (0x9U)
74 
75 typedef struct NV5070_CTRL_SYSTEM_GET_CAPS_V2_PARAMS {
76     NV5070_CTRL_CMD_BASE_PARAMS base;
77 
78     NvU8                        capsTbl[NV5070_CTRL_SYSTEM_CAPS_TBL_SIZE];
79 } NV5070_CTRL_SYSTEM_GET_CAPS_V2_PARAMS;
80 
81 /* _ctrl5070system_h_ */
82