1 #ifndef __NOUVEAU_LTC_H__
2 #define __NOUVEAU_LTC_H__
4 #include <core/subdev.h>
5 #include <core/device.h>
7 #define NOUVEAU_LTC_MAX_ZBC_CNT 16
9 struct nouveau_mm_node;
12 struct nouveau_subdev base;
14 int (*tags_alloc)(struct nouveau_ltc *, u32 count,
15 struct nouveau_mm_node **);
16 void (*tags_free)(struct nouveau_ltc *, struct nouveau_mm_node **);
17 void (*tags_clear)(struct nouveau_ltc *, u32 first, u32 count);
21 int (*zbc_color_get)(struct nouveau_ltc *, int index, const u32[4]);
22 int (*zbc_depth_get)(struct nouveau_ltc *, int index, const u32);
25 static inline struct nouveau_ltc *
26 nouveau_ltc(void *obj)
28 return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_LTC];
31 extern struct nouveau_oclass *gf100_ltc_oclass;
32 extern struct nouveau_oclass *gk104_ltc_oclass;
33 extern struct nouveau_oclass *gm107_ltc_oclass;