These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / subdev / clk / priv.h
diff --git a/kernel/drivers/gpu/drm/nouveau/nvkm/subdev/clk/priv.h b/kernel/drivers/gpu/drm/nouveau/nvkm/subdev/clk/priv.h
new file mode 100644 (file)
index 0000000..51eafc0
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef __NVKM_CLK_PRIV_H__
+#define __NVKM_CLK_PRIV_H__
+#define nvkm_clk(p) container_of((p), struct nvkm_clk, subdev)
+#include <subdev/clk.h>
+
+struct nvkm_clk_func {
+       int (*init)(struct nvkm_clk *);
+       void (*fini)(struct nvkm_clk *);
+       int (*read)(struct nvkm_clk *, enum nv_clk_src);
+       int (*calc)(struct nvkm_clk *, struct nvkm_cstate *);
+       int (*prog)(struct nvkm_clk *);
+       void (*tidy)(struct nvkm_clk *);
+       struct nvkm_pstate *pstates;
+       int nr_pstates;
+       struct nvkm_domain domains[];
+};
+
+int nvkm_clk_ctor(const struct nvkm_clk_func *, struct nvkm_device *, int,
+                 bool allow_reclock, struct nvkm_clk *);
+int nvkm_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, int,
+                 bool allow_reclock, struct nvkm_clk **);
+
+int nv04_clk_pll_calc(struct nvkm_clk *, struct nvbios_pll *, int clk,
+                     struct nvkm_pll_vals *);
+int nv04_clk_pll_prog(struct nvkm_clk *, u32 reg1, struct nvkm_pll_vals *);
+#endif