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

Commit 0a4fef55 authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher
Browse files

drm/amd/powerplay: need to notify system bios pcie device ready



before request performance state.

Signed-off-by: default avatarRex Zhu <Rex.Zhu@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarKen Wang <Qingqing.Wang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 576b4401
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -44,6 +44,20 @@ bool acpi_atcs_functions_supported(void *device, uint32_t index)
	return result == 0 ? (output_buf.function_bits & (1 << (index - 1))) != 0 : false;
	return result == 0 ? (output_buf.function_bits & (1 << (index - 1))) != 0 : false;
}
}


bool acpi_atcs_notify_pcie_device_ready(void *device)
{
	int32_t temp_buffer = 1;

	return cgs_call_acpi_method(device, CGS_ACPI_METHOD_ATCS,
				ATCS_FUNCTION_PCIE_DEVICE_READY_NOTIFICATION,
						&temp_buffer,
						NULL,
						0,
						sizeof(temp_buffer),
						0);
}


int acpi_pcie_perf_request(void *device, uint8_t perf_req, bool advertise)
int acpi_pcie_perf_request(void *device, uint8_t perf_req, bool advertise)
{
{
	struct atcs_pref_req_input atcs_input;
	struct atcs_pref_req_input atcs_input;
@@ -52,7 +66,7 @@ int acpi_pcie_perf_request(void *device, uint8_t perf_req, bool advertise)
	int result;
	int result;
	struct cgs_system_info info = {0};
	struct cgs_system_info info = {0};


	if (!acpi_atcs_functions_supported(device, ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST))
	if( 0 != acpi_atcs_notify_pcie_device_ready(device))
		return -EINVAL;
		return -EINVAL;


	info.size = sizeof(struct cgs_system_info);
	info.size = sizeof(struct cgs_system_info);
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,3 +26,4 @@ extern bool acpi_atcs_functions_supported(void *device,
extern int acpi_pcie_perf_request(void *device,
extern int acpi_pcie_perf_request(void *device,
						uint8_t perf_req,
						uint8_t perf_req,
						bool advertise);
						bool advertise);
extern bool acpi_atcs_notify_pcie_device_ready(void *device);