/*
- * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #include "priv.h"
 #include "gf100.h"
 
-#include <core/memory.h>
-
-static void
-gk20a_fb_init(struct nvkm_fb *fb)
-{
-       struct nvkm_device *device = fb->subdev.device;
-       nvkm_wr32(device, 0x100cc8, nvkm_memory_addr(fb->mmu_wr) >> 8);
-       nvkm_wr32(device, 0x100ccc, nvkm_memory_addr(fb->mmu_rd) >> 8);
-}
-
+/* GK20A's FB is similar to GF100's, but without the ability to allocate VRAM */
 static const struct nvkm_fb_func
 gk20a_fb = {
+       .dtor = gf100_fb_dtor,
        .oneinit = gf100_fb_oneinit,
-       .init = gk20a_fb_init,
+       .init = gf100_fb_init,
        .init_page = gf100_fb_init_page,
+       .intr = gf100_fb_intr,
        .memtype_valid = gf100_fb_memtype_valid,
 };