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

before request performance state.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
This commit is contained in:
Rex Zhu 2016-06-14 18:36:36 +08:00 committed by Alex Deucher
parent 576b4401b1
commit 0a4fef559b
2 changed files with 16 additions and 1 deletions

View File

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

View File

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