summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/nv_rffunc.h2
-rw-r--r--bin/nv_rifunc.h2
-rw-r--r--bin/nv_rsfunc.h2
-rw-r--r--bin/nv_rvfunc.h2
-rw-r--r--bin/nv_wffunc.h2
-rw-r--r--bin/nv_wifunc.h2
-rw-r--r--bin/nv_wsfunc.h2
-rw-r--r--bin/nv_wvfunc.h2
-rw-r--r--drm/nouveau/include/nvif/cl0080.h1
-rw-r--r--drm/nouveau/include/nvkm/core/device.h1
-rw-r--r--drm/nouveau/nouveau_abi16.c1
-rw-r--r--drm/nouveau/nouveau_ttm.c1
-rw-r--r--drm/nouveau/nvkm/engine/device/base.c7
-rw-r--r--drm/nouveau/nvkm/engine/device/user.c1
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;