Lines Matching full:fb

35 nvkm_fb_tile_fini(struct nvkm_fb *fb, int region, struct nvkm_fb_tile *tile)  in nvkm_fb_tile_fini()  argument
37 fb->func->tile.fini(fb, region, tile); in nvkm_fb_tile_fini()
41 nvkm_fb_tile_init(struct nvkm_fb *fb, int region, u32 addr, u32 size, in nvkm_fb_tile_init() argument
44 fb->func->tile.init(fb, region, addr, size, pitch, flags, tile); in nvkm_fb_tile_init()
48 nvkm_fb_tile_prog(struct nvkm_fb *fb, int region, struct nvkm_fb_tile *tile) in nvkm_fb_tile_prog() argument
50 struct nvkm_device *device = fb->subdev.device; in nvkm_fb_tile_prog()
51 if (fb->func->tile.prog) { in nvkm_fb_tile_prog()
52 fb->func->tile.prog(fb, region, tile); in nvkm_fb_tile_prog()
91 struct nvkm_fb *fb = nvkm_fb(subdev); in nvkm_fb_intr() local
92 if (fb->func->intr) in nvkm_fb_intr()
93 fb->func->intr(fb); in nvkm_fb_intr()
99 struct nvkm_fb *fb = nvkm_fb(subdev); in nvkm_fb_oneinit() local
102 if (fb->func->ram_new) { in nvkm_fb_oneinit()
103 int ret = fb->func->ram_new(fb, &fb->ram); in nvkm_fb_oneinit()
110 if (fb->func->oneinit) { in nvkm_fb_oneinit()
111 int ret = fb->func->oneinit(fb); in nvkm_fb_oneinit()
120 if (fb->func->tags) { in nvkm_fb_oneinit()
121 tags = fb->func->tags(fb); in nvkm_fb_oneinit()
125 return nvkm_mm_init(&fb->tags, 0, 0, tags, 1); in nvkm_fb_oneinit()
129 nvkm_fb_init_scrub_vpr(struct nvkm_fb *fb) in nvkm_fb_init_scrub_vpr() argument
131 struct nvkm_subdev *subdev = &fb->subdev; in nvkm_fb_init_scrub_vpr()
136 if (!fb->vpr_scrubber.size) { in nvkm_fb_init_scrub_vpr()
141 ret = fb->func->vpr.scrub(fb); in nvkm_fb_init_scrub_vpr()
147 if (fb->func->vpr.scrub_required(fb)) { in nvkm_fb_init_scrub_vpr()
159 struct nvkm_fb *fb = nvkm_fb(subdev); in nvkm_fb_init() local
162 if (fb->ram) { in nvkm_fb_init()
163 ret = nvkm_ram_init(fb->ram); in nvkm_fb_init()
168 for (i = 0; i < fb->tile.regions; i++) in nvkm_fb_init()
169 fb->func->tile.prog(fb, i, &fb->tile.region[i]); in nvkm_fb_init()
171 if (fb->func->init) in nvkm_fb_init()
172 fb->func->init(fb); in nvkm_fb_init()
174 if (fb->func->init_remapper) in nvkm_fb_init()
175 fb->func->init_remapper(fb); in nvkm_fb_init()
177 if (fb->func->init_page) { in nvkm_fb_init()
178 ret = fb->func->init_page(fb); in nvkm_fb_init()
183 if (fb->func->init_unkn) in nvkm_fb_init()
184 fb->func->init_unkn(fb); in nvkm_fb_init()
186 if (fb->func->vpr.scrub_required && in nvkm_fb_init()
187 fb->func->vpr.scrub_required(fb)) { in nvkm_fb_init()
188 ret = nvkm_fb_init_scrub_vpr(fb); in nvkm_fb_init()
199 struct nvkm_fb *fb = nvkm_fb(subdev); in nvkm_fb_dtor() local
202 nvkm_memory_unref(&fb->mmu_wr); in nvkm_fb_dtor()
203 nvkm_memory_unref(&fb->mmu_rd); in nvkm_fb_dtor()
205 for (i = 0; i < fb->tile.regions; i++) in nvkm_fb_dtor()
206 fb->func->tile.fini(fb, i, &fb->tile.region[i]); in nvkm_fb_dtor()
208 nvkm_mm_fini(&fb->tags); in nvkm_fb_dtor()
209 nvkm_ram_del(&fb->ram); in nvkm_fb_dtor()
211 nvkm_blob_dtor(&fb->vpr_scrubber); in nvkm_fb_dtor()
213 if (fb->func->dtor) in nvkm_fb_dtor()
214 return fb->func->dtor(fb); in nvkm_fb_dtor()
215 return fb; in nvkm_fb_dtor()
228 int index, struct nvkm_fb *fb) in nvkm_fb_ctor() argument
230 nvkm_subdev_ctor(&nvkm_fb, device, index, &fb->subdev); in nvkm_fb_ctor()
231 fb->func = func; in nvkm_fb_ctor()
232 fb->tile.regions = fb->func->tile.regions; in nvkm_fb_ctor()
233 fb->page = nvkm_longopt(device->cfgopt, "NvFbBigPage", in nvkm_fb_ctor()
234 fb->func->default_bigpage); in nvkm_fb_ctor()