linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: MIT */
   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, struct nvkm_ram *);
   8int  nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
   9                   enum nvkm_ram_type, u64 size, struct nvkm_ram **);
  10void nvkm_ram_del(struct nvkm_ram **);
  11int  nvkm_ram_init(struct nvkm_ram *);
  12
  13extern const struct nvkm_ram_func nv04_ram_func;
  14
  15int  nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  16                   struct nvkm_ram *);
  17
  18int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  19                   struct nvkm_ram **);
  20int  gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  21                    struct nvkm_ram *);
  22u32  gf100_ram_probe_fbp(const struct nvkm_ram_func *,
  23                         struct nvkm_device *, int, int *);
  24u32  gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  25                                struct nvkm_device *, int, int *);
  26u32  gf100_ram_probe_fbpa_amount(struct nvkm_device *, int);
  27int gf100_ram_init(struct nvkm_ram *);
  28int gf100_ram_calc(struct nvkm_ram *, u32);
  29int gf100_ram_prog(struct nvkm_ram *);
  30void gf100_ram_tidy(struct nvkm_ram *);
  31
  32u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  33                               struct nvkm_device *, int, int *);
  34
  35int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  36                   struct nvkm_ram **);
  37void *gk104_ram_dtor(struct nvkm_ram *);
  38int gk104_ram_init(struct nvkm_ram *);
  39int gk104_ram_calc(struct nvkm_ram *, u32);
  40int gk104_ram_prog(struct nvkm_ram *);
  41void gk104_ram_tidy(struct nvkm_ram *);
  42
  43u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
  44                        struct nvkm_device *, int, int *);
  45
  46u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  47                               struct nvkm_device *, int, int *);
  48
  49/* RAM type-specific MR calculation routines */
  50int nvkm_sddr2_calc(struct nvkm_ram *);
  51int nvkm_sddr3_calc(struct nvkm_ram *);
  52int nvkm_gddr3_calc(struct nvkm_ram *);
  53int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
  54
  55int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  56int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  57int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  58int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  59int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  60int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  61int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  62int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  63int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  64int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  65int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  66int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  67int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  68int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  69int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  70int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  71int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  72int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  73int ga102_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  74#endif
  75