drm/nouveau/core: initial support for GP102
authorBen Skeggs <bskeggs@redhat.com>
Mon, 7 Nov 2016 07:38:43 +0000 (17:38 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 16 Nov 2016 23:50:35 +0000 (09:50 +1000)
From visual inspection of traces, what we currently implement appears to
be identical to GP104.  Seems to work well enough too.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c

index bd22526edb0b9c4d9cf56cd9528732c30dc94183..e3a936aa0f81e702f407fa57a3bed8f77c0daa96 100644 (file)
@@ -2182,6 +2182,34 @@ nv130_chipset = {
        .sw = gf100_sw_new,
 };
 
+static const struct nvkm_device_chip
+nv132_chipset = {
+       .name = "GP102",
+       .bar = gf100_bar_new,
+       .bios = nvkm_bios_new,
+       .bus = gf100_bus_new,
+       .devinit = gm200_devinit_new,
+       .fb = gp104_fb_new,
+       .fuse = gm107_fuse_new,
+       .gpio = gk104_gpio_new,
+       .i2c = gm200_i2c_new,
+       .ibus = gm200_ibus_new,
+       .imem = nv50_instmem_new,
+       .ltc = gp100_ltc_new,
+       .mc = gp100_mc_new,
+       .mmu = gf100_mmu_new,
+       .pci = gp100_pci_new,
+       .timer = gk20a_timer_new,
+       .top = gk104_top_new,
+       .ce[0] = gp104_ce_new,
+       .ce[1] = gp104_ce_new,
+       .ce[2] = gp104_ce_new,
+       .ce[3] = gp104_ce_new,
+       .disp = gp104_disp_new,
+       .dma = gf119_dma_new,
+       .fifo = gp100_fifo_new,
+};
+
 static const struct nvkm_device_chip
 nv134_chipset = {
        .name = "GP104",
@@ -2644,6 +2672,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
                case 0x126: device->chip = &nv126_chipset; break;
                case 0x12b: device->chip = &nv12b_chipset; break;
                case 0x130: device->chip = &nv130_chipset; break;
+               case 0x132: device->chip = &nv132_chipset; break;
                case 0x134: device->chip = &nv134_chipset; break;
                default:
                        nvdev_error(device, "unknown chipset (%08x)\n", boot0);