]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h
Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ac97-mfd', 'asoc/topic...
[mirror_ubuntu-focal-kernel.git] / drivers / gpu / drm / nouveau / nvkm / subdev / fb / ram.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
d36a99d2
BS
2#ifndef __NVKM_FB_RAM_PRIV_H__
3#define __NVKM_FB_RAM_PRIV_H__
4#include "priv.h"
5
6int nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
7 enum nvkm_ram_type, u64 size, u32 tags,
8 struct nvkm_ram *);
9int nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
10 enum nvkm_ram_type, u64 size, u32 tags,
11 struct nvkm_ram **);
12void nvkm_ram_del(struct nvkm_ram **);
13int nvkm_ram_init(struct nvkm_ram *);
14
15extern const struct nvkm_ram_func nv04_ram_func;
16
17int nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
18 struct nvkm_ram *);
19int nv50_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
20void nv50_ram_put(struct nvkm_ram *, struct nvkm_mem **);
21void __nv50_ram_put(struct nvkm_ram *, struct nvkm_mem *);
22
fcb371a1
BS
23int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
24 struct nvkm_ram **);
d36a99d2 25int gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
97e5268d
BS
26 struct nvkm_ram *);
27u32 gf100_ram_probe_fbp(const struct nvkm_ram_func *,
28 struct nvkm_device *, int, int *);
29u32 gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
30 struct nvkm_device *, int, int *);
31u32 gf100_ram_probe_fbpa_amount(struct nvkm_device *, int);
d36a99d2
BS
32int gf100_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
33void gf100_ram_put(struct nvkm_ram *, struct nvkm_mem **);
fcb371a1
BS
34int gf100_ram_init(struct nvkm_ram *);
35int gf100_ram_calc(struct nvkm_ram *, u32);
36int gf100_ram_prog(struct nvkm_ram *);
37void gf100_ram_tidy(struct nvkm_ram *);
d36a99d2 38
97e5268d
BS
39u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
40 struct nvkm_device *, int, int *);
41
fcb371a1 42int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
97e5268d 43 struct nvkm_ram **);
fcb371a1
BS
44void *gk104_ram_dtor(struct nvkm_ram *);
45int gk104_ram_init(struct nvkm_ram *);
46int gk104_ram_calc(struct nvkm_ram *, u32);
47int gk104_ram_prog(struct nvkm_ram *);
48void gk104_ram_tidy(struct nvkm_ram *);
d36a99d2 49
97e5268d
BS
50u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
51 struct nvkm_device *, int, int *);
52
53u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
54 struct nvkm_device *, int, int *);
55
d36a99d2
BS
56/* RAM type-specific MR calculation routines */
57int nvkm_sddr2_calc(struct nvkm_ram *);
58int nvkm_sddr3_calc(struct nvkm_ram *);
59int nvkm_gddr3_calc(struct nvkm_ram *);
60int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
61
62int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
63int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
64int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
65int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
66int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
67int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
68int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
69int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
70int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
71int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
72int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
73int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
74int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
904e703c 75int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
d36a99d2
BS
76int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
77int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
ba4c063d 78int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
7ff51f82 79int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
d36a99d2 80#endif