1#ifndef __NVKM_LTC_H__ 2#define __NVKM_LTC_H__ 3#include <core/subdev.h> 4struct nvkm_mm_node; 5 6#define NVKM_LTC_MAX_ZBC_CNT 16 7 8struct nvkm_ltc { 9 struct nvkm_subdev base; 10 11 int (*tags_alloc)(struct nvkm_ltc *, u32 count, 12 struct nvkm_mm_node **); 13 void (*tags_free)(struct nvkm_ltc *, struct nvkm_mm_node **); 14 void (*tags_clear)(struct nvkm_ltc *, u32 first, u32 count); 15 16 int zbc_min; 17 int zbc_max; 18 int (*zbc_color_get)(struct nvkm_ltc *, int index, const u32[4]); 19 int (*zbc_depth_get)(struct nvkm_ltc *, int index, const u32); 20}; 21 22static inline struct nvkm_ltc * 23nvkm_ltc(void *obj) 24{ 25 return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_LTC); 26} 27 28extern struct nvkm_oclass *gf100_ltc_oclass; 29extern struct nvkm_oclass *gk104_ltc_oclass; 30extern struct nvkm_oclass *gm107_ltc_oclass; 31#endif 32