[PATCH] drm/amd/pp: Refine add irq logic in powerplay

Alex Deucher alexdeucher at gmail.com
Wed Mar 21 05:17:09 UTC 2018


On Wed, Mar 21, 2018 at 12:54 AM, Rex Zhu <Rex.Zhu at amd.com> wrote:
> 1. register smu irq when sw init.
> 2. delete useless function argument.

If you split this into two patches, one for each logical change above, it's:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

>
> Change-Id: Ie817e524327f14edfde62843fbdd2a7999489819
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/amd_powerplay.c         | 2 ++
>  drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 6 +++---
>  drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c           | 4 ----
>  drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c      | 5 ++---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c    | 5 ++---
>  drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h   | 2 +-
>  drivers/gpu/drm/amd/powerplay/inc/hwmgr.h             | 3 +--
>  7 files changed, 11 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> index 0381317..7e8ad30 100644
> --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> @@ -117,6 +117,8 @@ static int pp_sw_init(void *handle)
>
>                 ret = hwmgr->smumgr_funcs->smu_init(hwmgr);
>
> +               phm_register_irq_handlers(hwmgr);
> +
>                 pr_debug("amdgpu: powerplay sw initialized\n");
>         }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
> index b784131..ae2e933 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
> @@ -202,12 +202,12 @@ int phm_stop_thermal_controller(struct pp_hwmgr *hwmgr)
>         return hwmgr->hwmgr_func->stop_thermal_controller(hwmgr);
>  }
>
> -int phm_register_thermal_interrupt(struct pp_hwmgr *hwmgr, const void *info)
> +int phm_register_irq_handlers(struct pp_hwmgr *hwmgr)
>  {
>         PHM_FUNC_CHECK(hwmgr);
>
> -       if (hwmgr->hwmgr_func->register_internal_thermal_interrupt != NULL)
> -               return hwmgr->hwmgr_func->register_internal_thermal_interrupt(hwmgr, info);
> +       if (hwmgr->hwmgr_func->register_irq_handlers != NULL)
> +               return hwmgr->hwmgr_func->register_irq_handlers(hwmgr);
>
>         return 0;
>  }
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
> index fbcdda5..6318438 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
> @@ -200,10 +200,6 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
>         if (ret)
>                 goto err2;
>
> -       ret = phm_register_thermal_interrupt(hwmgr, NULL);
> -       if (ret)
> -               goto err2;
> -
>         return 0;
>  err2:
>         if (hwmgr->hwmgr_func->backend_fini)
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> index 4083387..8a81360 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> @@ -3996,8 +3996,7 @@ static int smu7_set_max_fan_rpm_output(struct pp_hwmgr *hwmgr, uint16_t us_max_f
>                         PPSMC_MSG_SetFanRpmMax, us_max_fan_rpm);
>  }
>
> -static int smu7_register_internal_thermal_interrupt(struct pp_hwmgr *hwmgr,
> -                                       const void *thermal_interrupt_info)
> +static int smu7_register_irq_handlers(struct pp_hwmgr *hwmgr)
>  {
>         return 0;
>  }
> @@ -4982,7 +4981,7 @@ static int smu7_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, uint
>         .get_fan_speed_rpm = smu7_fan_ctrl_get_fan_speed_rpm,
>         .set_fan_speed_rpm = smu7_fan_ctrl_set_fan_speed_rpm,
>         .uninitialize_thermal_controller = smu7_thermal_ctrl_uninitialize_thermal_controller,
> -       .register_internal_thermal_interrupt = smu7_register_internal_thermal_interrupt,
> +       .register_irq_handlers = smu7_register_irq_handlers,
>         .check_smc_update_required_for_display_configuration = smu7_check_smc_update_required_for_display_configuration,
>         .check_states_equal = smu7_check_states_equal,
>         .set_fan_control_mode = smu7_set_fan_control_mode,
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index eb9884e..7bb9dd9 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -4819,8 +4819,7 @@ static int vega10_get_thermal_temperature_range(struct pp_hwmgr *hwmgr,
>         .process = phm_irq_process,
>  };
>
> -static int vega10_register_thermal_interrupt(struct pp_hwmgr *hwmgr,
> -               const void *info)
> +static int vega10_register_irq_handlers(struct pp_hwmgr *hwmgr)
>  {
>         struct amdgpu_irq_src *source =
>                 kzalloc(sizeof(struct amdgpu_irq_src), GFP_KERNEL);
> @@ -4978,7 +4977,7 @@ static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui
>         .avfs_control = vega10_avfs_enable,
>         .notify_cac_buffer_info = vega10_notify_cac_buffer_info,
>         .get_thermal_temperature_range = vega10_get_thermal_temperature_range,
> -       .register_internal_thermal_interrupt = vega10_register_thermal_interrupt,
> +       .register_irq_handlers = vega10_register_irq_handlers,
>         .start_thermal_controller = vega10_start_thermal_controller,
>         .get_power_profile_mode = vega10_get_power_profile_mode,
>         .set_power_profile_mode = vega10_set_power_profile_mode,
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
> index b366a5b..f69547f 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
> @@ -403,7 +403,7 @@ extern int phm_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
>  extern int phm_force_dpm_levels(struct pp_hwmgr *hwmgr, enum amd_dpm_forced_level level);
>  extern int phm_display_configuration_changed(struct pp_hwmgr *hwmgr);
>  extern int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hwmgr);
> -extern int phm_register_thermal_interrupt(struct pp_hwmgr *hwmgr, const void *info);
> +extern int phm_register_irq_handlers(struct pp_hwmgr *hwmgr);
>  extern int phm_start_thermal_controller(struct pp_hwmgr *hwmgr);
>  extern int phm_stop_thermal_controller(struct pp_hwmgr *hwmgr);
>  extern bool phm_check_smc_update_required_for_display_configuration(struct pp_hwmgr *hwmgr);
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> index 2667775..efdcf31 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> @@ -287,8 +287,7 @@ struct pp_hwmgr_func {
>         int (*get_fan_speed_rpm)(struct pp_hwmgr *hwmgr, uint32_t *speed);
>         int (*reset_fan_speed_to_default)(struct pp_hwmgr *hwmgr);
>         int (*uninitialize_thermal_controller)(struct pp_hwmgr *hwmgr);
> -       int (*register_internal_thermal_interrupt)(struct pp_hwmgr *hwmgr,
> -                                       const void *thermal_interrupt_info);
> +       int (*register_irq_handlers)(struct pp_hwmgr *hwmgr);
>         bool (*check_smc_update_required_for_display_configuration)(struct pp_hwmgr *hwmgr);
>         int (*check_states_equal)(struct pp_hwmgr *hwmgr,
>                                         const struct pp_hw_power_state *pstate1,
> --
> 1.9.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list