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

Commit 167112bf authored by Huang Rui's avatar Huang Rui Committed by Alex Deucher
Browse files

drm/amd/powerplay: add callbacks to move smc firmware request into sw_init phase

parent a5b2b6eb
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -76,9 +76,18 @@ static int pp_sw_init(void *handle)
	if (ret)
		goto err1;

	if (hwmgr->hwmgr_func->request_firmware) {
		ret = hwmgr->hwmgr_func->request_firmware(hwmgr);
		if (ret)
			goto err2;
	}

	pr_info("amdgpu: powerplay initialized\n");

	return 0;
err2:
	if (hwmgr->hwmgr_func->backend_fini)
		hwmgr->hwmgr_func->backend_fini(hwmgr);
err1:
	if (hwmgr->pptable_func->pptable_fini)
		hwmgr->pptable_func->pptable_fini(hwmgr);
@@ -101,6 +110,9 @@ static int pp_sw_fini(void *handle)

	PP_CHECK_HW(hwmgr);

	if (hwmgr->hwmgr_func->release_firmware)
		 ret = hwmgr->hwmgr_func->release_firmware(hwmgr);

	if (hwmgr->hwmgr_func->backend_fini != NULL)
		ret = hwmgr->hwmgr_func->backend_fini(hwmgr);

+2 −0
Original line number Diff line number Diff line
@@ -358,6 +358,8 @@ struct pp_hwmgr_func {
	int (*get_mclk_od)(struct pp_hwmgr *hwmgr);
	int (*set_mclk_od)(struct pp_hwmgr *hwmgr, uint32_t value);
	int (*read_sensor)(struct pp_hwmgr *hwmgr, int idx, int32_t *value);
	int (*request_firmware)(struct pp_hwmgr *hwmgr);
	int (*release_firmware)(struct pp_hwmgr *hwmgr);
};

struct pp_table_func {