diff options
-rw-r--r-- | bin/nv_rffunc.h | 2 | ||||
-rw-r--r-- | bin/nv_rifunc.h | 2 | ||||
-rw-r--r-- | bin/nv_rsfunc.h | 2 | ||||
-rw-r--r-- | bin/nv_rvfunc.h | 2 | ||||
-rw-r--r-- | bin/nv_wffunc.h | 2 | ||||
-rw-r--r-- | bin/nv_wifunc.h | 2 | ||||
-rw-r--r-- | bin/nv_wsfunc.h | 2 | ||||
-rw-r--r-- | bin/nv_wvfunc.h | 2 | ||||
-rw-r--r-- | drm/nouveau/include/nvif/cl0080.h | 1 | ||||
-rw-r--r-- | drm/nouveau/include/nvkm/core/device.h | 1 | ||||
-rw-r--r-- | drm/nouveau/nouveau_abi16.c | 1 | ||||
-rw-r--r-- | drm/nouveau/nouveau_ttm.c | 1 | ||||
-rw-r--r-- | drm/nouveau/nvkm/engine/device/base.c | 7 | ||||
-rw-r--r-- | drm/nouveau/nvkm/engine/device/user.c | 1 |
14 files changed, 20 insertions, 8 deletions
diff --git a/bin/nv_rffunc.h b/bin/nv_rffunc.h index fe1d616a0..d14efe2a0 100644 --- a/bin/nv_rffunc.h +++ b/bin/nv_rffunc.h @@ -13,7 +13,7 @@ nv_rfb(struct nvif_device *device, u64 offset) u64 addr = (offset & (PAGE_SIZE - 1)); if (device->info.family < NV_DEVICE_INFO_V0_TNT || - device->info.family > NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family > NV_DEVICE_INFO_V0_PASCAL) { printk("unsupported chipset\n"); exit(1); } diff --git a/bin/nv_rifunc.h b/bin/nv_rifunc.h index 8da8898ed..c3827fb39 100644 --- a/bin/nv_rifunc.h +++ b/bin/nv_rifunc.h @@ -13,7 +13,7 @@ nv_rfb(struct nvif_device *device, u64 offset) u64 addr = (offset & (PAGE_SIZE - 1)); if (device->info.family < NV_DEVICE_INFO_V0_CURIE || - device->info.family > NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family > NV_DEVICE_INFO_V0_PASCAL) { printk("unsupported chipset\n"); exit(1); } diff --git a/bin/nv_rsfunc.h b/bin/nv_rsfunc.h index f234ccac7..4f7bc691a 100644 --- a/bin/nv_rsfunc.h +++ b/bin/nv_rsfunc.h @@ -6,7 +6,7 @@ static CAST nv_rsys(struct nvif_device *device, u64 addr) { if (device->info.family >= NV_DEVICE_INFO_V0_TESLA && - device->info.family <= NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family <= NV_DEVICE_INFO_V0_PASCAL) { CAST data; u32 pmem = nvif_rd32(&device->object, 0x001700); nvif_wr32(&device->object, 0x001700, 0x02000000 | (addr >> 16)); diff --git a/bin/nv_rvfunc.h b/bin/nv_rvfunc.h index ea8aaf60f..cf804bf1e 100644 --- a/bin/nv_rvfunc.h +++ b/bin/nv_rvfunc.h @@ -6,7 +6,7 @@ static CAST nv_rvram(struct nvif_device *device, u64 addr) { if (device->info.family >= NV_DEVICE_INFO_V0_TESLA && - device->info.family <= NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family <= NV_DEVICE_INFO_V0_PASCAL) { CAST data; u32 pmem = nvif_rd32(&device->object, 0x001700); nvif_wr32(&device->object, 0x001700, 0x00000000 | (addr >> 16)); diff --git a/bin/nv_wffunc.h b/bin/nv_wffunc.h index 94f54146f..9b0ed3b1c 100644 --- a/bin/nv_wffunc.h +++ b/bin/nv_wffunc.h @@ -13,7 +13,7 @@ nv_wfb(struct nvif_device *device, u64 offset, CAST data) u64 addr = (offset & (PAGE_SIZE - 1)); if (device->info.family < NV_DEVICE_INFO_V0_TNT || - device->info.family > NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family > NV_DEVICE_INFO_V0_PASCAL) { printk("unsupported chipset\n"); exit(1); } diff --git a/bin/nv_wifunc.h b/bin/nv_wifunc.h index aaa597c2d..50c67a654 100644 --- a/bin/nv_wifunc.h +++ b/bin/nv_wifunc.h @@ -13,7 +13,7 @@ nv_wfb(struct nvif_device *device, u64 offset, CAST data) u64 addr = (offset & (PAGE_SIZE - 1)); if (device->info.family < NV_DEVICE_INFO_V0_CURIE || - device->info.family > NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family > NV_DEVICE_INFO_V0_PASCAL) { printk("unsupported chipset\n"); exit(1); } diff --git a/bin/nv_wsfunc.h b/bin/nv_wsfunc.h index a77dda676..9d313b540 100644 --- a/bin/nv_wsfunc.h +++ b/bin/nv_wsfunc.h @@ -6,7 +6,7 @@ static void nv_wsys(struct nvif_device *device, u64 addr, CAST data) { if (device->info.family >= NV_DEVICE_INFO_V0_TESLA && - device->info.family <= NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family <= NV_DEVICE_INFO_V0_PASCAL) { u32 pmem = nvif_rd32(&device->object, 0x001700); nvif_wr32(&device->object, 0x001700, 0x02000000 | (addr >> 16)); WSYS(&device->object, 0x700000 + (addr & 0xffffULL), data); diff --git a/bin/nv_wvfunc.h b/bin/nv_wvfunc.h index ea631fa50..7ff26ec54 100644 --- a/bin/nv_wvfunc.h +++ b/bin/nv_wvfunc.h @@ -6,7 +6,7 @@ static void nv_wvram(struct nvif_device *device, u64 addr, CAST data) { if (device->info.family >= NV_DEVICE_INFO_V0_TESLA && - device->info.family <= NV_DEVICE_INFO_V0_MAXWELL) { + device->info.family <= NV_DEVICE_INFO_V0_PASCAL) { u32 pmem = nvif_rd32(&device->object, 0x001700); nvif_wr32(&device->object, 0x001700, 0x00000000 | (addr >> 16)); WVRAM(&device->object, 0x700000 + (addr & 0xffffULL), data); diff --git a/drm/nouveau/include/nvif/cl0080.h b/drm/nouveau/include/nvif/cl0080.h index 331620a52..287a7d6fa 100644 --- a/drm/nouveau/include/nvif/cl0080.h +++ b/drm/nouveau/include/nvif/cl0080.h @@ -29,6 +29,7 @@ struct nv_device_info_v0 { #define NV_DEVICE_INFO_V0_FERMI 0x07 #define NV_DEVICE_INFO_V0_KEPLER 0x08 #define NV_DEVICE_INFO_V0_MAXWELL 0x09 +#define NV_DEVICE_INFO_V0_PASCAL 0x0a __u8 family; __u8 pad06[2]; __u64 ram_size; diff --git a/drm/nouveau/include/nvkm/core/device.h b/drm/nouveau/include/nvkm/core/device.h index fe3247dd9..6bc712f32 100644 --- a/drm/nouveau/include/nvkm/core/device.h +++ b/drm/nouveau/include/nvkm/core/device.h @@ -106,6 +106,7 @@ struct nvkm_device { NV_C0 = 0xc0, NV_E0 = 0xe0, GM100 = 0x110, + GP100 = 0x130, } card_type; u32 chipset; u8 chiprev; diff --git a/drm/nouveau/nouveau_abi16.c b/drm/nouveau/nouveau_abi16.c index eb7de487a..7bd468321 100644 --- a/drm/nouveau/nouveau_abi16.c +++ b/drm/nouveau/nouveau_abi16.c @@ -100,6 +100,7 @@ nouveau_abi16_swclass(struct nouveau_drm *drm) case NV_DEVICE_INFO_V0_FERMI: case NV_DEVICE_INFO_V0_KEPLER: case NV_DEVICE_INFO_V0_MAXWELL: + case NV_DEVICE_INFO_V0_PASCAL: return NVIF_CLASS_SW_GF100; } diff --git a/drm/nouveau/nouveau_ttm.c b/drm/nouveau/nouveau_ttm.c index bcee91497..1825dbc33 100644 --- a/drm/nouveau/nouveau_ttm.c +++ b/drm/nouveau/nouveau_ttm.c @@ -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_KEPLER: case NV_DEVICE_INFO_V0_MAXWELL: + case NV_DEVICE_INFO_V0_PASCAL: node->memtype = (nvbo->tile_flags & 0xff00) >> 8; break; default: diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c index dcc623dc7..817228a7e 100644 --- a/drm/nouveau/nvkm/engine/device/base.c +++ b/drm/nouveau/nvkm/engine/device/base.c @@ -2148,6 +2148,11 @@ nv12b_chipset = { .sw = gf100_sw_new, }; +static const struct nvkm_device_chip +nv130_chipset = { + .name = "GP100", +}; + static int nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size, 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 0x110: case 0x120: device->card_type = GM100; break; + case 0x130: device->card_type = GP100; break; default: break; } @@ -2580,6 +2586,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, case 0x124: device->chip = &nv124_chipset; break; case 0x126: device->chip = &nv126_chipset; break; case 0x12b: device->chip = &nv12b_chipset; break; + case 0x130: device->chip = &nv130_chipset; break; default: nvdev_error(device, "unknown chipset (%08x)\n", boot0); goto done; diff --git a/drm/nouveau/nvkm/engine/device/user.c b/drm/nouveau/nvkm/engine/device/user.c index 137066426..79a8f71cf 100644 --- a/drm/nouveau/nvkm/engine/device/user.c +++ b/drm/nouveau/nvkm/engine/device/user.c @@ -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_E0: args->v0.family = NV_DEVICE_INFO_V0_KEPLER; break; case GM100: args->v0.family = NV_DEVICE_INFO_V0_MAXWELL; break; + case GP100: args->v0.family = NV_DEVICE_INFO_V0_PASCAL; break; default: args->v0.family = 0; break; |