aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h
blob: cd5d29fc056550664c470f2c0f168974e11256fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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