c1d5388741
* Thu May 28 2020 CKI@GitLab <cki-project@redhat.com> [5.7.0-0.rc7.20200528gitb0c3ba31be3e.1] - b0c3ba31be3e rebase - Updated changelog for the release based on 444fc5cde643 ("CKI@GitLab") Resolves: rhbz# Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
60 lines
2.0 KiB
Diff
60 lines
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Karol Herbst <kherbst@redhat.com>
|
|
Date: Tue, 28 Apr 2020 18:54:04 +0200
|
|
Subject: [PATCH] device: detect vGPUs
|
|
|
|
Using ENODEV as this prevents probe failed errors in dmesg.
|
|
|
|
v2: move check further down
|
|
|
|
Signed-off-by: Karol Herbst <kherbst@redhat.com>
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
---
|
|
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
|
|
index c732074bf790..f977dddcd809 100644
|
|
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
|
|
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
|
|
@@ -2948,7 +2948,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
|
{
|
|
struct nvkm_subdev *subdev;
|
|
u64 mmio_base, mmio_size;
|
|
- u32 boot0, strap;
|
|
+ u32 boot0, boot1, strap;
|
|
void __iomem *map = NULL;
|
|
int ret = -EEXIST, i;
|
|
unsigned chipset;
|
|
@@ -2998,9 +2998,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
|
}
|
|
}
|
|
|
|
- /* read boot0 and strapping information */
|
|
boot0 = ioread32_native(map + 0x000000);
|
|
- strap = ioread32_native(map + 0x101000);
|
|
|
|
/* chipset can be overridden for devel/testing purposes */
|
|
chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0);
|
|
@@ -3158,6 +3156,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
|
nvdev_info(device, "NVIDIA %s (%08x)\n",
|
|
device->chip->name, boot0);
|
|
|
|
+ /* vGPU detection */
|
|
+ boot1 = ioread32_native(map + 0x000004);
|
|
+ if (device->card_type >= TU100 && (boot1 & 0x00030000)) {
|
|
+ nvdev_info(device, "vGPUs are not supported\n");
|
|
+ ret = -ENODEV;
|
|
+ goto done;
|
|
+ }
|
|
+
|
|
+ /* read strapping information */
|
|
+ strap = ioread32_native(map + 0x101000);
|
|
+
|
|
/* determine frequency of timing crystal */
|
|
if ( device->card_type <= NV_10 || device->chipset < 0x17 ||
|
|
(device->chipset >= 0x20 && device->chipset < 0x25))
|
|
--
|
|
2.26.2
|
|
|