[PATCH] amdgpu/pp: remove ci_smc/smumgr split.

Alex Deucher alexdeucher at gmail.com
Thu Sep 28 18:51:29 UTC 2017


On Wed, Sep 27, 2017 at 7:04 PM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This split serves no purpose, and we can make a bunch of functions
> static now.
>
> There are lots of cases of this sort of split in the powerplay code,
> please start cleaning them up. Ideally the function table is in the
> same file as all the implementations used in it.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>

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

> ---
>  drivers/gpu/drm/amd/powerplay/smumgr/Makefile    |  2 +-
>  drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c    | 85 ++++++++++++++++++-----
>  drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h    | 52 --------------
>  drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | 86 ------------------------
>  4 files changed, 71 insertions(+), 154 deletions(-)
>  delete mode 100644 drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h
>  delete mode 100644 drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/Makefile b/drivers/gpu/drm/amd/powerplay/smumgr/Makefile
> index a423c0a..4e29888 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/Makefile
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/Makefile
> @@ -4,7 +4,7 @@
>
>  SMU_MGR = smumgr.o cz_smumgr.o tonga_smumgr.o fiji_smumgr.o fiji_smc.o \
>           polaris10_smumgr.o iceland_smumgr.o polaris10_smc.o tonga_smc.o \
> -         smu7_smumgr.o iceland_smc.o vega10_smumgr.o rv_smumgr.o ci_smc.o ci_smumgr.o
> +         smu7_smumgr.o iceland_smc.o vega10_smumgr.o rv_smumgr.o ci_smc.o
>
>  AMD_PP_SMUMGR = $(addprefix $(AMD_PP_PATH)/smumgr/,$(SMU_MGR))
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c
> index 9ee1431..8fb0aa0 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c
> @@ -28,7 +28,6 @@
>
>  #include "smumgr.h"
>  #include "pp_debug.h"
> -#include "ci_smc.h"
>  #include "ci_smumgr.h"
>  #include "ppsmc.h"
>  #include "smu7_hwmgr.h"
> @@ -208,7 +207,7 @@ static int ci_read_smc_sram_dword(struct pp_hwmgr *hwmgr, uint32_t smc_addr,
>         return 0;
>  }
>
> -int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
> +static int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
>  {
>         int ret;
>
> @@ -227,7 +226,7 @@ int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
>         return 0;
>  }
>
> -int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
> +static int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
>                                         uint16_t msg, uint32_t parameter)
>  {
>         cgs_write_register(hwmgr->device, mmSMC_MSG_ARG_0, parameter);
> @@ -476,7 +475,7 @@ static int ci_populate_single_graphic_level(struct pp_hwmgr *hwmgr,
>         return result;
>  }
>
> -int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr)
> +static int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr)
>  {
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>         struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
> @@ -1297,7 +1296,7 @@ static int ci_populate_single_memory_level(
>         return result;
>  }
>
> -int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr)
> +static int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr)
>  {
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>         struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
> @@ -1944,7 +1943,7 @@ static int ci_start_smc(struct pp_hwmgr *hwmgr)
>         return 0;
>  }
>
> -int ci_init_smc_table(struct pp_hwmgr *hwmgr)
> +static int ci_init_smc_table(struct pp_hwmgr *hwmgr)
>  {
>         int result;
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
> @@ -2125,7 +2124,7 @@ int ci_init_smc_table(struct pp_hwmgr *hwmgr)
>         return 0;
>  }
>
> -int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
> +static int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
>  {
>         struct ci_smumgr *ci_data = (struct ci_smumgr *)(hwmgr->smu_backend);
>         SMU7_Discrete_FanTable fan_table = { FDO_MODE_HARDWARE };
> @@ -2211,7 +2210,7 @@ static int ci_program_mem_timing_parameters(struct pp_hwmgr *hwmgr)
>         return 0;
>  }
>
> -int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
> +static int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
>  {
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>         struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
> @@ -2252,7 +2251,7 @@ int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
>         return result;
>  }
>
> -uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
> +static uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
>  {
>         switch (type) {
>         case SMU_SoftRegisters:
> @@ -2278,7 +2277,7 @@ uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
>         return 0;
>  }
>
> -uint32_t ci_get_mac_definition(uint32_t value)
> +static uint32_t ci_get_mac_definition(uint32_t value)
>  {
>         switch (value) {
>         case SMU_MAX_LEVELS_GRAPHICS:
> @@ -2355,7 +2354,7 @@ static int ci_upload_firmware(struct pp_hwmgr *hwmgr)
>         return ci_load_smc_ucode(hwmgr);
>  }
>
> -int ci_process_firmware_header(struct pp_hwmgr *hwmgr)
> +static int ci_process_firmware_header(struct pp_hwmgr *hwmgr)
>  {
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>         struct ci_smumgr *ci_data = (struct ci_smumgr *)(hwmgr->smu_backend);
> @@ -2667,7 +2666,7 @@ static int ci_set_valid_flag(struct ci_mc_reg_table *table)
>         return 0;
>  }
>
> -int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
> +static int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
>  {
>         int result;
>         struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
> @@ -2722,13 +2721,13 @@ int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
>         return result;
>  }
>
> -bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
> +static bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
>  {
>         return ci_is_smc_ram_running(hwmgr);
>  }
>
> -int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
> -               struct amd_pp_profile *request)
> +static int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
> +                                               struct amd_pp_profile *request)
>  {
>         struct ci_smumgr *smu_data = (struct ci_smumgr *)
>                         (hwmgr->smu_backend);
> @@ -2751,3 +2750,59 @@ int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
>         return ci_copy_bytes_to_smc(hwmgr, array, (uint8_t *)levels,
>                                 array_size, SMC_RAM_END);
>  }
> +
> +
> +static int ci_smu_init(struct pp_hwmgr *hwmgr)
> +{
> +       int i;
> +       struct ci_smumgr *ci_priv = NULL;
> +
> +       ci_priv = kzalloc(sizeof(struct ci_smumgr), GFP_KERNEL);
> +
> +       if (ci_priv == NULL)
> +               return -ENOMEM;
> +
> +       for (i = 0; i < SMU7_MAX_LEVELS_GRAPHICS; i++)
> +               ci_priv->activity_target[i] = 30;
> +
> +       hwmgr->smu_backend = ci_priv;
> +
> +       return 0;
> +}
> +
> +static int ci_smu_fini(struct pp_hwmgr *hwmgr)
> +{
> +       kfree(hwmgr->smu_backend);
> +       hwmgr->smu_backend = NULL;
> +       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
> +       return 0;
> +}
> +
> +static int ci_start_smu(struct pp_hwmgr *hwmgr)
> +{
> +       return 0;
> +}
> +
> +const struct pp_smumgr_func ci_smu_funcs = {
> +       .smu_init = ci_smu_init,
> +       .smu_fini = ci_smu_fini,
> +       .start_smu = ci_start_smu,
> +       .check_fw_load_finish = NULL,
> +       .request_smu_load_fw = NULL,
> +       .request_smu_load_specific_fw = NULL,
> +       .send_msg_to_smc = ci_send_msg_to_smc,
> +       .send_msg_to_smc_with_parameter = ci_send_msg_to_smc_with_parameter,
> +       .download_pptable_settings = NULL,
> +       .upload_pptable_settings = NULL,
> +       .get_offsetof = ci_get_offsetof,
> +       .process_firmware_header = ci_process_firmware_header,
> +       .init_smc_table = ci_init_smc_table,
> +       .update_sclk_threshold = ci_update_sclk_threshold,
> +       .thermal_setup_fan_table = ci_thermal_setup_fan_table,
> +       .populate_all_graphic_levels = ci_populate_all_graphic_levels,
> +       .populate_all_memory_levels = ci_populate_all_memory_levels,
> +       .get_mac_definition = ci_get_mac_definition,
> +       .initialize_mc_reg_table = ci_initialize_mc_reg_table,
> +       .is_dpm_running = ci_is_dpm_running,
> +       .populate_requested_graphic_levels = ci_populate_requested_graphic_levels,
> +};
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h
> deleted file mode 100644
> index cc4176d..0000000
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -/*
> - * Copyright 2017 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 CI_SMC_H
> -#define CI_SMC_H
> -
> -#include <linux/types.h>
> -
> -
> -struct pp_smumgr;
> -struct pp_hwmgr;
> -struct amd_pp_profile;
> -
> -int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
> -                                       uint16_t msg, uint32_t parameter);
> -int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg);
> -int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr);
> -int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr);
> -int ci_init_smc_table(struct pp_hwmgr *hwmgr);
> -int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr);
> -int ci_update_smc_table(struct pp_hwmgr *hwmgr, uint32_t type);
> -int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr);
> -uint32_t ci_get_offsetof(uint32_t type, uint32_t member);
> -uint32_t ci_get_mac_definition(uint32_t value);
> -int ci_process_firmware_header(struct pp_hwmgr *hwmgr);
> -int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr);
> -bool ci_is_dpm_running(struct pp_hwmgr *hwmgr);
> -int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
> -                                       struct amd_pp_profile *request);
> -
> -
> -#endif
> -
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
> deleted file mode 100644
> index f265f42..0000000
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
> +++ /dev/null
> @@ -1,86 +0,0 @@
> -/*
> - * Copyright 2015 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.
> - *
> - */
> -#include <linux/module.h>
> -#include <linux/slab.h>
> -#include <linux/fb.h>
> -#include "linux/delay.h"
> -
> -#include "smumgr.h"
> -#include "ci_smumgr.h"
> -#include "cgs_common.h"
> -#include "ci_smc.h"
> -
> -static int ci_smu_init(struct pp_hwmgr *hwmgr)
> -{
> -       int i;
> -       struct ci_smumgr *ci_priv = NULL;
> -
> -       ci_priv = kzalloc(sizeof(struct ci_smumgr), GFP_KERNEL);
> -
> -       if (ci_priv == NULL)
> -               return -ENOMEM;
> -
> -       for (i = 0; i < SMU7_MAX_LEVELS_GRAPHICS; i++)
> -               ci_priv->activity_target[i] = 30;
> -
> -       hwmgr->smu_backend = ci_priv;
> -
> -       return 0;
> -}
> -
> -static int ci_smu_fini(struct pp_hwmgr *hwmgr)
> -{
> -       kfree(hwmgr->smu_backend);
> -       hwmgr->smu_backend = NULL;
> -       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
> -       return 0;
> -}
> -
> -static int ci_start_smu(struct pp_hwmgr *hwmgr)
> -{
> -       return 0;
> -}
> -
> -const struct pp_smumgr_func ci_smu_funcs = {
> -       .smu_init = ci_smu_init,
> -       .smu_fini = ci_smu_fini,
> -       .start_smu = ci_start_smu,
> -       .check_fw_load_finish = NULL,
> -       .request_smu_load_fw = NULL,
> -       .request_smu_load_specific_fw = NULL,
> -       .send_msg_to_smc = ci_send_msg_to_smc,
> -       .send_msg_to_smc_with_parameter = ci_send_msg_to_smc_with_parameter,
> -       .download_pptable_settings = NULL,
> -       .upload_pptable_settings = NULL,
> -       .get_offsetof = ci_get_offsetof,
> -       .process_firmware_header = ci_process_firmware_header,
> -       .init_smc_table = ci_init_smc_table,
> -       .update_sclk_threshold = ci_update_sclk_threshold,
> -       .thermal_setup_fan_table = ci_thermal_setup_fan_table,
> -       .populate_all_graphic_levels = ci_populate_all_graphic_levels,
> -       .populate_all_memory_levels = ci_populate_all_memory_levels,
> -       .get_mac_definition = ci_get_mac_definition,
> -       .initialize_mc_reg_table = ci_initialize_mc_reg_table,
> -       .is_dpm_running = ci_is_dpm_running,
> -       .populate_requested_graphic_levels = ci_populate_requested_graphic_levels,
> -};
> --
> 2.9.4
>
> _______________________________________________
> 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