#ifndef __NVKM_LTC_H__ #define __NVKM_LTC_H__ #include struct nvkm_mm_node; #define NVKM_LTC_MAX_ZBC_CNT 16 struct nvkm_ltc { struct nvkm_subdev base; int (*tags_alloc)(struct nvkm_ltc *, u32 count, struct nvkm_mm_node **); void (*tags_free)(struct nvkm_ltc *, struct nvkm_mm_node **); void (*tags_clear)(struct nvkm_ltc *, u32 first, u32 count); int zbc_min; int zbc_max; int (*zbc_color_get)(struct nvkm_ltc *, int index, const u32[4]); int (*zbc_depth_get)(struct nvkm_ltc *, int index, const u32); }; static inline struct nvkm_ltc * nvkm_ltc(void *obj) { return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_LTC); } extern struct nvkm_oclass *gf100_ltc_oclass; extern struct nvkm_oclass *gk104_ltc_oclass; extern struct nvkm_oclass *gm107_ltc_oclass; #endif