Home | History | Annotate | Line # | Download | only in fb
      1 /*	$NetBSD: ram.h,v 1.3 2021/12/18 23:45:39 riastradh Exp $	*/
      2 
      3 /* SPDX-License-Identifier: MIT */
      4 #ifndef __NVKM_FB_RAM_PRIV_H__
      5 #define __NVKM_FB_RAM_PRIV_H__
      6 #include "priv.h"
      7 
      8 int  nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
      9 		   enum nvkm_ram_type, u64 size, struct nvkm_ram *);
     10 int  nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
     11 		   enum nvkm_ram_type, u64 size, struct nvkm_ram **);
     12 void nvkm_ram_del(struct nvkm_ram **);
     13 int  nvkm_ram_init(struct nvkm_ram *);
     14 
     15 extern const struct nvkm_ram_func nv04_ram_func;
     16 
     17 int  nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
     18 		   struct nvkm_ram *);
     19 
     20 int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
     21 		   struct nvkm_ram **);
     22 int  gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
     23 		    struct nvkm_ram *);
     24 u32  gf100_ram_probe_fbp(const struct nvkm_ram_func *,
     25 			 struct nvkm_device *, int, int *);
     26 u32  gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
     27 				struct nvkm_device *, int, int *);
     28 u32  gf100_ram_probe_fbpa_amount(struct nvkm_device *, int);
     29 int gf100_ram_init(struct nvkm_ram *);
     30 int gf100_ram_calc(struct nvkm_ram *, u32);
     31 int gf100_ram_prog(struct nvkm_ram *);
     32 void gf100_ram_tidy(struct nvkm_ram *);
     33 
     34 u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
     35 			       struct nvkm_device *, int, int *);
     36 
     37 int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
     38 		   struct nvkm_ram **);
     39 void *gk104_ram_dtor(struct nvkm_ram *);
     40 int gk104_ram_init(struct nvkm_ram *);
     41 int gk104_ram_calc(struct nvkm_ram *, u32);
     42 int gk104_ram_prog(struct nvkm_ram *);
     43 void gk104_ram_tidy(struct nvkm_ram *);
     44 
     45 u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
     46 			struct nvkm_device *, int, int *);
     47 
     48 u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
     49 			       struct nvkm_device *, int, int *);
     50 
     51 /* RAM type-specific MR calculation routines */
     52 int nvkm_sddr2_calc(struct nvkm_ram *);
     53 int nvkm_sddr3_calc(struct nvkm_ram *);
     54 int nvkm_gddr3_calc(struct nvkm_ram *);
     55 int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
     56 
     57 int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     58 int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     59 int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     60 int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     61 int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     62 int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     63 int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     64 int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     65 int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     66 int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     67 int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     68 int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     69 int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     70 int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     71 int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     72 int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     73 int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     74 int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
     75 #endif
     76