linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   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
  23int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  24                   struct nvkm_ram **);
  25int  gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  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);
  32int  gf100_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
  33void gf100_ram_put(struct nvkm_ram *, struct nvkm_mem **);
  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 *);
  38
  39u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  40                               struct nvkm_device *, int, int *);
  41
  42int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  43                   struct nvkm_ram **);
  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 *);
  49
  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
  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 **);
  75int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  76int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  77int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  78int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  79int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  80#endif
  81