0001
0002 #ifndef __NVKM_MC_H__
0003 #define __NVKM_MC_H__
0004 #include <core/subdev.h>
0005
0006 struct nvkm_mc {
0007 const struct nvkm_mc_func *func;
0008 struct nvkm_subdev subdev;
0009 };
0010
0011 void nvkm_mc_enable(struct nvkm_device *, enum nvkm_subdev_type, int);
0012 void nvkm_mc_disable(struct nvkm_device *, enum nvkm_subdev_type, int);
0013 bool nvkm_mc_enabled(struct nvkm_device *, enum nvkm_subdev_type, int);
0014 void nvkm_mc_reset(struct nvkm_device *, enum nvkm_subdev_type, int);
0015 void nvkm_mc_intr(struct nvkm_device *, bool *handled);
0016 void nvkm_mc_intr_unarm(struct nvkm_device *);
0017 void nvkm_mc_intr_rearm(struct nvkm_device *);
0018 void nvkm_mc_intr_mask(struct nvkm_device *, enum nvkm_subdev_type, int, bool enable);
0019 void nvkm_mc_unk260(struct nvkm_device *, u32 data);
0020
0021 int nv04_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0022 int nv11_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0023 int nv17_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0024 int nv44_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0025 int nv50_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0026 int g84_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0027 int g98_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0028 int gt215_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0029 int gf100_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0030 int gk104_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0031 int gk20a_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0032 int gp100_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0033 int gp10b_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0034 int tu102_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0035 int ga100_mc_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_mc **);
0036 #endif