mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 01:56:47 +07:00
drm/nouveau/fb/ram/gt215: allocate training buffer with nvkm_ram_get()
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
e9a8b21804
commit
2bfa0b0114
@ -26,6 +26,7 @@
|
||||
#include "ram.h"
|
||||
#include "ramfuc.h"
|
||||
|
||||
#include <core/memory.h>
|
||||
#include <core/option.h>
|
||||
#include <subdev/bios.h>
|
||||
#include <subdev/bios/M0205.h>
|
||||
@ -86,7 +87,7 @@ struct gt215_ltrain {
|
||||
u32 r_100720;
|
||||
u32 r_1111e0;
|
||||
u32 r_111400;
|
||||
struct nvkm_mem *mem;
|
||||
struct nvkm_memory *memory;
|
||||
};
|
||||
|
||||
struct gt215_ram {
|
||||
@ -279,10 +280,10 @@ gt215_link_train_init(struct gt215_ram *ram)
|
||||
struct gt215_ltrain *train = &ram->ltrain;
|
||||
struct nvkm_device *device = ram->base.fb->subdev.device;
|
||||
struct nvkm_bios *bios = device->bios;
|
||||
struct nvkm_mem *mem;
|
||||
struct nvbios_M0205E M0205E;
|
||||
u8 ver, hdr, cnt, len;
|
||||
u32 r001700;
|
||||
u64 addr;
|
||||
int ret, i = 0;
|
||||
|
||||
train->state = NVA3_TRAIN_UNSUPPORTED;
|
||||
@ -297,14 +298,14 @@ gt215_link_train_init(struct gt215_ram *ram)
|
||||
|
||||
train->state = NVA3_TRAIN_ONCE;
|
||||
|
||||
ret = ram->base.func->get(&ram->base, 0x8000, 0x10000, 0, 0x800,
|
||||
&ram->ltrain.mem);
|
||||
ret = nvkm_ram_get(device, NVKM_RAM_MM_NORMAL, 0x01, 16, 0x8000,
|
||||
true, true, &ram->ltrain.memory);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mem = ram->ltrain.mem;
|
||||
addr = nvkm_memory_addr(ram->ltrain.memory);
|
||||
|
||||
nvkm_wr32(device, 0x100538, 0x10000000 | (mem->offset >> 16));
|
||||
nvkm_wr32(device, 0x100538, 0x10000000 | (addr >> 16));
|
||||
nvkm_wr32(device, 0x1005a8, 0x0000ffff);
|
||||
nvkm_mask(device, 0x10f800, 0x00000001, 0x00000001);
|
||||
|
||||
@ -320,7 +321,7 @@ gt215_link_train_init(struct gt215_ram *ram)
|
||||
|
||||
/* And upload the pattern */
|
||||
r001700 = nvkm_rd32(device, 0x1700);
|
||||
nvkm_wr32(device, 0x1700, mem->offset >> 16);
|
||||
nvkm_wr32(device, 0x1700, addr >> 16);
|
||||
for (i = 0; i < 16; i++)
|
||||
nvkm_wr32(device, 0x700000 + (i << 2), pattern[i]);
|
||||
for (i = 0; i < 16; i++)
|
||||
@ -336,8 +337,7 @@ gt215_link_train_init(struct gt215_ram *ram)
|
||||
static void
|
||||
gt215_link_train_fini(struct gt215_ram *ram)
|
||||
{
|
||||
if (ram->ltrain.mem)
|
||||
ram->base.func->put(&ram->base, &ram->ltrain.mem);
|
||||
nvkm_memory_unref(&ram->ltrain.memory);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user