mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/core: recognise GP100 chipset
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
cb7b5ea9be
commit
7f53abdb95
|
@ -29,6 +29,7 @@ struct nv_device_info_v0 {
|
||||||
#define NV_DEVICE_INFO_V0_FERMI 0x07
|
#define NV_DEVICE_INFO_V0_FERMI 0x07
|
||||||
#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
|
||||||
__u8 family;
|
__u8 family;
|
||||||
__u8 pad06[2];
|
__u8 pad06[2];
|
||||||
__u64 ram_size;
|
__u64 ram_size;
|
||||||
|
|
|
@ -106,6 +106,7 @@ struct nvkm_device {
|
||||||
NV_C0 = 0xc0,
|
NV_C0 = 0xc0,
|
||||||
NV_E0 = 0xe0,
|
NV_E0 = 0xe0,
|
||||||
GM100 = 0x110,
|
GM100 = 0x110,
|
||||||
|
GP100 = 0x130,
|
||||||
} card_type;
|
} card_type;
|
||||||
u32 chipset;
|
u32 chipset;
|
||||||
u8 chiprev;
|
u8 chiprev;
|
||||||
|
|
|
@ -100,6 +100,7 @@ nouveau_abi16_swclass(struct nouveau_drm *drm)
|
||||||
case NV_DEVICE_INFO_V0_FERMI:
|
case NV_DEVICE_INFO_V0_FERMI:
|
||||||
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:
|
||||||
return NVIF_CLASS_SW_GF100;
|
return NVIF_CLASS_SW_GF100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,7 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
|
||||||
case NV_DEVICE_INFO_V0_FERMI:
|
case NV_DEVICE_INFO_V0_FERMI:
|
||||||
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:
|
||||||
node->memtype = (nvbo->tile_flags & 0xff00) >> 8;
|
node->memtype = (nvbo->tile_flags & 0xff00) >> 8;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -2148,6 +2148,11 @@ nv12b_chipset = {
|
||||||
.sw = gf100_sw_new,
|
.sw = gf100_sw_new,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct nvkm_device_chip
|
||||||
|
nv130_chipset = {
|
||||||
|
.name = "GP100",
|
||||||
|
};
|
||||||
|
|
||||||
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)
|
||||||
|
@ -2496,6 +2501,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
||||||
case 0x100: device->card_type = NV_E0; break;
|
case 0x100: device->card_type = NV_E0; break;
|
||||||
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;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2580,6 +2586,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
||||||
case 0x124: device->chip = &nv124_chipset; break;
|
case 0x124: device->chip = &nv124_chipset; break;
|
||||||
case 0x126: device->chip = &nv126_chipset; break;
|
case 0x126: device->chip = &nv126_chipset; break;
|
||||||
case 0x12b: device->chip = &nv12b_chipset; break;
|
case 0x12b: device->chip = &nv12b_chipset; break;
|
||||||
|
case 0x130: device->chip = &nv130_chipset; break;
|
||||||
default:
|
default:
|
||||||
nvdev_error(device, "unknown chipset (%08x)\n", boot0);
|
nvdev_error(device, "unknown chipset (%08x)\n", boot0);
|
||||||
goto done;
|
goto done;
|
||||||
|
|
|
@ -102,6 +102,7 @@ nvkm_udevice_info(struct nvkm_udevice *udev, void *data, u32 size)
|
||||||
case NV_C0: args->v0.family = NV_DEVICE_INFO_V0_FERMI; break;
|
case NV_C0: args->v0.family = NV_DEVICE_INFO_V0_FERMI; break;
|
||||||
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;
|
||||||
default:
|
default:
|
||||||
args->v0.family = 0;
|
args->v0.family = 0;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue