[PATCH 10/10] drm/amd/powerplay: export new interfaces in amd_pm_funcs

Alex Deucher alexdeucher at gmail.com
Tue Sep 26 16:24:37 UTC 2017


On Mon, Sep 25, 2017 at 9:49 AM, Rex Zhu <Rex.Zhu at amd.com> wrote:
> Change-Id: If13500f76da6e42f50d40fc794fc5e1e5dc143bf
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>

Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/include/amd_shared.h | 38 +++++++++++++++++++++++++++-----
>  1 file changed, 33 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/include/amd_shared.h b/drivers/gpu/drm/amd/include/amd_shared.h
> index 292f602..89ad5bf 100644
> --- a/drivers/gpu/drm/amd/include/amd_shared.h
> +++ b/drivers/gpu/drm/amd/include/amd_shared.h
> @@ -232,9 +232,18 @@ struct amd_ip_funcs {
>         void (*get_clockgating_state)(void *handle, u32 *flags);
>  };
>
> -enum amd_pp_task;
>
> +enum amd_pp_task;
> +enum amd_pp_clock_type;
>  struct pp_states_info;
> +struct amd_pp_simple_clock_info;
> +struct amd_pp_display_configuration;
> +struct amd_pp_clock_info;
> +struct pp_display_clock_request;
> +struct pp_wm_sets_with_clock_ranges_soc15;
> +struct pp_clock_levels_with_voltage;
> +struct pp_clock_levels_with_latency;
> +struct amd_pp_clocks;
>
>  struct amd_pm_funcs {
>  /* export for dpm on ci and si */
> @@ -258,17 +267,13 @@ struct amd_pm_funcs {
>         int (*force_clock_level)(void *handle, enum pp_clock_type type, uint32_t mask);
>         int (*print_clock_levels)(void *handle, enum pp_clock_type type, char *buf);
>         int (*force_performance_level)(void *handle, enum amd_dpm_forced_level level);
> -
>         int (*get_sclk_od)(void *handle);
>         int (*set_sclk_od)(void *handle, uint32_t value);
>         int (*get_mclk_od)(void *handle);
>         int (*set_mclk_od)(void *handle, uint32_t value);
> -
>         int (*read_sensor)(void *handle, int idx, void *value, int *size);
> -
>         enum amd_dpm_forced_level (*get_performance_level)(void *handle);
>         enum amd_pm_state_type (*get_current_power_state)(void *handle);
> -
>         int (*get_fan_speed_rpm)(void *handle, uint32_t *rpm);
>         int (*get_pp_num_states)(void *handle, struct pp_states_info *data);
>         int (*get_pp_table)(void *handle, char **table);
> @@ -283,6 +288,7 @@ struct amd_pm_funcs {
>                         struct amd_pp_profile *request);
>         int (*switch_power_profile)(void *handle,
>                         enum amd_pp_profile_type type);
> +
>  /* export for amdgpu */
>         void (*powergate_uvd)(void *handle, bool gate);
>         void (*powergate_vce)(void *handle, bool gate);
> @@ -291,9 +297,31 @@ struct amd_pm_funcs {
>                                    void *input, void *output);
>         int (*load_firmware)(void *handle);
>         int (*wait_for_fw_loading_complete)(void *handle);
> +       int (*set_clockgating_by_smu)(void *handle, uint32_t msg_id);
>  /* export for DISPLAY */
>         u32 (*get_sclk)(void *handle, bool low);
>         u32 (*get_mclk)(void *handle, bool low);
> +       int (*display_configuration_change)(void *handle,
> +               const struct amd_pp_display_configuration *input);
> +       int (*get_display_power_level)(void *handle,
> +               struct amd_pp_simple_clock_info *output);
> +       int (*get_current_clocks)(void *handle,
> +               struct amd_pp_clock_info *clocks);
> +       int (*get_clock_by_type)(void *handle,
> +               enum amd_pp_clock_type type,
> +               struct amd_pp_clocks *clocks);
> +       int (*get_clock_by_type_with_latency)(void *handle,
> +               enum amd_pp_clock_type type,
> +               struct pp_clock_levels_with_latency *clocks);
> +       int (*get_clock_by_type_with_voltage)(void *handle,
> +               enum amd_pp_clock_type type,
> +               struct pp_clock_levels_with_voltage *clocks);
> +       int (*set_watermarks_for_clocks_ranges)(void *handle,
> +               struct pp_wm_sets_with_clock_ranges_soc15 *wm_with_clock_ranges);
> +       int (*display_clock_voltage_request)(void *handle,
> +               struct pp_display_clock_request *clock);
> +       int (*get_display_mode_validation_clocks)(void *handle,
> +               struct amd_pp_simple_clock_info *clocks);
>  };
>
>
> --
> 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