xref: /linux/drivers/gpu/drm/nouveau/include/nvrm/535.113.01/nvidia/inc/kernel/gpu/gpu_acpi_data.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1 #ifndef __src_nvidia_inc_kernel_gpu_gpu_acpi_data_h__
2 #define __src_nvidia_inc_kernel_gpu_gpu_acpi_data_h__
3 #include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073system.h>
4 
5 /* Excerpt of RM headers from https://github.com/NVIDIA/open-gpu-kernel-modules/tree/535.113.01 */
6 
7 /*
8  * SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9  * SPDX-License-Identifier: MIT
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included in
19  * all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  */
29 
30 typedef struct DOD_METHOD_DATA
31 {
32     NV_STATUS status;
33     NvU32     acpiIdListLen;
34     NvU32     acpiIdList[NV0073_CTRL_SYSTEM_ACPI_ID_MAP_MAX_DISPLAYS];
35 } DOD_METHOD_DATA;
36 
37 typedef struct JT_METHOD_DATA
38 {
39     NV_STATUS status;
40     NvU32     jtCaps;
41     NvU16     jtRevId;
42     NvBool    bSBIOSCaps;
43 } JT_METHOD_DATA;
44 
45 typedef struct MUX_METHOD_DATA_ELEMENT
46 {
47     NvU32       acpiId;
48     NvU32       mode;
49     NV_STATUS   status;
50 } MUX_METHOD_DATA_ELEMENT;
51 
52 typedef struct MUX_METHOD_DATA
53 {
54     NvU32                       tableLen;
55     MUX_METHOD_DATA_ELEMENT     acpiIdMuxModeTable[NV0073_CTRL_SYSTEM_ACPI_ID_MAP_MAX_DISPLAYS];
56     MUX_METHOD_DATA_ELEMENT     acpiIdMuxPartTable[NV0073_CTRL_SYSTEM_ACPI_ID_MAP_MAX_DISPLAYS];
57 } MUX_METHOD_DATA;
58 
59 typedef struct CAPS_METHOD_DATA
60 {
61     NV_STATUS status;
62     NvU32     optimusCaps;
63 } CAPS_METHOD_DATA;
64 
65 typedef struct ACPI_METHOD_DATA
66 {
67     NvBool                                               bValid;
68     DOD_METHOD_DATA                                      dodMethodData;
69     JT_METHOD_DATA                                       jtMethodData;
70     MUX_METHOD_DATA                                      muxMethodData;
71     CAPS_METHOD_DATA                                     capsMethodData;
72 } ACPI_METHOD_DATA;
73 
74 #endif
75