32 lines · c
1// SPDX-License-Identifier: MIT2#include "ram.h"3 4#include <subdev/bios.h>5 6static const struct nvkm_ram_func7gp102_ram = {8 .init = gp100_ram_init,9};10 11int12gp102_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)13{14 enum nvkm_ram_type type = nvkm_fb_bios_memtype(fb->subdev.device->bios);15 const u32 rsvd_head = ( 256 * 1024); /* vga memory */16 const u32 rsvd_tail = (1024 * 1024); /* vbios etc */17 u64 size = fb->func->vidmem.size(fb);18 int ret;19 20 ret = nvkm_ram_new_(&gp102_ram, fb, type, size, pram);21 if (ret)22 return ret;23 24 nvkm_mm_fini(&(*pram)->vram);25 26 return nvkm_mm_init(&(*pram)->vram, NVKM_RAM_MM_NORMAL,27 rsvd_head >> NVKM_RAM_MM_SHIFT,28 (size - rsvd_head - rsvd_tail) >> NVKM_RAM_MM_SHIFT,29 1);30 31}32