Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / include / nvkm / subdev / ltc.h
diff --git a/kernel/drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h b/kernel/drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h
new file mode 100644 (file)
index 0000000..cd5d29f
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef __NVKM_LTC_H__
+#define __NVKM_LTC_H__
+#include <core/subdev.h>
+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