Re: [PATCH] drm/amd: update ATIF functions in AMD ACPI header

2018-11-09 Thread Wentland, Harry
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 

Reviewed-by: Harry Wentland 

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_

Re: [PATCH] drm/amd: update ATIF functions in AMD ACPI header

2018-11-08 Thread Alex Deucher
On Thu, Nov 8, 2018 at 3:57 PM 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 

Reviewed-by: Alex Deucher 

> ---
>  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_

[PATCH] drm/amd: update ATIF functions in AMD ACPI header

2018-11-08 Thread 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 
---
 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_REQU