These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / subdev / fb / ramgm107.c
index a298b39..43d807f 100644 (file)
  *
  * Authors: Ben Skeggs
  */
-#include "gf100.h"
+#include "ram.h"
 
-struct gm107_ram {
-       struct nvkm_ram base;
+static const struct nvkm_ram_func
+gm107_ram_func = {
+       .init = gk104_ram_init,
+       .get = gf100_ram_get,
+       .put = gf100_ram_put,
 };
 
-static int
-gm107_ram_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
-              struct nvkm_oclass *oclass, void *data, u32 size,
-              struct nvkm_object **pobject)
+int
+gm107_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
 {
-       struct gm107_ram *ram;
-       int ret;
+       if (!(*pram = kzalloc(sizeof(**pram), GFP_KERNEL)))
+               return -ENOMEM;
 
-       ret = gf100_ram_create(parent, engine, oclass, 0x021c14, &ram);
-       *pobject = nv_object(ram);
-       if (ret)
-               return ret;
-
-       return 0;
+       return gf100_ram_ctor(&gm107_ram_func, fb, 0x021c14, *pram);
 }
-
-struct nvkm_oclass
-gm107_ram_oclass = {
-       .handle = 0,
-       .ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = gm107_ram_ctor,
-               .dtor = _nvkm_ram_dtor,
-               .init = gk104_ram_init,
-               .fini = _nvkm_ram_fini,
-       }
-};