|
@@ -28,6 +28,7 @@ struct amdgpu_atpx_functions {
|
|
|
struct amdgpu_atpx {
|
|
|
acpi_handle handle;
|
|
|
struct amdgpu_atpx_functions functions;
|
|
|
+ bool is_hybrid;
|
|
|
};
|
|
|
|
|
|
static struct amdgpu_atpx_priv {
|
|
@@ -68,6 +69,10 @@ bool amdgpu_has_atpx_dgpu_power_cntl(void) {
|
|
|
return amdgpu_atpx_priv.atpx.functions.power_cntl;
|
|
|
}
|
|
|
|
|
|
+bool amdgpu_is_atpx_hybrid(void) {
|
|
|
+ return amdgpu_atpx_priv.atpx.is_hybrid;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* amdgpu_atpx_call - call an ATPX method
|
|
|
*
|
|
@@ -192,9 +197,11 @@ static int amdgpu_atpx_validate(struct amdgpu_atpx *atpx)
|
|
|
ATPX_DYNAMIC_DGPU_POWER_OFF_SUPPORTED))
|
|
|
atpx->functions.power_cntl = true;
|
|
|
|
|
|
+ atpx->is_hybrid = false;
|
|
|
if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) {
|
|
|
- printk("Hybrid Graphics, ATPX dGPU power cntl disabled\n");
|
|
|
+ printk("ATPX Hybrid Graphics\n");
|
|
|
atpx->functions.power_cntl = false;
|
|
|
+ atpx->is_hybrid = true;
|
|
|
}
|
|
|
|
|
|
return 0;
|