Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 #ifndef __NVKM_FB_RAM_PRIV_H__
0003 #define __NVKM_FB_RAM_PRIV_H__
0004 #include "priv.h"
0005 
0006 int  nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
0007            enum nvkm_ram_type, u64 size, struct nvkm_ram *);
0008 int  nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
0009            enum nvkm_ram_type, u64 size, struct nvkm_ram **);
0010 void nvkm_ram_del(struct nvkm_ram **);
0011 int  nvkm_ram_init(struct nvkm_ram *);
0012 
0013 extern const struct nvkm_ram_func nv04_ram_func;
0014 
0015 int  nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
0016            struct nvkm_ram *);
0017 
0018 int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
0019            struct nvkm_ram **);
0020 int  gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
0021             struct nvkm_ram *);
0022 u32  gf100_ram_probe_fbp(const struct nvkm_ram_func *,
0023              struct nvkm_device *, int, int *);
0024 u32  gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
0025                 struct nvkm_device *, int, int *);
0026 u32  gf100_ram_probe_fbpa_amount(struct nvkm_device *, int);
0027 int gf100_ram_init(struct nvkm_ram *);
0028 int gf100_ram_calc(struct nvkm_ram *, u32);
0029 int gf100_ram_prog(struct nvkm_ram *);
0030 void gf100_ram_tidy(struct nvkm_ram *);
0031 
0032 u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
0033                    struct nvkm_device *, int, int *);
0034 
0035 int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
0036            struct nvkm_ram **);
0037 void *gk104_ram_dtor(struct nvkm_ram *);
0038 int gk104_ram_init(struct nvkm_ram *);
0039 int gk104_ram_calc(struct nvkm_ram *, u32);
0040 int gk104_ram_prog(struct nvkm_ram *);
0041 void gk104_ram_tidy(struct nvkm_ram *);
0042 
0043 u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
0044             struct nvkm_device *, int, int *);
0045 
0046 u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
0047                    struct nvkm_device *, int, int *);
0048 
0049 /* RAM type-specific MR calculation routines */
0050 int nvkm_sddr2_calc(struct nvkm_ram *);
0051 int nvkm_sddr3_calc(struct nvkm_ram *);
0052 int nvkm_gddr3_calc(struct nvkm_ram *);
0053 int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
0054 
0055 int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0056 int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0057 int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0058 int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0059 int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0060 int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0061 int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0062 int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0063 int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0064 int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0065 int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0066 int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0067 int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0068 int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0069 int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0070 int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0071 int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0072 int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0073 int ga102_ram_new(struct nvkm_fb *, struct nvkm_ram **);
0074 #endif