![]() |
|
|||
0001 /* 0002 * Copyright 2012 Advanced Micro Devices, Inc. 0003 * 0004 * Permission is hereby granted, free of charge, to any person obtaining a 0005 * copy of this software and associated documentation files (the "Software"), 0006 * to deal in the Software without restriction, including without limitation 0007 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 0008 * and/or sell copies of the Software, and to permit persons to whom the 0009 * Software is furnished to do so, subject to the following conditions: 0010 * 0011 * The above copyright notice and this permission notice shall be included in 0012 * all copies or substantial portions of the Software. 0013 * 0014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 0017 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 0018 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 0019 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 0020 * OTHER DEALINGS IN THE SOFTWARE. 0021 * 0022 */ 0023 0024 #ifndef AMD_ACPI_H 0025 #define AMD_ACPI_H 0026 0027 #define ACPI_AC_CLASS "ac_adapter" 0028 0029 struct atif_verify_interface { 0030 u16 size; /* structure size in bytes (includes size field) */ 0031 u16 version; /* version */ 0032 u32 notification_mask; /* supported notifications mask */ 0033 u32 function_bits; /* supported functions bit vector */ 0034 } __packed; 0035 0036 struct atif_system_params { 0037 u16 size; /* structure size in bytes (includes size field) */ 0038 u32 valid_mask; /* valid flags mask */ 0039 u32 flags; /* flags */ 0040 u8 command_code; /* notify command code */ 0041 } __packed; 0042 0043 struct atif_sbios_requests { 0044 u16 size; /* structure size in bytes (includes size field) */ 0045 u32 pending; /* pending sbios requests */ 0046 u8 panel_exp_mode; /* panel expansion mode */ 0047 u8 thermal_gfx; /* thermal state: target gfx controller */ 0048 u8 thermal_state; /* thermal state: state id (0: exit state, non-0: state) */ 0049 u8 forced_power_gfx; /* forced power state: target gfx controller */ 0050 u8 forced_power_state; /* forced power state: state id */ 0051 u8 system_power_src; /* system power source */ 0052 u8 backlight_level; /* panel backlight level (0-255) */ 0053 } __packed; 0054 0055 struct atif_qbtc_arguments { 0056 u16 size; /* structure size in bytes (includes size field) */ 0057 u8 requested_display; /* which display is requested */ 0058 } __packed; 0059 0060 #define ATIF_QBTC_MAX_DATA_POINTS 99 0061 0062 struct atif_qbtc_data_point { 0063 u8 luminance; /* luminance in percent */ 0064 u8 ipnut_signal; /* input signal in range 0-255 */ 0065 } __packed; 0066 0067 struct atif_qbtc_output { 0068 u16 size; /* structure size in bytes (includes size field) */ 0069 u16 flags; /* all zeroes */ 0070 u8 error_code; /* error code */ 0071 u8 ac_level; /* default brightness on AC power */ 0072 u8 dc_level; /* default brightness on DC power */ 0073 u8 min_input_signal; /* max input signal in range 0-255 */ 0074 u8 max_input_signal; /* min input signal in range 0-255 */ 0075 u8 number_of_points; /* number of data points */ 0076 struct atif_qbtc_data_point data_points[ATIF_QBTC_MAX_DATA_POINTS]; 0077 } __packed; 0078 0079 #define ATIF_NOTIFY_MASK 0x3 0080 #define ATIF_NOTIFY_NONE 0 0081 #define ATIF_NOTIFY_81 1 0082 #define ATIF_NOTIFY_N 2 0083 0084 struct atcs_verify_interface { 0085 u16 size; /* structure size in bytes (includes size field) */ 0086 u16 version; /* version */ 0087 u32 function_bits; /* supported functions bit vector */ 0088 } __packed; 0089 0090 #define ATCS_VALID_FLAGS_MASK 0x3 0091 0092 struct atcs_pref_req_input { 0093 u16 size; /* structure size in bytes (includes size field) */ 0094 u16 client_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */ 0095 u16 valid_flags_mask; /* valid flags mask */ 0096 u16 flags; /* flags */ 0097 u8 req_type; /* request type */ 0098 u8 perf_req; /* performance request */ 0099 } __packed; 0100 0101 struct atcs_pref_req_output { 0102 u16 size; /* structure size in bytes (includes size field) */ 0103 u8 ret_val; /* return value */ 0104 } __packed; 0105 0106 struct atcs_pwr_shift_input { 0107 u16 size; /* structure size in bytes (includes size field) */ 0108 u16 dgpu_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */ 0109 u8 dev_acpi_state; /* D0 = 0, D3 hot = 3 */ 0110 u8 drv_state; /* 0 = operational, 1 = not operational */ 0111 } __packed; 0112 0113 /* AMD hw uses four ACPI control methods: 0114 * 1. ATIF 0115 * ARG0: (ACPI_INTEGER) function code 0116 * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes 0117 * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes 0118 * ATIF provides an entry point for the gfx driver to interact with the sbios. 0119 * The AMD ACPI notification mechanism uses Notify (VGA, 0x81) or a custom 0120 * notification. Which notification is used as indicated by the ATIF Control 0121 * Method GET_SYSTEM_PARAMETERS. When the driver receives Notify (VGA, 0x81) or 0122 * a custom notification it invokes ATIF Control Method GET_SYSTEM_BIOS_REQUESTS 0123 * to identify pending System BIOS requests and associated parameters. For 0124 * example, if one of the pending requests is DISPLAY_SWITCH_REQUEST, the driver 0125 * will perform display device detection and invoke ATIF Control Method 0126 * SELECT_ACTIVE_DISPLAYS. 0127 * 0128 * 2. ATPX 0129 * ARG0: (ACPI_INTEGER) function code 0130 * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes 0131 * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes 0132 * ATPX methods are used on PowerXpress systems to handle mux switching and 0133 * discrete GPU power control. 0134 * 0135 * 3. ATRM 0136 * ARG0: (ACPI_INTEGER) offset of vbios rom data 0137 * ARG1: (ACPI_BUFFER) size of the buffer to fill (up to 4K). 0138 * OUTPUT: (ACPI_BUFFER) output buffer 0139 * ATRM provides an interfacess to access the discrete GPU vbios image on 0140 * PowerXpress systems with multiple GPUs. 0141 * 0142 * 4. ATCS 0143 * ARG0: (ACPI_INTEGER) function code 0144 * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes 0145 * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes 0146 * ATCS provides an interface to AMD chipset specific functionality. 0147 * 0148 */ 0149 /* ATIF */ 0150 #define ATIF_FUNCTION_VERIFY_INTERFACE 0x0 0151 /* ARG0: ATIF_FUNCTION_VERIFY_INTERFACE 0152 * ARG1: none 0153 * OUTPUT: 0154 * WORD - structure size in bytes (includes size field) 0155 * WORD - version 0156 * DWORD - supported notifications mask 0157 * DWORD - supported functions bit vector 0158 */ 0159 /* Notifications mask */ 0160 # define ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED (1 << 2) 0161 # define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED (1 << 3) 0162 # define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED (1 << 4) 0163 # define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED (1 << 7) 0164 # define ATIF_DGPU_DISPLAY_EVENT_SUPPORTED (1 << 8) 0165 # define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED (1 << 12) 0166 /* supported functions vector */ 0167 # define ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED (1 << 0) 0168 # define ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED (1 << 1) 0169 # define ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED (1 << 12) 0170 # define ATIF_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED (1 << 15) 0171 # define ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED (1 << 16) 0172 # define ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED (1 << 20) 0173 #define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1 0174 /* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0175 * ARG1: none 0176 * OUTPUT: 0177 * WORD - structure size in bytes (includes size field) 0178 * DWORD - valid flags mask 0179 * DWORD - flags 0180 * 0181 * OR 0182 * 0183 * WORD - structure size in bytes (includes size field) 0184 * DWORD - valid flags mask 0185 * DWORD - flags 0186 * BYTE - notify command code 0187 * 0188 * flags 0189 * bits 1:0: 0190 * 0 - Notify(VGA, 0x81) is not used for notification 0191 * 1 - Notify(VGA, 0x81) is used for notification 0192 * 2 - Notify(VGA, n) is used for notification where 0193 * n (0xd0-0xd9) is specified in notify command code. 0194 * bit 2: 0195 * 1 - lid changes not reported though int10 0196 * bit 3: 0197 * 1 - system bios controls overclocking 0198 * bit 4: 0199 * 1 - enable overclocking 0200 */ 0201 #define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2 0202 /* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0203 * ARG1: none 0204 * OUTPUT: 0205 * WORD - structure size in bytes (includes size field) 0206 * DWORD - pending sbios requests 0207 * BYTE - reserved (all zeroes) 0208 * BYTE - thermal state: target gfx controller 0209 * BYTE - thermal state: state id (0: exit state, non-0: state) 0210 * BYTE - forced power state: target gfx controller 0211 * BYTE - forced power state: state id (0: forced state, non-0: state) 0212 * BYTE - system power source 0213 * BYTE - panel backlight level (0-255) 0214 * BYTE - GPU package power limit: target gfx controller 0215 * DWORD - GPU package power limit: value (24:8 fractional format, Watts) 0216 */ 0217 /* pending sbios requests */ 0218 # define ATIF_THERMAL_STATE_CHANGE_REQUEST (1 << 2) 0219 # define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST (1 << 3) 0220 # define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST (1 << 4) 0221 # define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST (1 << 7) 0222 # define ATIF_DGPU_DISPLAY_EVENT (1 << 8) 0223 # define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST (1 << 12) 0224 /* target gfx controller */ 0225 # define ATIF_TARGET_GFX_SINGLE 0 0226 # define ATIF_TARGET_GFX_PX_IGPU 1 0227 # define ATIF_TARGET_GFX_PX_DGPU 2 0228 /* system power source */ 0229 # define ATIF_POWER_SOURCE_AC 1 0230 # define ATIF_POWER_SOURCE_DC 2 0231 # define ATIF_POWER_SOURCE_RESTRICTED_AC_1 3 0232 # define ATIF_POWER_SOURCE_RESTRICTED_AC_2 4 0233 #define ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION 0xD 0234 /* ARG0: ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION 0235 * ARG1: 0236 * WORD - structure size in bytes (includes size field) 0237 * WORD - gfx controller id 0238 * BYTE - current temperature (degress Celsius) 0239 * OUTPUT: none 0240 */ 0241 #define ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0x10 0242 /* ARG0: ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0243 * ARG1: 0244 * WORD - structure size in bytes (includes size field) 0245 * BYTE - requested display 0246 * OUTPUT: 0247 * WORD - structure size in bytes (includes size field) 0248 * WORD - flags (currently all 16 bits are reserved) 0249 * BYTE - error code (on failure, disregard all below fields) 0250 * BYTE - AC level (default brightness in percent when machine has full power) 0251 * BYTE - DC level (default brightness in percent when machine is on battery) 0252 * BYTE - min input signal, in range 0-255, corresponding to 0% backlight 0253 * BYTE - max input signal, in range 0-255, corresponding to 100% backlight 0254 * BYTE - number of reported data points 0255 * BYTE - luminance level in percent \ repeated structure 0256 * BYTE - input signal in range 0-255 / does not have entries for 0% and 100% 0257 */ 0258 /* requested display */ 0259 # define ATIF_QBTC_REQUEST_LCD1 0 0260 # define ATIF_QBTC_REQUEST_CRT1 1 0261 # define ATIF_QBTC_REQUEST_DFP1 3 0262 # define ATIF_QBTC_REQUEST_CRT2 4 0263 # define ATIF_QBTC_REQUEST_LCD2 5 0264 # define ATIF_QBTC_REQUEST_DFP2 7 0265 # define ATIF_QBTC_REQUEST_DFP3 9 0266 # define ATIF_QBTC_REQUEST_DFP4 10 0267 # define ATIF_QBTC_REQUEST_DFP5 11 0268 # define ATIF_QBTC_REQUEST_DFP6 12 0269 /* error code */ 0270 # define ATIF_QBTC_ERROR_CODE_SUCCESS 0 0271 # define ATIF_QBTC_ERROR_CODE_FAILURE 1 0272 # define ATIF_QBTC_ERROR_CODE_DEVICE_NOT_SUPPORTED 2 0273 #define ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0x11 0274 /* ARG0: ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0275 * ARG1: none 0276 * OUTPUT: none 0277 */ 0278 #define ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0x15 0279 /* ARG0: ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0280 * ARG1: none 0281 * OUTPUT: 0282 * WORD - number of reported external gfx devices 0283 * WORD - device structure size in bytes (excludes device size field) 0284 * WORD - flags \ 0285 * WORD - bus number / repeated structure 0286 */ 0287 /* flags */ 0288 # define ATIF_EXTERNAL_GRAPHICS_PORT (1 << 0) 0289 0290 /* ATPX */ 0291 #define ATPX_FUNCTION_VERIFY_INTERFACE 0x0 0292 /* ARG0: ATPX_FUNCTION_VERIFY_INTERFACE 0293 * ARG1: none 0294 * OUTPUT: 0295 * WORD - structure size in bytes (includes size field) 0296 * WORD - version 0297 * DWORD - supported functions bit vector 0298 */ 0299 /* supported functions vector */ 0300 # define ATPX_GET_PX_PARAMETERS_SUPPORTED (1 << 0) 0301 # define ATPX_POWER_CONTROL_SUPPORTED (1 << 1) 0302 # define ATPX_DISPLAY_MUX_CONTROL_SUPPORTED (1 << 2) 0303 # define ATPX_I2C_MUX_CONTROL_SUPPORTED (1 << 3) 0304 # define ATPX_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION_SUPPORTED (1 << 4) 0305 # define ATPX_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION_SUPPORTED (1 << 5) 0306 # define ATPX_GET_DISPLAY_CONNECTORS_MAPPING_SUPPORTED (1 << 7) 0307 # define ATPX_GET_DISPLAY_DETECTION_PORTS_SUPPORTED (1 << 8) 0308 #define ATPX_FUNCTION_GET_PX_PARAMETERS 0x1 0309 /* ARG0: ATPX_FUNCTION_GET_PX_PARAMETERS 0310 * ARG1: none 0311 * OUTPUT: 0312 * WORD - structure size in bytes (includes size field) 0313 * DWORD - valid flags mask 0314 * DWORD - flags 0315 */ 0316 /* flags */ 0317 # define ATPX_LVDS_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 0) 0318 # define ATPX_CRT1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 1) 0319 # define ATPX_DVI1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 2) 0320 # define ATPX_CRT1_RGB_SIGNAL_MUXED (1 << 3) 0321 # define ATPX_TV_SIGNAL_MUXED (1 << 4) 0322 # define ATPX_DFP_SIGNAL_MUXED (1 << 5) 0323 # define ATPX_SEPARATE_MUX_FOR_I2C (1 << 6) 0324 # define ATPX_DYNAMIC_PX_SUPPORTED (1 << 7) 0325 # define ATPX_ACF_NOT_SUPPORTED (1 << 8) 0326 # define ATPX_FIXED_NOT_SUPPORTED (1 << 9) 0327 # define ATPX_DYNAMIC_DGPU_POWER_OFF_SUPPORTED (1 << 10) 0328 # define ATPX_DGPU_REQ_POWER_FOR_DISPLAYS (1 << 11) 0329 # define ATPX_DGPU_CAN_DRIVE_DISPLAYS (1 << 12) 0330 # define ATPX_MS_HYBRID_GFX_SUPPORTED (1 << 14) 0331 #define ATPX_FUNCTION_POWER_CONTROL 0x2 0332 /* ARG0: ATPX_FUNCTION_POWER_CONTROL 0333 * ARG1: 0334 * WORD - structure size in bytes (includes size field) 0335 * BYTE - dGPU power state (0: power off, 1: power on) 0336 * OUTPUT: none 0337 */ 0338 #define ATPX_FUNCTION_DISPLAY_MUX_CONTROL 0x3 0339 /* ARG0: ATPX_FUNCTION_DISPLAY_MUX_CONTROL 0340 * ARG1: 0341 * WORD - structure size in bytes (includes size field) 0342 * WORD - display mux control (0: iGPU, 1: dGPU) 0343 * OUTPUT: none 0344 */ 0345 # define ATPX_INTEGRATED_GPU 0 0346 # define ATPX_DISCRETE_GPU 1 0347 #define ATPX_FUNCTION_I2C_MUX_CONTROL 0x4 0348 /* ARG0: ATPX_FUNCTION_I2C_MUX_CONTROL 0349 * ARG1: 0350 * WORD - structure size in bytes (includes size field) 0351 * WORD - i2c/aux/hpd mux control (0: iGPU, 1: dGPU) 0352 * OUTPUT: none 0353 */ 0354 #define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION 0x5 0355 /* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION 0356 * ARG1: 0357 * WORD - structure size in bytes (includes size field) 0358 * WORD - target gpu (0: iGPU, 1: dGPU) 0359 * OUTPUT: none 0360 */ 0361 #define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION 0x6 0362 /* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION 0363 * ARG1: 0364 * WORD - structure size in bytes (includes size field) 0365 * WORD - target gpu (0: iGPU, 1: dGPU) 0366 * OUTPUT: none 0367 */ 0368 #define ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING 0x8 0369 /* ARG0: ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING 0370 * ARG1: none 0371 * OUTPUT: 0372 * WORD - number of display connectors 0373 * WORD - connector structure size in bytes (excludes connector size field) 0374 * BYTE - flags \ 0375 * BYTE - ATIF display vector bit position } repeated 0376 * BYTE - adapter id (0: iGPU, 1-n: dGPU ordered by pcie bus number) } structure 0377 * WORD - connector ACPI id / 0378 */ 0379 /* flags */ 0380 # define ATPX_DISPLAY_OUTPUT_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 0) 0381 # define ATPX_DISPLAY_HPD_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 1) 0382 # define ATPX_DISPLAY_I2C_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 2) 0383 #define ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS 0x9 0384 /* ARG0: ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS 0385 * ARG1: none 0386 * OUTPUT: 0387 * WORD - number of HPD/DDC ports 0388 * WORD - port structure size in bytes (excludes port size field) 0389 * BYTE - ATIF display vector bit position \ 0390 * BYTE - hpd id } reapeated structure 0391 * BYTE - ddc id / 0392 * 0393 * available on A+A systems only 0394 */ 0395 /* hpd id */ 0396 # define ATPX_HPD_NONE 0 0397 # define ATPX_HPD1 1 0398 # define ATPX_HPD2 2 0399 # define ATPX_HPD3 3 0400 # define ATPX_HPD4 4 0401 # define ATPX_HPD5 5 0402 # define ATPX_HPD6 6 0403 /* ddc id */ 0404 # define ATPX_DDC_NONE 0 0405 # define ATPX_DDC1 1 0406 # define ATPX_DDC2 2 0407 # define ATPX_DDC3 3 0408 # define ATPX_DDC4 4 0409 # define ATPX_DDC5 5 0410 # define ATPX_DDC6 6 0411 # define ATPX_DDC7 7 0412 # define ATPX_DDC8 8 0413 0414 /* ATCS */ 0415 #define ATCS_FUNCTION_VERIFY_INTERFACE 0x0 0416 /* ARG0: ATCS_FUNCTION_VERIFY_INTERFACE 0417 * ARG1: none 0418 * OUTPUT: 0419 * WORD - structure size in bytes (includes size field) 0420 * WORD - version 0421 * DWORD - supported functions bit vector 0422 */ 0423 /* supported functions vector */ 0424 # define ATCS_GET_EXTERNAL_STATE_SUPPORTED (1 << 0) 0425 # define ATCS_PCIE_PERFORMANCE_REQUEST_SUPPORTED (1 << 1) 0426 # define ATCS_PCIE_DEVICE_READY_NOTIFICATION_SUPPORTED (1 << 2) 0427 # define ATCS_SET_PCIE_BUS_WIDTH_SUPPORTED (1 << 3) 0428 # define ATCS_SET_POWER_SHIFT_CONTROL_SUPPORTED (1 << 7) 0429 #define ATCS_FUNCTION_GET_EXTERNAL_STATE 0x1 0430 /* ARG0: ATCS_FUNCTION_GET_EXTERNAL_STATE 0431 * ARG1: none 0432 * OUTPUT: 0433 * WORD - structure size in bytes (includes size field) 0434 * DWORD - valid flags mask 0435 * DWORD - flags (0: undocked, 1: docked) 0436 */ 0437 /* flags */ 0438 # define ATCS_DOCKED (1 << 0) 0439 #define ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST 0x2 0440 /* ARG0: ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST 0441 * ARG1: 0442 * WORD - structure size in bytes (includes size field) 0443 * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) 0444 * WORD - valid flags mask 0445 * WORD - flags 0446 * BYTE - request type 0447 * BYTE - performance request 0448 * OUTPUT: 0449 * WORD - structure size in bytes (includes size field) 0450 * BYTE - return value 0451 */ 0452 /* flags */ 0453 # define ATCS_ADVERTISE_CAPS (1 << 0) 0454 # define ATCS_WAIT_FOR_COMPLETION (1 << 1) 0455 /* request type */ 0456 # define ATCS_PCIE_LINK_SPEED 1 0457 /* performance request */ 0458 # define ATCS_REMOVE 0 0459 # define ATCS_FORCE_LOW_POWER 1 0460 # define ATCS_PERF_LEVEL_1 2 /* PCIE Gen 1 */ 0461 # define ATCS_PERF_LEVEL_2 3 /* PCIE Gen 2 */ 0462 # define ATCS_PERF_LEVEL_3 4 /* PCIE Gen 3 */ 0463 /* return value */ 0464 # define ATCS_REQUEST_REFUSED 1 0465 # define ATCS_REQUEST_COMPLETE 2 0466 # define ATCS_REQUEST_IN_PROGRESS 3 0467 #define ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION 0x3 0468 /* ARG0: ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION 0469 * ARG1: none 0470 * OUTPUT: none 0471 */ 0472 #define ATCS_FUNCTION_SET_PCIE_BUS_WIDTH 0x4 0473 /* ARG0: ATCS_FUNCTION_SET_PCIE_BUS_WIDTH 0474 * ARG1: 0475 * WORD - structure size in bytes (includes size field) 0476 * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) 0477 * BYTE - number of active lanes 0478 * OUTPUT: 0479 * WORD - structure size in bytes (includes size field) 0480 * BYTE - number of active lanes 0481 */ 0482 0483 #define ATCS_FUNCTION_POWER_SHIFT_CONTROL 0x8 0484 /* ARG0: ATCS_FUNCTION_POWER_SHIFT_CONTROL 0485 * ARG1: 0486 * WORD - structure size in bytes (includes size field) 0487 * WORD - dGPU id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) 0488 * BYTE - Device ACPI state 0489 * BYTE - Driver state 0490 * OUTPUT: none 0491 */ 0492 0493 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |