提交 76ad42c1 编写于 作者: E Eric Huang 提交者: Alex Deucher

drm/amd/powerplay: change backend allocation to backend init

backend_init and backend_fini are paired functions, backend is freed
in backend_fini and should be allocated in backend_init.
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: NEric Huang <JinHuiEric.Huang@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 c27371b8
...@@ -1180,6 +1180,13 @@ static int cz_apply_state_adjust_rules(struct pp_hwmgr *hwmgr, ...@@ -1180,6 +1180,13 @@ static int cz_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
static int cz_hwmgr_backend_init(struct pp_hwmgr *hwmgr) static int cz_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
{ {
int result = 0; int result = 0;
struct cz_hwmgr *data;
data = kzalloc(sizeof(struct cz_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
result = cz_initialize_dpm_defaults(hwmgr); result = cz_initialize_dpm_defaults(hwmgr);
if (result != 0) { if (result != 0) {
...@@ -1909,15 +1916,7 @@ static const struct pp_hwmgr_func cz_hwmgr_funcs = { ...@@ -1909,15 +1916,7 @@ static const struct pp_hwmgr_func cz_hwmgr_funcs = {
int cz_hwmgr_init(struct pp_hwmgr *hwmgr) int cz_hwmgr_init(struct pp_hwmgr *hwmgr)
{ {
struct cz_hwmgr *cz_hwmgr;
int ret = 0;
cz_hwmgr = kzalloc(sizeof(struct cz_hwmgr), GFP_KERNEL);
if (cz_hwmgr == NULL)
return -ENOMEM;
hwmgr->backend = cz_hwmgr;
hwmgr->hwmgr_func = &cz_hwmgr_funcs; hwmgr->hwmgr_func = &cz_hwmgr_funcs;
hwmgr->pptable_func = &pptable_funcs; hwmgr->pptable_func = &pptable_funcs;
return ret; return 0;
} }
...@@ -593,13 +593,19 @@ static int fiji_hwmgr_backend_fini(struct pp_hwmgr *hwmgr) ...@@ -593,13 +593,19 @@ static int fiji_hwmgr_backend_fini(struct pp_hwmgr *hwmgr)
static int fiji_hwmgr_backend_init(struct pp_hwmgr *hwmgr) static int fiji_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
{ {
struct fiji_hwmgr *data = (struct fiji_hwmgr *)(hwmgr->backend); struct fiji_hwmgr *data;
uint32_t i; uint32_t i;
struct phm_ppt_v1_information *table_info = struct phm_ppt_v1_information *table_info =
(struct phm_ppt_v1_information *)(hwmgr->pptable); (struct phm_ppt_v1_information *)(hwmgr->pptable);
bool stay_in_boot; bool stay_in_boot;
int result; int result;
data = kzalloc(sizeof(struct fiji_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
data->dll_default_on = false; data->dll_default_on = false;
data->sram_end = SMC_RAM_END; data->sram_end = SMC_RAM_END;
...@@ -5629,16 +5635,8 @@ static const struct pp_hwmgr_func fiji_hwmgr_funcs = { ...@@ -5629,16 +5635,8 @@ static const struct pp_hwmgr_func fiji_hwmgr_funcs = {
int fiji_hwmgr_init(struct pp_hwmgr *hwmgr) int fiji_hwmgr_init(struct pp_hwmgr *hwmgr)
{ {
struct fiji_hwmgr *data;
int ret = 0;
data = kzalloc(sizeof(struct fiji_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
hwmgr->hwmgr_func = &fiji_hwmgr_funcs; hwmgr->hwmgr_func = &fiji_hwmgr_funcs;
hwmgr->pptable_func = &tonga_pptable_funcs; hwmgr->pptable_func = &tonga_pptable_funcs;
pp_fiji_thermal_initialize(hwmgr); pp_fiji_thermal_initialize(hwmgr);
return ret; return 0;
} }
...@@ -3115,13 +3115,19 @@ static int polaris10_set_private_data_based_on_pptable(struct pp_hwmgr *hwmgr) ...@@ -3115,13 +3115,19 @@ static int polaris10_set_private_data_based_on_pptable(struct pp_hwmgr *hwmgr)
int polaris10_hwmgr_backend_init(struct pp_hwmgr *hwmgr) int polaris10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
{ {
struct polaris10_hwmgr *data = (struct polaris10_hwmgr *)(hwmgr->backend); struct polaris10_hwmgr *data;
struct pp_atomctrl_gpio_pin_assignment gpio_pin_assignment; struct pp_atomctrl_gpio_pin_assignment gpio_pin_assignment;
uint32_t temp_reg; uint32_t temp_reg;
int result; int result;
struct phm_ppt_v1_information *table_info = struct phm_ppt_v1_information *table_info =
(struct phm_ppt_v1_information *)(hwmgr->pptable); (struct phm_ppt_v1_information *)(hwmgr->pptable);
data = kzalloc(sizeof(struct polaris10_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
data->dll_default_on = false; data->dll_default_on = false;
data->sram_end = SMC_RAM_END; data->sram_end = SMC_RAM_END;
data->mclk_dpm0_activity_target = 0xa; data->mclk_dpm0_activity_target = 0xa;
...@@ -5265,13 +5271,6 @@ static const struct pp_hwmgr_func polaris10_hwmgr_funcs = { ...@@ -5265,13 +5271,6 @@ static const struct pp_hwmgr_func polaris10_hwmgr_funcs = {
int polaris10_hwmgr_init(struct pp_hwmgr *hwmgr) int polaris10_hwmgr_init(struct pp_hwmgr *hwmgr)
{ {
struct polaris10_hwmgr *data;
data = kzalloc (sizeof(struct polaris10_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
hwmgr->hwmgr_func = &polaris10_hwmgr_funcs; hwmgr->hwmgr_func = &polaris10_hwmgr_funcs;
hwmgr->pptable_func = &tonga_pptable_funcs; hwmgr->pptable_func = &tonga_pptable_funcs;
pp_polaris10_thermal_initialize(hwmgr); pp_polaris10_thermal_initialize(hwmgr);
......
...@@ -4442,7 +4442,7 @@ int tonga_hwmgr_backend_init(struct pp_hwmgr *hwmgr) ...@@ -4442,7 +4442,7 @@ int tonga_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
{ {
int result = 0; int result = 0;
SMU72_Discrete_DpmTable *table = NULL; SMU72_Discrete_DpmTable *table = NULL;
tonga_hwmgr *data = (struct tonga_hwmgr *)(hwmgr->backend); tonga_hwmgr *data;
pp_atomctrl_gpio_pin_assignment gpio_pin_assignment; pp_atomctrl_gpio_pin_assignment gpio_pin_assignment;
struct phm_ppt_v1_information *pptable_info = (struct phm_ppt_v1_information *)(hwmgr->pptable); struct phm_ppt_v1_information *pptable_info = (struct phm_ppt_v1_information *)(hwmgr->pptable);
phw_tonga_ulv_parm *ulv; phw_tonga_ulv_parm *ulv;
...@@ -4451,6 +4451,12 @@ int tonga_hwmgr_backend_init(struct pp_hwmgr *hwmgr) ...@@ -4451,6 +4451,12 @@ int tonga_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
PP_ASSERT_WITH_CODE((NULL != hwmgr), PP_ASSERT_WITH_CODE((NULL != hwmgr),
"Invalid Parameter!", return -1;); "Invalid Parameter!", return -1;);
data = kzalloc(sizeof(struct tonga_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
hwmgr->backend = data;
data->dll_defaule_on = 0; data->dll_defaule_on = 0;
data->sram_end = SMC_RAM_END; data->sram_end = SMC_RAM_END;
...@@ -6309,14 +6315,6 @@ static const struct pp_hwmgr_func tonga_hwmgr_funcs = { ...@@ -6309,14 +6315,6 @@ static const struct pp_hwmgr_func tonga_hwmgr_funcs = {
int tonga_hwmgr_init(struct pp_hwmgr *hwmgr) int tonga_hwmgr_init(struct pp_hwmgr *hwmgr)
{ {
tonga_hwmgr *data;
data = kzalloc (sizeof(tonga_hwmgr), GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
memset(data, 0x00, sizeof(tonga_hwmgr));
hwmgr->backend = data;
hwmgr->hwmgr_func = &tonga_hwmgr_funcs; hwmgr->hwmgr_func = &tonga_hwmgr_funcs;
hwmgr->pptable_func = &tonga_pptable_funcs; hwmgr->pptable_func = &tonga_pptable_funcs;
pp_tonga_thermal_initialize(hwmgr); pp_tonga_thermal_initialize(hwmgr);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册