1#ifndef __NVKM_LTC_PRIV_H__
2#define __NVKM_LTC_PRIV_H__
3#define nvkm_ltc(p) container_of((p), struct nvkm_ltc, subdev)
4#include <subdev/ltc.h>
5
6int nvkm_ltc_new_(const struct nvkm_ltc_func *, struct nvkm_device *,
7		  int index, struct nvkm_ltc **);
8
9struct nvkm_ltc_func {
10	int  (*oneinit)(struct nvkm_ltc *);
11	void (*init)(struct nvkm_ltc *);
12	void (*intr)(struct nvkm_ltc *);
13
14	void (*cbc_clear)(struct nvkm_ltc *, u32 start, u32 limit);
15	void (*cbc_wait)(struct nvkm_ltc *);
16
17	int zbc;
18	void (*zbc_clear_color)(struct nvkm_ltc *, int, const u32[4]);
19	void (*zbc_clear_depth)(struct nvkm_ltc *, int, const u32);
20
21	void (*invalidate)(struct nvkm_ltc *);
22	void (*flush)(struct nvkm_ltc *);
23};
24
25int gf100_ltc_oneinit(struct nvkm_ltc *);
26int gf100_ltc_oneinit_tag_ram(struct nvkm_ltc *);
27void gf100_ltc_intr(struct nvkm_ltc *);
28void gf100_ltc_cbc_clear(struct nvkm_ltc *, u32, u32);
29void gf100_ltc_cbc_wait(struct nvkm_ltc *);
30void gf100_ltc_zbc_clear_color(struct nvkm_ltc *, int, const u32[4]);
31void gf100_ltc_zbc_clear_depth(struct nvkm_ltc *, int, const u32);
32void gf100_ltc_invalidate(struct nvkm_ltc *);
33void gf100_ltc_flush(struct nvkm_ltc *);
34#endif
35