* [PATCH] drm/amd: update ATIF functions in AMD ACPI header
@ 2018-11-08 20:57 David Francis
[not found] ` <20181108205736.31203-1-David.Francis-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: David Francis @ 2018-11-08 20:57 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: David Francis
The ACPI interface in AMD was a few years out of date
and contained some unused and deprecated functions
Remove functions: Select Active Displays, Get Lid State,
Get TV Standard, Set TV Standard, Get Panel Expansion Mode,
Set Panel Expansion Mode, Get Graphics Device Types
Add functions: Query Backlight Transfer Characteristics,
Ready To Undock Notification
Changed functions: Get System Parameters,
Get System BIOS Requests
All changes are right from the standard
ATI ACPI Control Methods V0.44
Signed-off-by: David Francis <David.Francis@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 31 ++---
drivers/gpu/drm/amd/include/amd_acpi.h | 151 +++++++----------------
2 files changed, 56 insertions(+), 126 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 7f0afc526419..471266901d1b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -41,28 +41,21 @@ struct amdgpu_atif_notification_cfg {
};
struct amdgpu_atif_notifications {
- bool display_switch;
- bool expansion_mode_change;
bool thermal_state;
bool forced_power_state;
bool system_power_state;
- bool display_conf_change;
- bool px_gfx_switch;
bool brightness_change;
bool dgpu_display_event;
+ bool gpu_package_power_limit;
};
struct amdgpu_atif_functions {
bool system_params;
bool sbios_requests;
- bool select_active_disp;
- bool lid_state;
- bool get_tv_standard;
- bool set_tv_standard;
- bool get_panel_expansion_mode;
- bool set_panel_expansion_mode;
bool temperature_change;
- bool graphics_device_types;
+ bool query_backlight_transfer_characteristics;
+ bool ready_to_undock;
+ bool external_gpu_information;
};
struct amdgpu_atif {
@@ -137,15 +130,12 @@ static union acpi_object *amdgpu_atif_call(struct amdgpu_atif *atif,
*/
static void amdgpu_atif_parse_notification(struct amdgpu_atif_notifications *n, u32 mask)
{
- n->display_switch = mask & ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED;
- n->expansion_mode_change = mask & ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED;
n->thermal_state = mask & ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED;
n->forced_power_state = mask & ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED;
n->system_power_state = mask & ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED;
- n->display_conf_change = mask & ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED;
- n->px_gfx_switch = mask & ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED;
n->brightness_change = mask & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED;
n->dgpu_display_event = mask & ATIF_DGPU_DISPLAY_EVENT_SUPPORTED;
+ n->gpu_package_power_limit = mask & ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED;
}
/**
@@ -162,14 +152,11 @@ static void amdgpu_atif_parse_functions(struct amdgpu_atif_functions *f, u32 mas
{
f->system_params = mask & ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED;
f->sbios_requests = mask & ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED;
- f->select_active_disp = mask & ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED;
- f->lid_state = mask & ATIF_GET_LID_STATE_SUPPORTED;
- f->get_tv_standard = mask & ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED;
- f->set_tv_standard = mask & ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED;
- f->get_panel_expansion_mode = mask & ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED;
- f->set_panel_expansion_mode = mask & ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED;
f->temperature_change = mask & ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED;
- f->graphics_device_types = mask & ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED;
+ f->query_backlight_transfer_characteristics =
+ mask & ATIF_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED;
+ f->ready_to_undock = mask & ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED;
+ f->external_gpu_information = mask & ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED;
}
/**
diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/include/amd_acpi.h
index 9b9699fc433f..8980edfe5fa9 100644
--- a/drivers/gpu/drm/amd/include/amd_acpi.h
+++ b/drivers/gpu/drm/amd/include/amd_acpi.h
@@ -126,26 +126,18 @@ struct atcs_pref_req_output {
* 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)
+# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED (1 << 12)
/* 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_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED (1 << 15)
+# define ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED (1 << 16)
# define ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED (1 << 20)
#define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1
/* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS
@@ -170,6 +162,10 @@ struct atcs_pref_req_output {
* n (0xd0-0xd9) is specified in notify command code.
* bit 2:
* 1 - lid changes not reported though int10
+ * bit 3:
+ * 1 - system bios controls overclocking
+ * bit 4:
+ * 1 - enable overclocking
*/
#define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2
/* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS
@@ -177,28 +173,23 @@ struct atcs_pref_req_output {
* OUTPUT:
* WORD - structure size in bytes (includes size field)
* DWORD - pending sbios requests
- * BYTE - panel expansion mode
+ * BYTE - reserved (all zeroes)
* 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 - forced power state: state id (0: forced state, non-0: state)
* BYTE - system power source
* BYTE - panel backlight level (0-255)
+ * BYTE - GPU package power limit: target gfx controller
+ * DWORD - GPU package power limit: value (24:8 fractional format, Watts)
*/
/* 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
+# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST (1 << 12)
/* target gfx controller */
# define ATIF_TARGET_GFX_SINGLE 0
# define ATIF_TARGET_GFX_PX_IGPU 1
@@ -208,76 +199,6 @@ struct atcs_pref_req_output {
# 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:
@@ -286,21 +207,43 @@ struct atcs_pref_req_output {
* BYTE - current temperature (degress Celsius)
* OUTPUT: none
*/
-#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF
-/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES
- * ARG1: none
+#define ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0x10
+/* ARG0: ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS
+ * ARG1:
+ * WORD - structure size in bytes (includes size field)
+ * BYTE - requested display
* 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 /
+ * WORD - structure size in bytes (includes size field)
+ * WORD - flags (currently all 16 bits are reserved)
+ * BYTE - error code (on failure, disregard all below fields)
+ * BYTE - AC level (default brightness in percent when machine has full power)
+ * BYTE - DC level (default brightness in percent when machine is on battery)
+ * BYTE - min input signal, in range 0-255, corresponding to 0% backlight
+ * BYTE - max input signal, in range 0-255, corresponding to 100% backlight
+ * BYTE - number of reported data points
+ * BYTE - luminance level in percent \ repeated structure
+ * BYTE - input signal in range 0-255 / does not have entries for 0% and 100%
+ */
+/* requested display */
+# define ATIF_QBTC_REQUEST_LCD1 0
+# define ATIF_QBTC_REQUEST_CRT1 1
+# define ATIF_QBTC_REQUEST_DFP1 3
+# define ATIF_QBTC_REQUEST_CRT2 4
+# define ATIF_QBTC_REQUEST_LCD2 5
+# define ATIF_QBTC_REQUEST_DFP2 7
+# define ATIF_QBTC_REQUEST_DFP3 9
+# define ATIF_QBTC_REQUEST_DFP4 10
+# define ATIF_QBTC_REQUEST_DFP5 11
+# define ATIF_QBTC_REQUEST_DFP6 12
+/* error code */
+# define ATIF_QBTC_ERROR_CODE_SUCCESS 0
+# define ATIF_QBTC_ERROR_CODE_FAILURE 1
+# define ATIF_QBTC_ERROR_CODE_DEVICE_NOT_SUPPORTED 2
+#define ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0x11
+/* ARG0: ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION
+ * ARG1: none
+ * OUTPUT: none
*/
-/* 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)
#define ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0x15
/* ARG0: ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION
* ARG1: none
--
2.17.1
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 3+ messages in thread[parent not found: <20181108205736.31203-1-David.Francis-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] drm/amd: update ATIF functions in AMD ACPI header [not found] ` <20181108205736.31203-1-David.Francis-5C7GfCeVMHo@public.gmane.org> @ 2018-11-08 21:08 ` Alex Deucher 2018-11-09 14:49 ` Wentland, Harry 1 sibling, 0 replies; 3+ messages in thread From: Alex Deucher @ 2018-11-08 21:08 UTC (permalink / raw) To: David Francis; +Cc: amd-gfx list On Thu, Nov 8, 2018 at 3:57 PM David Francis <David.Francis@amd.com> wrote: > > The ACPI interface in AMD was a few years out of date > and contained some unused and deprecated functions > > Remove functions: Select Active Displays, Get Lid State, > Get TV Standard, Set TV Standard, Get Panel Expansion Mode, > Set Panel Expansion Mode, Get Graphics Device Types > > Add functions: Query Backlight Transfer Characteristics, > Ready To Undock Notification > > Changed functions: Get System Parameters, > Get System BIOS Requests > > All changes are right from the standard > ATI ACPI Control Methods V0.44 > > Signed-off-by: David Francis <David.Francis@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 31 ++--- > drivers/gpu/drm/amd/include/amd_acpi.h | 151 +++++++---------------- > 2 files changed, 56 insertions(+), 126 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index 7f0afc526419..471266901d1b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -41,28 +41,21 @@ struct amdgpu_atif_notification_cfg { > }; > > struct amdgpu_atif_notifications { > - bool display_switch; > - bool expansion_mode_change; > bool thermal_state; > bool forced_power_state; > bool system_power_state; > - bool display_conf_change; > - bool px_gfx_switch; > bool brightness_change; > bool dgpu_display_event; > + bool gpu_package_power_limit; > }; > > struct amdgpu_atif_functions { > bool system_params; > bool sbios_requests; > - bool select_active_disp; > - bool lid_state; > - bool get_tv_standard; > - bool set_tv_standard; > - bool get_panel_expansion_mode; > - bool set_panel_expansion_mode; > bool temperature_change; > - bool graphics_device_types; > + bool query_backlight_transfer_characteristics; > + bool ready_to_undock; > + bool external_gpu_information; > }; > > struct amdgpu_atif { > @@ -137,15 +130,12 @@ static union acpi_object *amdgpu_atif_call(struct amdgpu_atif *atif, > */ > static void amdgpu_atif_parse_notification(struct amdgpu_atif_notifications *n, u32 mask) > { > - n->display_switch = mask & ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED; > - n->expansion_mode_change = mask & ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED; > n->thermal_state = mask & ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED; > n->forced_power_state = mask & ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED; > n->system_power_state = mask & ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED; > - n->display_conf_change = mask & ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED; > - n->px_gfx_switch = mask & ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED; > n->brightness_change = mask & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED; > n->dgpu_display_event = mask & ATIF_DGPU_DISPLAY_EVENT_SUPPORTED; > + n->gpu_package_power_limit = mask & ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED; > } > > /** > @@ -162,14 +152,11 @@ static void amdgpu_atif_parse_functions(struct amdgpu_atif_functions *f, u32 mas > { > f->system_params = mask & ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED; > f->sbios_requests = mask & ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED; > - f->select_active_disp = mask & ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED; > - f->lid_state = mask & ATIF_GET_LID_STATE_SUPPORTED; > - f->get_tv_standard = mask & ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED; > - f->set_tv_standard = mask & ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED; > - f->get_panel_expansion_mode = mask & ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED; > - f->set_panel_expansion_mode = mask & ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED; > f->temperature_change = mask & ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED; > - f->graphics_device_types = mask & ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED; > + f->query_backlight_transfer_characteristics = > + mask & ATIF_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED; > + f->ready_to_undock = mask & ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED; > + f->external_gpu_information = mask & ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED; > } > > /** > diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/include/amd_acpi.h > index 9b9699fc433f..8980edfe5fa9 100644 > --- a/drivers/gpu/drm/amd/include/amd_acpi.h > +++ b/drivers/gpu/drm/amd/include/amd_acpi.h > @@ -126,26 +126,18 @@ struct atcs_pref_req_output { > * 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) > +# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED (1 << 12) > /* 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_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED (1 << 15) > +# define ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED (1 << 16) > # define ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED (1 << 20) > #define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1 > /* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS > @@ -170,6 +162,10 @@ struct atcs_pref_req_output { > * n (0xd0-0xd9) is specified in notify command code. > * bit 2: > * 1 - lid changes not reported though int10 > + * bit 3: > + * 1 - system bios controls overclocking > + * bit 4: > + * 1 - enable overclocking > */ > #define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2 > /* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS > @@ -177,28 +173,23 @@ struct atcs_pref_req_output { > * OUTPUT: > * WORD - structure size in bytes (includes size field) > * DWORD - pending sbios requests > - * BYTE - panel expansion mode > + * BYTE - reserved (all zeroes) > * 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 - forced power state: state id (0: forced state, non-0: state) > * BYTE - system power source > * BYTE - panel backlight level (0-255) > + * BYTE - GPU package power limit: target gfx controller > + * DWORD - GPU package power limit: value (24:8 fractional format, Watts) > */ > /* 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 > +# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST (1 << 12) > /* target gfx controller */ > # define ATIF_TARGET_GFX_SINGLE 0 > # define ATIF_TARGET_GFX_PX_IGPU 1 > @@ -208,76 +199,6 @@ struct atcs_pref_req_output { > # 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: > @@ -286,21 +207,43 @@ struct atcs_pref_req_output { > * BYTE - current temperature (degress Celsius) > * OUTPUT: none > */ > -#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF > -/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES > - * ARG1: none > +#define ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0x10 > +/* ARG0: ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS > + * ARG1: > + * WORD - structure size in bytes (includes size field) > + * BYTE - requested display > * 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 / > + * WORD - structure size in bytes (includes size field) > + * WORD - flags (currently all 16 bits are reserved) > + * BYTE - error code (on failure, disregard all below fields) > + * BYTE - AC level (default brightness in percent when machine has full power) > + * BYTE - DC level (default brightness in percent when machine is on battery) > + * BYTE - min input signal, in range 0-255, corresponding to 0% backlight > + * BYTE - max input signal, in range 0-255, corresponding to 100% backlight > + * BYTE - number of reported data points > + * BYTE - luminance level in percent \ repeated structure > + * BYTE - input signal in range 0-255 / does not have entries for 0% and 100% > + */ > +/* requested display */ > +# define ATIF_QBTC_REQUEST_LCD1 0 > +# define ATIF_QBTC_REQUEST_CRT1 1 > +# define ATIF_QBTC_REQUEST_DFP1 3 > +# define ATIF_QBTC_REQUEST_CRT2 4 > +# define ATIF_QBTC_REQUEST_LCD2 5 > +# define ATIF_QBTC_REQUEST_DFP2 7 > +# define ATIF_QBTC_REQUEST_DFP3 9 > +# define ATIF_QBTC_REQUEST_DFP4 10 > +# define ATIF_QBTC_REQUEST_DFP5 11 > +# define ATIF_QBTC_REQUEST_DFP6 12 > +/* error code */ > +# define ATIF_QBTC_ERROR_CODE_SUCCESS 0 > +# define ATIF_QBTC_ERROR_CODE_FAILURE 1 > +# define ATIF_QBTC_ERROR_CODE_DEVICE_NOT_SUPPORTED 2 > +#define ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0x11 > +/* ARG0: ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION > + * ARG1: none > + * OUTPUT: none > */ > -/* 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) > #define ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0x15 > /* ARG0: ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION > * ARG1: none > -- > 2.17.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] drm/amd: update ATIF functions in AMD ACPI header [not found] ` <20181108205736.31203-1-David.Francis-5C7GfCeVMHo@public.gmane.org> 2018-11-08 21:08 ` Alex Deucher @ 2018-11-09 14:49 ` Wentland, Harry 1 sibling, 0 replies; 3+ messages in thread From: Wentland, Harry @ 2018-11-09 14:49 UTC (permalink / raw) To: Francis, David, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org On 2018-11-08 3:57 p.m., David Francis wrote: > The ACPI interface in AMD was a few years out of date > and contained some unused and deprecated functions > > Remove functions: Select Active Displays, Get Lid State, > Get TV Standard, Set TV Standard, Get Panel Expansion Mode, > Set Panel Expansion Mode, Get Graphics Device Types > > Add functions: Query Backlight Transfer Characteristics, > Ready To Undock Notification > > Changed functions: Get System Parameters, > Get System BIOS Requests > > All changes are right from the standard > ATI ACPI Control Methods V0.44 > > Signed-off-by: David Francis <David.Francis@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 31 ++--- > drivers/gpu/drm/amd/include/amd_acpi.h | 151 +++++++---------------- > 2 files changed, 56 insertions(+), 126 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index 7f0afc526419..471266901d1b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -41,28 +41,21 @@ struct amdgpu_atif_notification_cfg { > }; > > struct amdgpu_atif_notifications { > - bool display_switch; > - bool expansion_mode_change; > bool thermal_state; > bool forced_power_state; > bool system_power_state; > - bool display_conf_change; > - bool px_gfx_switch; > bool brightness_change; > bool dgpu_display_event; > + bool gpu_package_power_limit; > }; > > struct amdgpu_atif_functions { > bool system_params; > bool sbios_requests; > - bool select_active_disp; > - bool lid_state; > - bool get_tv_standard; > - bool set_tv_standard; > - bool get_panel_expansion_mode; > - bool set_panel_expansion_mode; > bool temperature_change; > - bool graphics_device_types; > + bool query_backlight_transfer_characteristics; > + bool ready_to_undock; > + bool external_gpu_information; > }; > > struct amdgpu_atif { > @@ -137,15 +130,12 @@ static union acpi_object *amdgpu_atif_call(struct amdgpu_atif *atif, > */ > static void amdgpu_atif_parse_notification(struct amdgpu_atif_notifications *n, u32 mask) > { > - n->display_switch = mask & ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED; > - n->expansion_mode_change = mask & ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED; > n->thermal_state = mask & ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED; > n->forced_power_state = mask & ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED; > n->system_power_state = mask & ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED; > - n->display_conf_change = mask & ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED; > - n->px_gfx_switch = mask & ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED; > n->brightness_change = mask & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED; > n->dgpu_display_event = mask & ATIF_DGPU_DISPLAY_EVENT_SUPPORTED; > + n->gpu_package_power_limit = mask & ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED; > } > > /** > @@ -162,14 +152,11 @@ static void amdgpu_atif_parse_functions(struct amdgpu_atif_functions *f, u32 mas > { > f->system_params = mask & ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED; > f->sbios_requests = mask & ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED; > - f->select_active_disp = mask & ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED; > - f->lid_state = mask & ATIF_GET_LID_STATE_SUPPORTED; > - f->get_tv_standard = mask & ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED; > - f->set_tv_standard = mask & ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED; > - f->get_panel_expansion_mode = mask & ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED; > - f->set_panel_expansion_mode = mask & ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED; > f->temperature_change = mask & ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED; > - f->graphics_device_types = mask & ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED; > + f->query_backlight_transfer_characteristics = > + mask & ATIF_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED; > + f->ready_to_undock = mask & ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED; > + f->external_gpu_information = mask & ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED; > } > > /** > diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/include/amd_acpi.h > index 9b9699fc433f..8980edfe5fa9 100644 > --- a/drivers/gpu/drm/amd/include/amd_acpi.h > +++ b/drivers/gpu/drm/amd/include/amd_acpi.h > @@ -126,26 +126,18 @@ struct atcs_pref_req_output { > * 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) > +# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED (1 << 12) > /* 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_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED (1 << 15) > +# define ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED (1 << 16) > # define ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED (1 << 20) > #define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1 > /* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS > @@ -170,6 +162,10 @@ struct atcs_pref_req_output { > * n (0xd0-0xd9) is specified in notify command code. > * bit 2: > * 1 - lid changes not reported though int10 > + * bit 3: > + * 1 - system bios controls overclocking > + * bit 4: > + * 1 - enable overclocking > */ > #define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2 > /* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS > @@ -177,28 +173,23 @@ struct atcs_pref_req_output { > * OUTPUT: > * WORD - structure size in bytes (includes size field) > * DWORD - pending sbios requests > - * BYTE - panel expansion mode > + * BYTE - reserved (all zeroes) > * 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 - forced power state: state id (0: forced state, non-0: state) > * BYTE - system power source > * BYTE - panel backlight level (0-255) > + * BYTE - GPU package power limit: target gfx controller > + * DWORD - GPU package power limit: value (24:8 fractional format, Watts) > */ > /* 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 > +# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST (1 << 12) > /* target gfx controller */ > # define ATIF_TARGET_GFX_SINGLE 0 > # define ATIF_TARGET_GFX_PX_IGPU 1 > @@ -208,76 +199,6 @@ struct atcs_pref_req_output { > # 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: > @@ -286,21 +207,43 @@ struct atcs_pref_req_output { > * BYTE - current temperature (degress Celsius) > * OUTPUT: none > */ > -#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF > -/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES > - * ARG1: none > +#define ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0x10 > +/* ARG0: ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS > + * ARG1: > + * WORD - structure size in bytes (includes size field) > + * BYTE - requested display > * 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 / > + * WORD - structure size in bytes (includes size field) > + * WORD - flags (currently all 16 bits are reserved) > + * BYTE - error code (on failure, disregard all below fields) > + * BYTE - AC level (default brightness in percent when machine has full power) > + * BYTE - DC level (default brightness in percent when machine is on battery) > + * BYTE - min input signal, in range 0-255, corresponding to 0% backlight > + * BYTE - max input signal, in range 0-255, corresponding to 100% backlight > + * BYTE - number of reported data points > + * BYTE - luminance level in percent \ repeated structure > + * BYTE - input signal in range 0-255 / does not have entries for 0% and 100% > + */ > +/* requested display */ > +# define ATIF_QBTC_REQUEST_LCD1 0 > +# define ATIF_QBTC_REQUEST_CRT1 1 > +# define ATIF_QBTC_REQUEST_DFP1 3 > +# define ATIF_QBTC_REQUEST_CRT2 4 > +# define ATIF_QBTC_REQUEST_LCD2 5 > +# define ATIF_QBTC_REQUEST_DFP2 7 > +# define ATIF_QBTC_REQUEST_DFP3 9 > +# define ATIF_QBTC_REQUEST_DFP4 10 > +# define ATIF_QBTC_REQUEST_DFP5 11 > +# define ATIF_QBTC_REQUEST_DFP6 12 > +/* error code */ > +# define ATIF_QBTC_ERROR_CODE_SUCCESS 0 > +# define ATIF_QBTC_ERROR_CODE_FAILURE 1 > +# define ATIF_QBTC_ERROR_CODE_DEVICE_NOT_SUPPORTED 2 > +#define ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0x11 > +/* ARG0: ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION > + * ARG1: none > + * OUTPUT: none > */ > -/* 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) > #define ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0x15 > /* ARG0: ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION > * ARG1: none > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-09 14:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-08 20:57 [PATCH] drm/amd: update ATIF functions in AMD ACPI header David Francis
[not found] ` <20181108205736.31203-1-David.Francis-5C7GfCeVMHo@public.gmane.org>
2018-11-08 21:08 ` Alex Deucher
2018-11-09 14:49 ` Wentland, Harry
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox