These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / subdev / fb / ramfuc.h
index f343682..9ef9d6a 100644 (file)
@@ -1,10 +1,11 @@
 #ifndef __NVKM_FBRAM_FUC_H__
 #define __NVKM_FBRAM_FUC_H__
+#include <subdev/fb.h>
 #include <subdev/pmu.h>
 
 struct ramfuc {
        struct nvkm_memx *memx;
-       struct nvkm_fb *pfb;
+       struct nvkm_fb *fb;
        int sequence;
 };
 
@@ -54,17 +55,14 @@ ramfuc_reg(u32 addr)
 }
 
 static inline int
-ramfuc_init(struct ramfuc *ram, struct nvkm_fb *pfb)
+ramfuc_init(struct ramfuc *ram, struct nvkm_fb *fb)
 {
-       struct nvkm_pmu *pmu = nvkm_pmu(pfb);
-       int ret;
-
-       ret = nvkm_memx_init(pmu, &ram->memx);
+       int ret = nvkm_memx_init(fb->subdev.device->pmu, &ram->memx);
        if (ret)
                return ret;
 
        ram->sequence++;
-       ram->pfb = pfb;
+       ram->fb = fb;
        return 0;
 }
 
@@ -72,9 +70,9 @@ static inline int
 ramfuc_exec(struct ramfuc *ram, bool exec)
 {
        int ret = 0;
-       if (ram->pfb) {
+       if (ram->fb) {
                ret = nvkm_memx_fini(&ram->memx, exec);
-               ram->pfb = NULL;
+               ram->fb = NULL;
        }
        return ret;
 }
@@ -82,8 +80,9 @@ ramfuc_exec(struct ramfuc *ram, bool exec)
 static inline u32
 ramfuc_rd32(struct ramfuc *ram, struct ramfuc_reg *reg)
 {
+       struct nvkm_device *device = ram->fb->subdev.device;
        if (reg->sequence != ram->sequence)
-               reg->data = nv_rd32(ram->pfb, reg->addr);
+               reg->data = nvkm_rd32(device, reg->addr);
        return reg->data;
 }
 
@@ -144,11 +143,9 @@ ramfuc_train(struct ramfuc *ram)
 }
 
 static inline int
-ramfuc_train_result(struct nvkm_fb *pfb, u32 *result, u32 rsize)
+ramfuc_train_result(struct nvkm_fb *fb, u32 *result, u32 rsize)
 {
-       struct nvkm_pmu *pmu = nvkm_pmu(pfb);
-
-       return nvkm_memx_train_result(pmu, result, rsize);
+       return nvkm_memx_train_result(fb->subdev.device->pmu, result, rsize);
 }
 
 static inline void