blob: cd5d29fc056550664c470f2c0f168974e11256fb [file] [log] [blame]
#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