Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76ad42c1 authored by Eric Huang's avatar Eric Huang Committed by Alex Deucher
Browse files

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: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarEric Huang <JinHuiEric.Huang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c27371b8
Loading
Loading
Loading
Loading
+8 −9
Original line number Original line Diff line number Diff line
@@ -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 = {


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;
}
}
+8 −10
Original line number Original line Diff line number Diff line
@@ -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 = {


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;
}
}
+7 −8
Original line number Original line Diff line number Diff line
@@ -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 = {


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);
+7 −9
Original line number Original line Diff line number Diff line
@@ -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)
	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 = {


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);