root/drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: MIT */
   2 #ifndef __NVKM_LTC_H__
   3 #define __NVKM_LTC_H__
   4 #include <core/subdev.h>
   5 #include <core/mm.h>
   6 
   7 #define NVKM_LTC_MAX_ZBC_CNT 16
   8 
   9 struct nvkm_ltc {
  10         const struct nvkm_ltc_func *func;
  11         struct nvkm_subdev subdev;
  12 
  13         u32 ltc_nr;
  14         u32 lts_nr;
  15 
  16         u32 num_tags;
  17         u32 tag_base;
  18         struct nvkm_memory *tag_ram;
  19 
  20         int zbc_min;
  21         int zbc_max;
  22         u32 zbc_color[NVKM_LTC_MAX_ZBC_CNT][4];
  23         u32 zbc_depth[NVKM_LTC_MAX_ZBC_CNT];
  24         u32 zbc_stencil[NVKM_LTC_MAX_ZBC_CNT];
  25 };
  26 
  27 void nvkm_ltc_tags_clear(struct nvkm_device *, u32 first, u32 count);
  28 
  29 int nvkm_ltc_zbc_color_get(struct nvkm_ltc *, int index, const u32[4]);
  30 int nvkm_ltc_zbc_depth_get(struct nvkm_ltc *, int index, const u32);
  31 int nvkm_ltc_zbc_stencil_get(struct nvkm_ltc *, int index, const u32);
  32 
  33 void nvkm_ltc_invalidate(struct nvkm_ltc *);
  34 void nvkm_ltc_flush(struct nvkm_ltc *);
  35 
  36 int gf100_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  37 int gk104_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  38 int gk20a_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  39 int gm107_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  40 int gm200_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  41 int gp100_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  42 int gp102_ltc_new(struct nvkm_device *, int, struct nvkm_ltc **);
  43 #endif

/* [<][>][^][v][top][bottom][index][help] */