diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2017-04-05 20:35:26 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-04-06 00:22:39 -0400 |
commit | da2ba564a6dcf46df4f828624ff55531ff11d5b0 (patch) | |
tree | 6fb5c8baba6b424acfa7d54b7d14cc00c318ef63 | |
parent | 2907e8670b6ef253bffb33bf47fd2182969cf2a0 (diff) |
drm/nouveau: initial support (display-only) for GP107
Forked from GP106 implementation.
Split out from commit enabling secboot/gr support so that it can be
added to earlier kernels.
Cc: stable@vger.kernel.org [4.10+]
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c index 0fc41db34522..3b86a7399567 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | |||
@@ -2271,6 +2271,35 @@ nv136_chipset = { | |||
2271 | .fifo = gp100_fifo_new, | 2271 | .fifo = gp100_fifo_new, |
2272 | }; | 2272 | }; |
2273 | 2273 | ||
2274 | static const struct nvkm_device_chip | ||
2275 | nv137_chipset = { | ||
2276 | .name = "GP107", | ||
2277 | .bar = gf100_bar_new, | ||
2278 | .bios = nvkm_bios_new, | ||
2279 | .bus = gf100_bus_new, | ||
2280 | .devinit = gm200_devinit_new, | ||
2281 | .fb = gp102_fb_new, | ||
2282 | .fuse = gm107_fuse_new, | ||
2283 | .gpio = gk104_gpio_new, | ||
2284 | .i2c = gm200_i2c_new, | ||
2285 | .ibus = gm200_ibus_new, | ||
2286 | .imem = nv50_instmem_new, | ||
2287 | .ltc = gp100_ltc_new, | ||
2288 | .mc = gp100_mc_new, | ||
2289 | .mmu = gf100_mmu_new, | ||
2290 | .pci = gp100_pci_new, | ||
2291 | .pmu = gp102_pmu_new, | ||
2292 | .timer = gk20a_timer_new, | ||
2293 | .top = gk104_top_new, | ||
2294 | .ce[0] = gp102_ce_new, | ||
2295 | .ce[1] = gp102_ce_new, | ||
2296 | .ce[2] = gp102_ce_new, | ||
2297 | .ce[3] = gp102_ce_new, | ||
2298 | .disp = gp102_disp_new, | ||
2299 | .dma = gf119_dma_new, | ||
2300 | .fifo = gp100_fifo_new, | ||
2301 | }; | ||
2302 | |||
2274 | static int | 2303 | static int |
2275 | nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size, | 2304 | nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size, |
2276 | struct nvkm_notify *notify) | 2305 | struct nvkm_notify *notify) |
@@ -2708,6 +2737,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, | |||
2708 | case 0x132: device->chip = &nv132_chipset; break; | 2737 | case 0x132: device->chip = &nv132_chipset; break; |
2709 | case 0x134: device->chip = &nv134_chipset; break; | 2738 | case 0x134: device->chip = &nv134_chipset; break; |
2710 | case 0x136: device->chip = &nv136_chipset; break; | 2739 | case 0x136: device->chip = &nv136_chipset; break; |
2740 | case 0x137: device->chip = &nv137_chipset; break; | ||
2711 | default: | 2741 | default: |
2712 | nvdev_error(device, "unknown chipset (%08x)\n", boot0); | 2742 | nvdev_error(device, "unknown chipset (%08x)\n", boot0); |
2713 | goto done; | 2743 | goto done; |