drm/nouveau/core: recognise GP100 chipset
authorBen Skeggs <bskeggs@redhat.com>
Sat, 9 Jul 2016 00:41:01 +0000 (10:41 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 14 Jul 2016 01:53:25 +0000 (11:53 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvif/cl0080.h
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
drivers/gpu/drm/nouveau/nouveau_abi16.c
drivers/gpu/drm/nouveau/nouveau_ttm.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c

index 331620a52afa69e8575728d1f4e1d6093a3d39dc..287a7d6fa4804d9dd0abe901d322f1fa3ed5ebd1 100644 (file)
@@ -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;
index fe3247dd90408daf1336795cf6949d279ba94ed0..6bc712f32c8b4a0850e7445c7bb2a096464cf90d 100644 (file)
@@ -106,6 +106,7 @@ struct nvkm_device {
                NV_C0    = 0xc0,
                NV_E0    = 0xe0,
                GM100    = 0x110,
+               GP100    = 0x130,
        } card_type;
        u32 chipset;
        u8  chiprev;
index eb7de487a2b3f16936c70b183c4945d1e26072a8..7bd4683216d016dcbc78aa088a2b7bd67d4453a5 100644 (file)
@@ -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;
        }
 
index bcee91497eb9778fb1c8c266369b33cdfe44a2b7..1825dbc331926c84de69e13606f38cf4c80a2bed 100644 (file)
@@ -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:
index dcc623dc7b95428ad5c6360222c60f401e52f773..817228a7e9b25ad49ef5297781f59fe4d29b3e8f 100644 (file)
@@ -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;
index 137066426ed7f9cbb37e24650a95e15225e02765..79a8f71cf7884dc3e2307e12b591a194f8ae841a 100644 (file)
@@ -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;