brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 6429404 Raw
49 lines · c
1/* SPDX-License-Identifier: MIT */2#ifndef __NVKM_LTC_H__3#define __NVKM_LTC_H__4#include <core/subdev.h>5#include <core/mm.h>6 7#define NVKM_LTC_MAX_ZBC_COLOR_CNT 328#define NVKM_LTC_MAX_ZBC_DEPTH_CNT 169 10struct nvkm_ltc {11	const struct nvkm_ltc_func *func;12	struct nvkm_subdev subdev;13 14	u32 ltc_nr;15	u32 lts_nr;16 17	struct mutex mutex; /* serialises CBC operations */18	u32 num_tags;19	u32 tag_base;20	struct nvkm_memory *tag_ram;21 22	int zbc_color_min;23	int zbc_color_max;24	u32 zbc_color[NVKM_LTC_MAX_ZBC_COLOR_CNT][4];25	int zbc_depth_min;26	int zbc_depth_max;27	u32 zbc_depth[NVKM_LTC_MAX_ZBC_DEPTH_CNT];28	u32 zbc_stencil[NVKM_LTC_MAX_ZBC_DEPTH_CNT];29};30 31void nvkm_ltc_tags_clear(struct nvkm_device *, u32 first, u32 count);32 33int nvkm_ltc_zbc_color_get(struct nvkm_ltc *, int index, const u32[4]);34int nvkm_ltc_zbc_depth_get(struct nvkm_ltc *, int index, const u32);35int nvkm_ltc_zbc_stencil_get(struct nvkm_ltc *, int index, const u32);36 37void nvkm_ltc_invalidate(struct nvkm_ltc *);38void nvkm_ltc_flush(struct nvkm_ltc *);39 40int gf100_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);41int gk104_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);42int gm107_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);43int gm200_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);44int gp100_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);45int gp102_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);46int gp10b_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);47int ga102_ltc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_ltc **);48#endif49