Commit 2659b4ce authored by Ilia Mirkin's avatar Ilia Mirkin Committed by Ben Skeggs

initial support (display-only) for GP108

Forked from GP107 implementation. Secboot/gr left out as we don't have
signed blobs from NVIDIA in linux-firmware.

(Ben): Was unable to mmiotrace the binary driver for unknown reasons,
       so not able to 100% confirm that no other changes from GP107
       are needed.  Quick testing shows it seems to work well enough
       for display.  Due to NVIDIA dragging their heels on getting
       signed firmware to us, this is the best we can do for now.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101601Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent e20868b9
...@@ -2323,6 +2323,35 @@ nv137_chipset = { ...@@ -2323,6 +2323,35 @@ nv137_chipset = {
.sw = gf100_sw_new, .sw = gf100_sw_new,
}; };
static const struct nvkm_device_chip
nv138_chipset = {
.name = "GP108",
.bar = gf100_bar_new,
.bios = nvkm_bios_new,
.bus = gf100_bus_new,
.devinit = gm200_devinit_new,
.fb = gp102_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,
.pmu = gp102_pmu_new,
.timer = gk20a_timer_new,
.top = gk104_top_new,
.ce[0] = gp102_ce_new,
.ce[1] = gp102_ce_new,
.ce[2] = gp102_ce_new,
.ce[3] = gp102_ce_new,
.disp = gp102_disp_new,
.dma = gf119_dma_new,
.fifo = gp100_fifo_new,
};
static const struct nvkm_device_chip static const struct nvkm_device_chip
nv13b_chipset = { nv13b_chipset = {
.name = "GP10B", .name = "GP10B",
...@@ -2785,6 +2814,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -2785,6 +2814,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x134: device->chip = &nv134_chipset; break; case 0x134: device->chip = &nv134_chipset; break;
case 0x136: device->chip = &nv136_chipset; break; case 0x136: device->chip = &nv136_chipset; break;
case 0x137: device->chip = &nv137_chipset; break; case 0x137: device->chip = &nv137_chipset; break;
case 0x138: device->chip = &nv138_chipset; break;
case 0x13b: device->chip = &nv13b_chipset; break; case 0x13b: device->chip = &nv13b_chipset; break;
default: default:
nvdev_error(device, "unknown chipset (%08x)\n", boot0); nvdev_error(device, "unknown chipset (%08x)\n", boot0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment