mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-05 21:35:04 +08:00
drm/nouveau/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>
This commit is contained in:
parent
51c05340e4
commit
2924779bca
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user