aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch')
-rw-r--r--common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch1049
1 files changed, 0 insertions, 1049 deletions
diff --git a/common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch b/common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch
deleted file mode 100644
index fa15df41..00000000
--- a/common/recipes-kernel/linux/files/0036-drm-amdgpu-mv-amdgpu_acpi.h-to-amd-include-amd_acpi..patch
+++ /dev/null
@@ -1,1049 +0,0 @@
-From cf4cf15eac940a77b70da8e9b4e4fe114c281fd0 Mon Sep 17 00:00:00 2001
-From: Rex Zhu <Rex.Zhu@amd.com>
-Date: Fri, 18 Sep 2015 16:35:17 +0800
-Subject: [PATCH 0036/1110] drm/amdgpu: mv amdgpu_acpi.h to
- amd/include/amd_acpi.h
-
-This will be shared with the new powerplay module.
-
-Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
-Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +-
- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h | 494 -----------------------
- drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 2 +-
- drivers/gpu/drm/amd/include/amd_acpi.h | 494 +++++++++++++++++++++++
- 4 files changed, 496 insertions(+), 496 deletions(-)
- delete mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h
- create mode 100644 drivers/gpu/drm/amd/include/amd_acpi.h
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
-index 5df5b83..5cd7b73 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
-@@ -29,7 +29,7 @@
- #include <drm/drmP.h>
- #include <drm/drm_crtc_helper.h>
- #include "amdgpu.h"
--#include "amdgpu_acpi.h"
-+#include "amd_acpi.h"
- #include "atom.h"
-
- extern void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h
-deleted file mode 100644
-index 51ce3e3..0000000
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h
-+++ /dev/null
-@@ -1,494 +0,0 @@
--/*
-- * Copyright 2012 Advanced Micro Devices, Inc.
-- *
-- * Permission is hereby granted, free of charge, to any person obtaining a
-- * copy of this software and associated documentation files (the "Software"),
-- * to deal in the Software without restriction, including without limitation
-- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-- * and/or sell copies of the Software, and to permit persons to whom the
-- * Software is furnished to do so, subject to the following conditions:
-- *
-- * The above copyright notice and this permission notice shall be included in
-- * all copies or substantial portions of the Software.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-- * OTHER DEALINGS IN THE SOFTWARE.
-- *
-- */
--
--#ifndef AMDGPU_ACPI_H
--#define AMDGPU_ACPI_H
--
--#define ACPI_AC_CLASS "ac_adapter"
--
--struct atif_verify_interface {
-- u16 size; /* structure size in bytes (includes size field) */
-- u16 version; /* version */
-- u32 notification_mask; /* supported notifications mask */
-- u32 function_bits; /* supported functions bit vector */
--} __packed;
--
--struct atif_system_params {
-- u16 size; /* structure size in bytes (includes size field) */
-- u32 valid_mask; /* valid flags mask */
-- u32 flags; /* flags */
-- u8 command_code; /* notify command code */
--} __packed;
--
--struct atif_sbios_requests {
-- u16 size; /* structure size in bytes (includes size field) */
-- u32 pending; /* pending sbios requests */
-- u8 panel_exp_mode; /* panel expansion mode */
-- u8 thermal_gfx; /* thermal state: target gfx controller */
-- u8 thermal_state; /* thermal state: state id (0: exit state, non-0: state) */
-- u8 forced_power_gfx; /* forced power state: target gfx controller */
-- u8 forced_power_state; /* forced power state: state id */
-- u8 system_power_src; /* system power source */
-- u8 backlight_level; /* panel backlight level (0-255) */
--} __packed;
--
--#define ATIF_NOTIFY_MASK 0x3
--#define ATIF_NOTIFY_NONE 0
--#define ATIF_NOTIFY_81 1
--#define ATIF_NOTIFY_N 2
--
--struct atcs_verify_interface {
-- u16 size; /* structure size in bytes (includes size field) */
-- u16 version; /* version */
-- u32 function_bits; /* supported functions bit vector */
--} __packed;
--
--#define ATCS_VALID_FLAGS_MASK 0x3
--
--struct atcs_pref_req_input {
-- u16 size; /* structure size in bytes (includes size field) */
-- u16 client_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */
-- u16 valid_flags_mask; /* valid flags mask */
-- u16 flags; /* flags */
-- u8 req_type; /* request type */
-- u8 perf_req; /* performance request */
--} __packed;
--
--struct atcs_pref_req_output {
-- u16 size; /* structure size in bytes (includes size field) */
-- u8 ret_val; /* return value */
--} __packed;
--
--/* AMD hw uses four ACPI control methods:
-- * 1. ATIF
-- * ARG0: (ACPI_INTEGER) function code
-- * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-- * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-- * ATIF provides an entry point for the gfx driver to interact with the sbios.
-- * The AMD ACPI notification mechanism uses Notify (VGA, 0x81) or a custom
-- * notification. Which notification is used as indicated by the ATIF Control
-- * Method GET_SYSTEM_PARAMETERS. When the driver receives Notify (VGA, 0x81) or
-- * a custom notification it invokes ATIF Control Method GET_SYSTEM_BIOS_REQUESTS
-- * to identify pending System BIOS requests and associated parameters. For
-- * example, if one of the pending requests is DISPLAY_SWITCH_REQUEST, the driver
-- * will perform display device detection and invoke ATIF Control Method
-- * SELECT_ACTIVE_DISPLAYS.
-- *
-- * 2. ATPX
-- * ARG0: (ACPI_INTEGER) function code
-- * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-- * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-- * ATPX methods are used on PowerXpress systems to handle mux switching and
-- * discrete GPU power control.
-- *
-- * 3. ATRM
-- * ARG0: (ACPI_INTEGER) offset of vbios rom data
-- * ARG1: (ACPI_BUFFER) size of the buffer to fill (up to 4K).
-- * OUTPUT: (ACPI_BUFFER) output buffer
-- * ATRM provides an interfacess to access the discrete GPU vbios image on
-- * PowerXpress systems with multiple GPUs.
-- *
-- * 4. ATCS
-- * ARG0: (ACPI_INTEGER) function code
-- * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-- * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-- * ATCS provides an interface to AMD chipset specific functionality.
-- *
-- */
--/* ATIF */
--#define ATIF_FUNCTION_VERIFY_INTERFACE 0x0
--/* ARG0: ATIF_FUNCTION_VERIFY_INTERFACE
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - version
-- * DWORD - supported notifications mask
-- * DWORD - supported functions bit vector
-- */
--/* Notifications mask */
--# define ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED (1 << 0)
--# define ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED (1 << 1)
--# define ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED (1 << 2)
--# define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED (1 << 3)
--# define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED (1 << 4)
--# define ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED (1 << 5)
--# define ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED (1 << 6)
--# define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED (1 << 7)
--# define ATIF_DGPU_DISPLAY_EVENT_SUPPORTED (1 << 8)
--/* supported functions vector */
--# define ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED (1 << 0)
--# define ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED (1 << 1)
--# define ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED (1 << 2)
--# define ATIF_GET_LID_STATE_SUPPORTED (1 << 3)
--# define ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED (1 << 4)
--# define ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED (1 << 5)
--# define ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED (1 << 6)
--# define ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED (1 << 7)
--# define ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED (1 << 12)
--# define ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED (1 << 14)
--#define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1
--/* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * DWORD - valid flags mask
-- * DWORD - flags
-- *
-- * OR
-- *
-- * WORD - structure size in bytes (includes size field)
-- * DWORD - valid flags mask
-- * DWORD - flags
-- * BYTE - notify command code
-- *
-- * flags
-- * bits 1:0:
-- * 0 - Notify(VGA, 0x81) is not used for notification
-- * 1 - Notify(VGA, 0x81) is used for notification
-- * 2 - Notify(VGA, n) is used for notification where
-- * n (0xd0-0xd9) is specified in notify command code.
-- * bit 2:
-- * 1 - lid changes not reported though int10
-- */
--#define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2
--/* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * DWORD - pending sbios requests
-- * BYTE - panel expansion mode
-- * BYTE - thermal state: target gfx controller
-- * BYTE - thermal state: state id (0: exit state, non-0: state)
-- * BYTE - forced power state: target gfx controller
-- * BYTE - forced power state: state id
-- * BYTE - system power source
-- * BYTE - panel backlight level (0-255)
-- */
--/* pending sbios requests */
--# define ATIF_DISPLAY_SWITCH_REQUEST (1 << 0)
--# define ATIF_EXPANSION_MODE_CHANGE_REQUEST (1 << 1)
--# define ATIF_THERMAL_STATE_CHANGE_REQUEST (1 << 2)
--# define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST (1 << 3)
--# define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST (1 << 4)
--# define ATIF_DISPLAY_CONF_CHANGE_REQUEST (1 << 5)
--# define ATIF_PX_GFX_SWITCH_REQUEST (1 << 6)
--# define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST (1 << 7)
--# define ATIF_DGPU_DISPLAY_EVENT (1 << 8)
--/* panel expansion mode */
--# define ATIF_PANEL_EXPANSION_DISABLE 0
--# define ATIF_PANEL_EXPANSION_FULL 1
--# define ATIF_PANEL_EXPANSION_ASPECT 2
--/* target gfx controller */
--# define ATIF_TARGET_GFX_SINGLE 0
--# define ATIF_TARGET_GFX_PX_IGPU 1
--# define ATIF_TARGET_GFX_PX_DGPU 2
--/* system power source */
--# define ATIF_POWER_SOURCE_AC 1
--# define ATIF_POWER_SOURCE_DC 2
--# define ATIF_POWER_SOURCE_RESTRICTED_AC_1 3
--# define ATIF_POWER_SOURCE_RESTRICTED_AC_2 4
--#define ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS 0x3
--/* ARG0: ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - selected displays
-- * WORD - connected displays
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - selected displays
-- */
--# define ATIF_LCD1 (1 << 0)
--# define ATIF_CRT1 (1 << 1)
--# define ATIF_TV (1 << 2)
--# define ATIF_DFP1 (1 << 3)
--# define ATIF_CRT2 (1 << 4)
--# define ATIF_LCD2 (1 << 5)
--# define ATIF_DFP2 (1 << 7)
--# define ATIF_CV (1 << 8)
--# define ATIF_DFP3 (1 << 9)
--# define ATIF_DFP4 (1 << 10)
--# define ATIF_DFP5 (1 << 11)
--# define ATIF_DFP6 (1 << 12)
--#define ATIF_FUNCTION_GET_LID_STATE 0x4
--/* ARG0: ATIF_FUNCTION_GET_LID_STATE
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - lid state (0: open, 1: closed)
-- *
-- * GET_LID_STATE only works at boot and resume, for general lid
-- * status, use the kernel provided status
-- */
--#define ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS 0x5
--/* ARG0: ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - 0
-- * BYTE - TV standard
-- */
--# define ATIF_TV_STD_NTSC 0
--# define ATIF_TV_STD_PAL 1
--# define ATIF_TV_STD_PALM 2
--# define ATIF_TV_STD_PAL60 3
--# define ATIF_TV_STD_NTSCJ 4
--# define ATIF_TV_STD_PALCN 5
--# define ATIF_TV_STD_PALN 6
--# define ATIF_TV_STD_SCART_RGB 9
--#define ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS 0x6
--/* ARG0: ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - 0
-- * BYTE - TV standard
-- * OUTPUT: none
-- */
--#define ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS 0x7
--/* ARG0: ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - panel expansion mode
-- */
--#define ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS 0x8
--/* ARG0: ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - panel expansion mode
-- * OUTPUT: none
-- */
--#define ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION 0xD
--/* ARG0: ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - gfx controller id
-- * BYTE - current temperature (degress Celsius)
-- * OUTPUT: none
-- */
--#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF
--/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES
-- * ARG1: none
-- * OUTPUT:
-- * WORD - number of gfx devices
-- * WORD - device structure size in bytes (excludes device size field)
-- * DWORD - flags \
-- * WORD - bus number } repeated structure
-- * WORD - device number /
-- */
--/* flags */
--# define ATIF_PX_REMOVABLE_GRAPHICS_DEVICE (1 << 0)
--# define ATIF_XGP_PORT (1 << 1)
--# define ATIF_VGA_ENABLED_GRAPHICS_DEVICE (1 << 2)
--# define ATIF_XGP_PORT_IN_DOCK (1 << 3)
--
--/* ATPX */
--#define ATPX_FUNCTION_VERIFY_INTERFACE 0x0
--/* ARG0: ATPX_FUNCTION_VERIFY_INTERFACE
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - version
-- * DWORD - supported functions bit vector
-- */
--/* supported functions vector */
--# define ATPX_GET_PX_PARAMETERS_SUPPORTED (1 << 0)
--# define ATPX_POWER_CONTROL_SUPPORTED (1 << 1)
--# define ATPX_DISPLAY_MUX_CONTROL_SUPPORTED (1 << 2)
--# define ATPX_I2C_MUX_CONTROL_SUPPORTED (1 << 3)
--# define ATPX_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION_SUPPORTED (1 << 4)
--# define ATPX_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION_SUPPORTED (1 << 5)
--# define ATPX_GET_DISPLAY_CONNECTORS_MAPPING_SUPPORTED (1 << 7)
--# define ATPX_GET_DISPLAY_DETECTION_PORTS_SUPPORTED (1 << 8)
--#define ATPX_FUNCTION_GET_PX_PARAMETERS 0x1
--/* ARG0: ATPX_FUNCTION_GET_PX_PARAMETERS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * DWORD - valid flags mask
-- * DWORD - flags
-- */
--/* flags */
--# define ATPX_LVDS_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 0)
--# define ATPX_CRT1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 1)
--# define ATPX_DVI1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 2)
--# define ATPX_CRT1_RGB_SIGNAL_MUXED (1 << 3)
--# define ATPX_TV_SIGNAL_MUXED (1 << 4)
--# define ATPX_DFP_SIGNAL_MUXED (1 << 5)
--# define ATPX_SEPARATE_MUX_FOR_I2C (1 << 6)
--# define ATPX_DYNAMIC_PX_SUPPORTED (1 << 7)
--# define ATPX_ACF_NOT_SUPPORTED (1 << 8)
--# define ATPX_FIXED_NOT_SUPPORTED (1 << 9)
--# define ATPX_DYNAMIC_DGPU_POWER_OFF_SUPPORTED (1 << 10)
--# define ATPX_DGPU_REQ_POWER_FOR_DISPLAYS (1 << 11)
--#define ATPX_FUNCTION_POWER_CONTROL 0x2
--/* ARG0: ATPX_FUNCTION_POWER_CONTROL
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - dGPU power state (0: power off, 1: power on)
-- * OUTPUT: none
-- */
--#define ATPX_FUNCTION_DISPLAY_MUX_CONTROL 0x3
--/* ARG0: ATPX_FUNCTION_DISPLAY_MUX_CONTROL
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - display mux control (0: iGPU, 1: dGPU)
-- * OUTPUT: none
-- */
--# define ATPX_INTEGRATED_GPU 0
--# define ATPX_DISCRETE_GPU 1
--#define ATPX_FUNCTION_I2C_MUX_CONTROL 0x4
--/* ARG0: ATPX_FUNCTION_I2C_MUX_CONTROL
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - i2c/aux/hpd mux control (0: iGPU, 1: dGPU)
-- * OUTPUT: none
-- */
--#define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION 0x5
--/* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - target gpu (0: iGPU, 1: dGPU)
-- * OUTPUT: none
-- */
--#define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION 0x6
--/* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - target gpu (0: iGPU, 1: dGPU)
-- * OUTPUT: none
-- */
--#define ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING 0x8
--/* ARG0: ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING
-- * ARG1: none
-- * OUTPUT:
-- * WORD - number of display connectors
-- * WORD - connector structure size in bytes (excludes connector size field)
-- * BYTE - flags \
-- * BYTE - ATIF display vector bit position } repeated
-- * BYTE - adapter id (0: iGPU, 1-n: dGPU ordered by pcie bus number) } structure
-- * WORD - connector ACPI id /
-- */
--/* flags */
--# define ATPX_DISPLAY_OUTPUT_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 0)
--# define ATPX_DISPLAY_HPD_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 1)
--# define ATPX_DISPLAY_I2C_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 2)
--#define ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS 0x9
--/* ARG0: ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS
-- * ARG1: none
-- * OUTPUT:
-- * WORD - number of HPD/DDC ports
-- * WORD - port structure size in bytes (excludes port size field)
-- * BYTE - ATIF display vector bit position \
-- * BYTE - hpd id } reapeated structure
-- * BYTE - ddc id /
-- *
-- * available on A+A systems only
-- */
--/* hpd id */
--# define ATPX_HPD_NONE 0
--# define ATPX_HPD1 1
--# define ATPX_HPD2 2
--# define ATPX_HPD3 3
--# define ATPX_HPD4 4
--# define ATPX_HPD5 5
--# define ATPX_HPD6 6
--/* ddc id */
--# define ATPX_DDC_NONE 0
--# define ATPX_DDC1 1
--# define ATPX_DDC2 2
--# define ATPX_DDC3 3
--# define ATPX_DDC4 4
--# define ATPX_DDC5 5
--# define ATPX_DDC6 6
--# define ATPX_DDC7 7
--# define ATPX_DDC8 8
--
--/* ATCS */
--#define ATCS_FUNCTION_VERIFY_INTERFACE 0x0
--/* ARG0: ATCS_FUNCTION_VERIFY_INTERFACE
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - version
-- * DWORD - supported functions bit vector
-- */
--/* supported functions vector */
--# define ATCS_GET_EXTERNAL_STATE_SUPPORTED (1 << 0)
--# define ATCS_PCIE_PERFORMANCE_REQUEST_SUPPORTED (1 << 1)
--# define ATCS_PCIE_DEVICE_READY_NOTIFICATION_SUPPORTED (1 << 2)
--# define ATCS_SET_PCIE_BUS_WIDTH_SUPPORTED (1 << 3)
--#define ATCS_FUNCTION_GET_EXTERNAL_STATE 0x1
--/* ARG0: ATCS_FUNCTION_GET_EXTERNAL_STATE
-- * ARG1: none
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * DWORD - valid flags mask
-- * DWORD - flags (0: undocked, 1: docked)
-- */
--/* flags */
--# define ATCS_DOCKED (1 << 0)
--#define ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST 0x2
--/* ARG0: ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num)
-- * WORD - valid flags mask
-- * WORD - flags
-- * BYTE - request type
-- * BYTE - performance request
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - return value
-- */
--/* flags */
--# define ATCS_ADVERTISE_CAPS (1 << 0)
--# define ATCS_WAIT_FOR_COMPLETION (1 << 1)
--/* request type */
--# define ATCS_PCIE_LINK_SPEED 1
--/* performance request */
--# define ATCS_REMOVE 0
--# define ATCS_FORCE_LOW_POWER 1
--# define ATCS_PERF_LEVEL_1 2 /* PCIE Gen 1 */
--# define ATCS_PERF_LEVEL_2 3 /* PCIE Gen 2 */
--# define ATCS_PERF_LEVEL_3 4 /* PCIE Gen 3 */
--/* return value */
--# define ATCS_REQUEST_REFUSED 1
--# define ATCS_REQUEST_COMPLETE 2
--# define ATCS_REQUEST_IN_PROGRESS 3
--#define ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION 0x3
--/* ARG0: ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION
-- * ARG1: none
-- * OUTPUT: none
-- */
--#define ATCS_FUNCTION_SET_PCIE_BUS_WIDTH 0x4
--/* ARG0: ATCS_FUNCTION_SET_PCIE_BUS_WIDTH
-- * ARG1:
-- * WORD - structure size in bytes (includes size field)
-- * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num)
-- * BYTE - number of active lanes
-- * OUTPUT:
-- * WORD - structure size in bytes (includes size field)
-- * BYTE - number of active lanes
-- */
--
--#endif
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
-index 5a8fbad..3c89586 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
-@@ -11,7 +11,7 @@
- #include <linux/acpi.h>
- #include <linux/pci.h>
-
--#include "amdgpu_acpi.h"
-+#include "amd_acpi.h"
-
- struct amdgpu_atpx_functions {
- bool px_params;
-diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/include/amd_acpi.h
-new file mode 100644
-index 0000000..496360e
---- /dev/null
-+++ b/drivers/gpu/drm/amd/include/amd_acpi.h
-@@ -0,0 +1,494 @@
-+/*
-+ * Copyright 2012 Advanced Micro Devices, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ */
-+
-+#ifndef AMD_ACPI_H
-+#define AMD_ACPI_H
-+
-+#define ACPI_AC_CLASS "ac_adapter"
-+
-+struct atif_verify_interface {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u16 version; /* version */
-+ u32 notification_mask; /* supported notifications mask */
-+ u32 function_bits; /* supported functions bit vector */
-+} __packed;
-+
-+struct atif_system_params {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u32 valid_mask; /* valid flags mask */
-+ u32 flags; /* flags */
-+ u8 command_code; /* notify command code */
-+} __packed;
-+
-+struct atif_sbios_requests {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u32 pending; /* pending sbios requests */
-+ u8 panel_exp_mode; /* panel expansion mode */
-+ u8 thermal_gfx; /* thermal state: target gfx controller */
-+ u8 thermal_state; /* thermal state: state id (0: exit state, non-0: state) */
-+ u8 forced_power_gfx; /* forced power state: target gfx controller */
-+ u8 forced_power_state; /* forced power state: state id */
-+ u8 system_power_src; /* system power source */
-+ u8 backlight_level; /* panel backlight level (0-255) */
-+} __packed;
-+
-+#define ATIF_NOTIFY_MASK 0x3
-+#define ATIF_NOTIFY_NONE 0
-+#define ATIF_NOTIFY_81 1
-+#define ATIF_NOTIFY_N 2
-+
-+struct atcs_verify_interface {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u16 version; /* version */
-+ u32 function_bits; /* supported functions bit vector */
-+} __packed;
-+
-+#define ATCS_VALID_FLAGS_MASK 0x3
-+
-+struct atcs_pref_req_input {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u16 client_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */
-+ u16 valid_flags_mask; /* valid flags mask */
-+ u16 flags; /* flags */
-+ u8 req_type; /* request type */
-+ u8 perf_req; /* performance request */
-+} __packed;
-+
-+struct atcs_pref_req_output {
-+ u16 size; /* structure size in bytes (includes size field) */
-+ u8 ret_val; /* return value */
-+} __packed;
-+
-+/* AMD hw uses four ACPI control methods:
-+ * 1. ATIF
-+ * ARG0: (ACPI_INTEGER) function code
-+ * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-+ * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-+ * ATIF provides an entry point for the gfx driver to interact with the sbios.
-+ * The AMD ACPI notification mechanism uses Notify (VGA, 0x81) or a custom
-+ * notification. Which notification is used as indicated by the ATIF Control
-+ * Method GET_SYSTEM_PARAMETERS. When the driver receives Notify (VGA, 0x81) or
-+ * a custom notification it invokes ATIF Control Method GET_SYSTEM_BIOS_REQUESTS
-+ * to identify pending System BIOS requests and associated parameters. For
-+ * example, if one of the pending requests is DISPLAY_SWITCH_REQUEST, the driver
-+ * will perform display device detection and invoke ATIF Control Method
-+ * SELECT_ACTIVE_DISPLAYS.
-+ *
-+ * 2. ATPX
-+ * ARG0: (ACPI_INTEGER) function code
-+ * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-+ * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-+ * ATPX methods are used on PowerXpress systems to handle mux switching and
-+ * discrete GPU power control.
-+ *
-+ * 3. ATRM
-+ * ARG0: (ACPI_INTEGER) offset of vbios rom data
-+ * ARG1: (ACPI_BUFFER) size of the buffer to fill (up to 4K).
-+ * OUTPUT: (ACPI_BUFFER) output buffer
-+ * ATRM provides an interfacess to access the discrete GPU vbios image on
-+ * PowerXpress systems with multiple GPUs.
-+ *
-+ * 4. ATCS
-+ * ARG0: (ACPI_INTEGER) function code
-+ * ARG1: (ACPI_BUFFER) parameter buffer, 256 bytes
-+ * OUTPUT: (ACPI_BUFFER) output buffer, 256 bytes
-+ * ATCS provides an interface to AMD chipset specific functionality.
-+ *
-+ */
-+/* ATIF */
-+#define ATIF_FUNCTION_VERIFY_INTERFACE 0x0
-+/* ARG0: ATIF_FUNCTION_VERIFY_INTERFACE
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - version
-+ * DWORD - supported notifications mask
-+ * DWORD - supported functions bit vector
-+ */
-+/* Notifications mask */
-+# define ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED (1 << 0)
-+# define ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED (1 << 1)
-+# define ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED (1 << 2)
-+# define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED (1 << 3)
-+# define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED (1 << 4)
-+# define ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED (1 << 5)
-+# define ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED (1 << 6)
-+# define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED (1 << 7)
-+# define ATIF_DGPU_DISPLAY_EVENT_SUPPORTED (1 << 8)
-+/* supported functions vector */
-+# define ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED (1 << 0)
-+# define ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED (1 << 1)
-+# define ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED (1 << 2)
-+# define ATIF_GET_LID_STATE_SUPPORTED (1 << 3)
-+# define ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED (1 << 4)
-+# define ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED (1 << 5)
-+# define ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED (1 << 6)
-+# define ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED (1 << 7)
-+# define ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED (1 << 12)
-+# define ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED (1 << 14)
-+#define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1
-+/* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * DWORD - valid flags mask
-+ * DWORD - flags
-+ *
-+ * OR
-+ *
-+ * WORD - structure size in bytes (includes size field)
-+ * DWORD - valid flags mask
-+ * DWORD - flags
-+ * BYTE - notify command code
-+ *
-+ * flags
-+ * bits 1:0:
-+ * 0 - Notify(VGA, 0x81) is not used for notification
-+ * 1 - Notify(VGA, 0x81) is used for notification
-+ * 2 - Notify(VGA, n) is used for notification where
-+ * n (0xd0-0xd9) is specified in notify command code.
-+ * bit 2:
-+ * 1 - lid changes not reported though int10
-+ */
-+#define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2
-+/* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * DWORD - pending sbios requests
-+ * BYTE - panel expansion mode
-+ * BYTE - thermal state: target gfx controller
-+ * BYTE - thermal state: state id (0: exit state, non-0: state)
-+ * BYTE - forced power state: target gfx controller
-+ * BYTE - forced power state: state id
-+ * BYTE - system power source
-+ * BYTE - panel backlight level (0-255)
-+ */
-+/* pending sbios requests */
-+# define ATIF_DISPLAY_SWITCH_REQUEST (1 << 0)
-+# define ATIF_EXPANSION_MODE_CHANGE_REQUEST (1 << 1)
-+# define ATIF_THERMAL_STATE_CHANGE_REQUEST (1 << 2)
-+# define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST (1 << 3)
-+# define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST (1 << 4)
-+# define ATIF_DISPLAY_CONF_CHANGE_REQUEST (1 << 5)
-+# define ATIF_PX_GFX_SWITCH_REQUEST (1 << 6)
-+# define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST (1 << 7)
-+# define ATIF_DGPU_DISPLAY_EVENT (1 << 8)
-+/* panel expansion mode */
-+# define ATIF_PANEL_EXPANSION_DISABLE 0
-+# define ATIF_PANEL_EXPANSION_FULL 1
-+# define ATIF_PANEL_EXPANSION_ASPECT 2
-+/* target gfx controller */
-+# define ATIF_TARGET_GFX_SINGLE 0
-+# define ATIF_TARGET_GFX_PX_IGPU 1
-+# define ATIF_TARGET_GFX_PX_DGPU 2
-+/* system power source */
-+# define ATIF_POWER_SOURCE_AC 1
-+# define ATIF_POWER_SOURCE_DC 2
-+# define ATIF_POWER_SOURCE_RESTRICTED_AC_1 3
-+# define ATIF_POWER_SOURCE_RESTRICTED_AC_2 4
-+#define ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS 0x3
-+/* ARG0: ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - selected displays
-+ * WORD - connected displays
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - selected displays
-+ */
-+# define ATIF_LCD1 (1 << 0)
-+# define ATIF_CRT1 (1 << 1)
-+# define ATIF_TV (1 << 2)
-+# define ATIF_DFP1 (1 << 3)
-+# define ATIF_CRT2 (1 << 4)
-+# define ATIF_LCD2 (1 << 5)
-+# define ATIF_DFP2 (1 << 7)
-+# define ATIF_CV (1 << 8)
-+# define ATIF_DFP3 (1 << 9)
-+# define ATIF_DFP4 (1 << 10)
-+# define ATIF_DFP5 (1 << 11)
-+# define ATIF_DFP6 (1 << 12)
-+#define ATIF_FUNCTION_GET_LID_STATE 0x4
-+/* ARG0: ATIF_FUNCTION_GET_LID_STATE
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - lid state (0: open, 1: closed)
-+ *
-+ * GET_LID_STATE only works at boot and resume, for general lid
-+ * status, use the kernel provided status
-+ */
-+#define ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS 0x5
-+/* ARG0: ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - 0
-+ * BYTE - TV standard
-+ */
-+# define ATIF_TV_STD_NTSC 0
-+# define ATIF_TV_STD_PAL 1
-+# define ATIF_TV_STD_PALM 2
-+# define ATIF_TV_STD_PAL60 3
-+# define ATIF_TV_STD_NTSCJ 4
-+# define ATIF_TV_STD_PALCN 5
-+# define ATIF_TV_STD_PALN 6
-+# define ATIF_TV_STD_SCART_RGB 9
-+#define ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS 0x6
-+/* ARG0: ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - 0
-+ * BYTE - TV standard
-+ * OUTPUT: none
-+ */
-+#define ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS 0x7
-+/* ARG0: ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - panel expansion mode
-+ */
-+#define ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS 0x8
-+/* ARG0: ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - panel expansion mode
-+ * OUTPUT: none
-+ */
-+#define ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION 0xD
-+/* ARG0: ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - gfx controller id
-+ * BYTE - current temperature (degress Celsius)
-+ * OUTPUT: none
-+ */
-+#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF
-+/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - number of gfx devices
-+ * WORD - device structure size in bytes (excludes device size field)
-+ * DWORD - flags \
-+ * WORD - bus number } repeated structure
-+ * WORD - device number /
-+ */
-+/* flags */
-+# define ATIF_PX_REMOVABLE_GRAPHICS_DEVICE (1 << 0)
-+# define ATIF_XGP_PORT (1 << 1)
-+# define ATIF_VGA_ENABLED_GRAPHICS_DEVICE (1 << 2)
-+# define ATIF_XGP_PORT_IN_DOCK (1 << 3)
-+
-+/* ATPX */
-+#define ATPX_FUNCTION_VERIFY_INTERFACE 0x0
-+/* ARG0: ATPX_FUNCTION_VERIFY_INTERFACE
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - version
-+ * DWORD - supported functions bit vector
-+ */
-+/* supported functions vector */
-+# define ATPX_GET_PX_PARAMETERS_SUPPORTED (1 << 0)
-+# define ATPX_POWER_CONTROL_SUPPORTED (1 << 1)
-+# define ATPX_DISPLAY_MUX_CONTROL_SUPPORTED (1 << 2)
-+# define ATPX_I2C_MUX_CONTROL_SUPPORTED (1 << 3)
-+# define ATPX_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION_SUPPORTED (1 << 4)
-+# define ATPX_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION_SUPPORTED (1 << 5)
-+# define ATPX_GET_DISPLAY_CONNECTORS_MAPPING_SUPPORTED (1 << 7)
-+# define ATPX_GET_DISPLAY_DETECTION_PORTS_SUPPORTED (1 << 8)
-+#define ATPX_FUNCTION_GET_PX_PARAMETERS 0x1
-+/* ARG0: ATPX_FUNCTION_GET_PX_PARAMETERS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * DWORD - valid flags mask
-+ * DWORD - flags
-+ */
-+/* flags */
-+# define ATPX_LVDS_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 0)
-+# define ATPX_CRT1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 1)
-+# define ATPX_DVI1_I2C_AVAILABLE_TO_BOTH_GPUS (1 << 2)
-+# define ATPX_CRT1_RGB_SIGNAL_MUXED (1 << 3)
-+# define ATPX_TV_SIGNAL_MUXED (1 << 4)
-+# define ATPX_DFP_SIGNAL_MUXED (1 << 5)
-+# define ATPX_SEPARATE_MUX_FOR_I2C (1 << 6)
-+# define ATPX_DYNAMIC_PX_SUPPORTED (1 << 7)
-+# define ATPX_ACF_NOT_SUPPORTED (1 << 8)
-+# define ATPX_FIXED_NOT_SUPPORTED (1 << 9)
-+# define ATPX_DYNAMIC_DGPU_POWER_OFF_SUPPORTED (1 << 10)
-+# define ATPX_DGPU_REQ_POWER_FOR_DISPLAYS (1 << 11)
-+#define ATPX_FUNCTION_POWER_CONTROL 0x2
-+/* ARG0: ATPX_FUNCTION_POWER_CONTROL
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - dGPU power state (0: power off, 1: power on)
-+ * OUTPUT: none
-+ */
-+#define ATPX_FUNCTION_DISPLAY_MUX_CONTROL 0x3
-+/* ARG0: ATPX_FUNCTION_DISPLAY_MUX_CONTROL
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - display mux control (0: iGPU, 1: dGPU)
-+ * OUTPUT: none
-+ */
-+# define ATPX_INTEGRATED_GPU 0
-+# define ATPX_DISCRETE_GPU 1
-+#define ATPX_FUNCTION_I2C_MUX_CONTROL 0x4
-+/* ARG0: ATPX_FUNCTION_I2C_MUX_CONTROL
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - i2c/aux/hpd mux control (0: iGPU, 1: dGPU)
-+ * OUTPUT: none
-+ */
-+#define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION 0x5
-+/* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - target gpu (0: iGPU, 1: dGPU)
-+ * OUTPUT: none
-+ */
-+#define ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION 0x6
-+/* ARG0: ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - target gpu (0: iGPU, 1: dGPU)
-+ * OUTPUT: none
-+ */
-+#define ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING 0x8
-+/* ARG0: ATPX_FUNCTION_GET_DISPLAY_CONNECTORS_MAPPING
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - number of display connectors
-+ * WORD - connector structure size in bytes (excludes connector size field)
-+ * BYTE - flags \
-+ * BYTE - ATIF display vector bit position } repeated
-+ * BYTE - adapter id (0: iGPU, 1-n: dGPU ordered by pcie bus number) } structure
-+ * WORD - connector ACPI id /
-+ */
-+/* flags */
-+# define ATPX_DISPLAY_OUTPUT_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 0)
-+# define ATPX_DISPLAY_HPD_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 1)
-+# define ATPX_DISPLAY_I2C_SUPPORTED_BY_ADAPTER_ID_DEVICE (1 << 2)
-+#define ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS 0x9
-+/* ARG0: ATPX_FUNCTION_GET_DISPLAY_DETECTION_PORTS
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - number of HPD/DDC ports
-+ * WORD - port structure size in bytes (excludes port size field)
-+ * BYTE - ATIF display vector bit position \
-+ * BYTE - hpd id } reapeated structure
-+ * BYTE - ddc id /
-+ *
-+ * available on A+A systems only
-+ */
-+/* hpd id */
-+# define ATPX_HPD_NONE 0
-+# define ATPX_HPD1 1
-+# define ATPX_HPD2 2
-+# define ATPX_HPD3 3
-+# define ATPX_HPD4 4
-+# define ATPX_HPD5 5
-+# define ATPX_HPD6 6
-+/* ddc id */
-+# define ATPX_DDC_NONE 0
-+# define ATPX_DDC1 1
-+# define ATPX_DDC2 2
-+# define ATPX_DDC3 3
-+# define ATPX_DDC4 4
-+# define ATPX_DDC5 5
-+# define ATPX_DDC6 6
-+# define ATPX_DDC7 7
-+# define ATPX_DDC8 8
-+
-+/* ATCS */
-+#define ATCS_FUNCTION_VERIFY_INTERFACE 0x0
-+/* ARG0: ATCS_FUNCTION_VERIFY_INTERFACE
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - version
-+ * DWORD - supported functions bit vector
-+ */
-+/* supported functions vector */
-+# define ATCS_GET_EXTERNAL_STATE_SUPPORTED (1 << 0)
-+# define ATCS_PCIE_PERFORMANCE_REQUEST_SUPPORTED (1 << 1)
-+# define ATCS_PCIE_DEVICE_READY_NOTIFICATION_SUPPORTED (1 << 2)
-+# define ATCS_SET_PCIE_BUS_WIDTH_SUPPORTED (1 << 3)
-+#define ATCS_FUNCTION_GET_EXTERNAL_STATE 0x1
-+/* ARG0: ATCS_FUNCTION_GET_EXTERNAL_STATE
-+ * ARG1: none
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * DWORD - valid flags mask
-+ * DWORD - flags (0: undocked, 1: docked)
-+ */
-+/* flags */
-+# define ATCS_DOCKED (1 << 0)
-+#define ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST 0x2
-+/* ARG0: ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num)
-+ * WORD - valid flags mask
-+ * WORD - flags
-+ * BYTE - request type
-+ * BYTE - performance request
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - return value
-+ */
-+/* flags */
-+# define ATCS_ADVERTISE_CAPS (1 << 0)
-+# define ATCS_WAIT_FOR_COMPLETION (1 << 1)
-+/* request type */
-+# define ATCS_PCIE_LINK_SPEED 1
-+/* performance request */
-+# define ATCS_REMOVE 0
-+# define ATCS_FORCE_LOW_POWER 1
-+# define ATCS_PERF_LEVEL_1 2 /* PCIE Gen 1 */
-+# define ATCS_PERF_LEVEL_2 3 /* PCIE Gen 2 */
-+# define ATCS_PERF_LEVEL_3 4 /* PCIE Gen 3 */
-+/* return value */
-+# define ATCS_REQUEST_REFUSED 1
-+# define ATCS_REQUEST_COMPLETE 2
-+# define ATCS_REQUEST_IN_PROGRESS 3
-+#define ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION 0x3
-+/* ARG0: ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION
-+ * ARG1: none
-+ * OUTPUT: none
-+ */
-+#define ATCS_FUNCTION_SET_PCIE_BUS_WIDTH 0x4
-+/* ARG0: ATCS_FUNCTION_SET_PCIE_BUS_WIDTH
-+ * ARG1:
-+ * WORD - structure size in bytes (includes size field)
-+ * WORD - client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num)
-+ * BYTE - number of active lanes
-+ * OUTPUT:
-+ * WORD - structure size in bytes (includes size field)
-+ * BYTE - number of active lanes
-+ */
-+
-+#endif
---
-2.7.4
-