diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-07-20 09:46:42 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-07-20 09:46:42 +0200 |
commit | 4fffe71dd913cca5532da594e2f48a0db6b494dc (patch) | |
tree | 6e0dc83582382506e8b70760d8b59a50d93bfa5a /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | 4b3b234f434d440fcd749b9636131b76e2ce561e (diff) | |
parent | 47ef4ad2684d380dd6d596140fb79395115c3950 (diff) | |
download | linux-4fffe71dd913cca5532da594e2f48a0db6b494dc.tar.gz linux-4fffe71dd913cca5532da594e2f48a0db6b494dc.tar.xz |
Merge branch 'linus' into x86/cpu, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 964f31404f17..6e920086af46 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -1385,6 +1385,15 @@ static int amdgpu_resume(struct amdgpu_device *adev) return 0; } +static bool amdgpu_device_is_virtual(void) +{ +#ifdef CONFIG_X86 + return boot_cpu_has(X86_FEATURE_HYPERVISOR); +#else + return false; +#endif +} + /** * amdgpu_device_init - initialize the driver * @@ -1519,8 +1528,14 @@ int amdgpu_device_init(struct amdgpu_device *adev, adev->virtualization.supports_sr_iov = amdgpu_atombios_has_gpu_virtualization_table(adev); + /* Check if we are executing in a virtualized environment */ + adev->virtualization.is_virtual = amdgpu_device_is_virtual(); + adev->virtualization.caps = amdgpu_asic_get_virtual_caps(adev); + /* Post card if necessary */ - if (!amdgpu_card_posted(adev)) { + if (!amdgpu_card_posted(adev) || + (adev->virtualization.is_virtual && + !(adev->virtualization.caps & AMDGPU_VIRT_CAPS_SRIOV_EN))) { if (!adev->bios) { dev_err(adev->dev, "Card not posted and no BIOS - ignoring\n"); return -EINVAL; |