Commit c1f856bb authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/core: recognise gv100

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 890c85f3
...@@ -31,6 +31,7 @@ struct nv_device_info_v0 { ...@@ -31,6 +31,7 @@ struct nv_device_info_v0 {
#define NV_DEVICE_INFO_V0_KEPLER 0x08 #define NV_DEVICE_INFO_V0_KEPLER 0x08
#define NV_DEVICE_INFO_V0_MAXWELL 0x09 #define NV_DEVICE_INFO_V0_MAXWELL 0x09
#define NV_DEVICE_INFO_V0_PASCAL 0x0a #define NV_DEVICE_INFO_V0_PASCAL 0x0a
#define NV_DEVICE_INFO_V0_VOLTA 0x0b
__u8 family; __u8 family;
__u8 pad06[2]; __u8 pad06[2];
__u64 ram_size; __u64 ram_size;
......
...@@ -113,6 +113,7 @@ struct nvkm_device { ...@@ -113,6 +113,7 @@ struct nvkm_device {
NV_E0 = 0xe0, NV_E0 = 0xe0,
GM100 = 0x110, GM100 = 0x110,
GP100 = 0x130, GP100 = 0x130,
GV100 = 0x140,
} card_type; } card_type;
u32 chipset; u32 chipset;
u8 chiprev; u8 chiprev;
......
...@@ -103,6 +103,7 @@ nouveau_abi16_swclass(struct nouveau_drm *drm) ...@@ -103,6 +103,7 @@ nouveau_abi16_swclass(struct nouveau_drm *drm)
case NV_DEVICE_INFO_V0_KEPLER: case NV_DEVICE_INFO_V0_KEPLER:
case NV_DEVICE_INFO_V0_MAXWELL: case NV_DEVICE_INFO_V0_MAXWELL:
case NV_DEVICE_INFO_V0_PASCAL: case NV_DEVICE_INFO_V0_PASCAL:
case NV_DEVICE_INFO_V0_VOLTA:
return NVIF_CLASS_SW_GF100; return NVIF_CLASS_SW_GF100;
} }
......
...@@ -2394,6 +2394,11 @@ nv13b_chipset = { ...@@ -2394,6 +2394,11 @@ nv13b_chipset = {
.sw = gf100_sw_new, .sw = gf100_sw_new,
}; };
static const struct nvkm_device_chip
nv140_chipset = {
.name = "GV100",
};
static int static int
nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size, nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size,
struct nvkm_notify *notify) struct nvkm_notify *notify)
...@@ -2750,6 +2755,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -2750,6 +2755,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x110: case 0x110:
case 0x120: device->card_type = GM100; break; case 0x120: device->card_type = GM100; break;
case 0x130: device->card_type = GP100; break; case 0x130: device->card_type = GP100; break;
case 0x140: device->card_type = GV100; break;
default: default:
break; break;
} }
...@@ -2841,6 +2847,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -2841,6 +2847,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x137: device->chip = &nv137_chipset; break; case 0x137: device->chip = &nv137_chipset; break;
case 0x138: device->chip = &nv138_chipset; break; case 0x138: device->chip = &nv138_chipset; break;
case 0x13b: device->chip = &nv13b_chipset; break; case 0x13b: device->chip = &nv13b_chipset; break;
case 0x140: device->chip = &nv140_chipset; break;
default: default:
nvdev_error(device, "unknown chipset (%08x)\n", boot0); nvdev_error(device, "unknown chipset (%08x)\n", boot0);
goto done; goto done;
......
...@@ -174,6 +174,7 @@ nvkm_udevice_info(struct nvkm_udevice *udev, void *data, u32 size) ...@@ -174,6 +174,7 @@ nvkm_udevice_info(struct nvkm_udevice *udev, void *data, u32 size)
case NV_E0: args->v0.family = NV_DEVICE_INFO_V0_KEPLER; break; case NV_E0: args->v0.family = NV_DEVICE_INFO_V0_KEPLER; break;
case GM100: args->v0.family = NV_DEVICE_INFO_V0_MAXWELL; break; case GM100: args->v0.family = NV_DEVICE_INFO_V0_MAXWELL; break;
case GP100: args->v0.family = NV_DEVICE_INFO_V0_PASCAL; break; case GP100: args->v0.family = NV_DEVICE_INFO_V0_PASCAL; break;
case GV100: args->v0.family = NV_DEVICE_INFO_V0_VOLTA; break;
default: default:
args->v0.family = 0; args->v0.family = 0;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment