1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __NVIF_IF0001_H__ 3 #define __NVIF_IF0001_H__ 4 5 #define NVIF_CONTROL_PSTATE_INFO 0x00 6 #define NVIF_CONTROL_PSTATE_ATTR 0x01 7 #define NVIF_CONTROL_PSTATE_USER 0x02 8 9 struct nvif_control_pstate_info_v0 { 10 __u8 version; 11 __u8 count; /* out: number of power states */ 12 #define NVIF_CONTROL_PSTATE_INFO_V0_USTATE_DISABLE (-1) 13 #define NVIF_CONTROL_PSTATE_INFO_V0_USTATE_PERFMON (-2) 14 __s8 ustate_ac; /* out: target pstate index */ 15 __s8 ustate_dc; /* out: target pstate index */ 16 __s8 pwrsrc; /* out: current power source */ 17 #define NVIF_CONTROL_PSTATE_INFO_V0_PSTATE_UNKNOWN (-1) 18 #define NVIF_CONTROL_PSTATE_INFO_V0_PSTATE_PERFMON (-2) 19 __s8 pstate; /* out: current pstate index */ 20 __u8 pad06[2]; 21 }; 22 23 struct nvif_control_pstate_attr_v0 { 24 __u8 version; 25 #define NVIF_CONTROL_PSTATE_ATTR_V0_STATE_CURRENT (-1) 26 __s8 state; /* in: index of pstate to query 27 * out: pstate identifier 28 */ 29 __u8 index; /* in: index of attribute to query 30 * out: index of next attribute, or 0 if no more 31 */ 32 __u8 pad03[5]; 33 __u32 min; 34 __u32 max; 35 char name[32]; 36 char unit[16]; 37 }; 38 39 struct nvif_control_pstate_user_v0 { 40 __u8 version; 41 #define NVIF_CONTROL_PSTATE_USER_V0_STATE_UNKNOWN (-1) 42 #define NVIF_CONTROL_PSTATE_USER_V0_STATE_PERFMON (-2) 43 __s8 ustate; /* in: pstate identifier */ 44 __s8 pwrsrc; /* in: target power source */ 45 __u8 pad03[5]; 46 }; 47 #endif 48