OSDN Git Service

drm/nouveau/xtensa: convert user classes to new-style nvkm_object
[uclinux-h8/linux.git] / drivers / gpu / drm / nouveau / nvkm / engine / vp / g84.c
index 45f4e18..0035498 100644 (file)
  * Authors: Ben Skeggs, Ilia Mirkin
  */
 #include <engine/vp.h>
-#include <engine/xtensa.h>
 
-#include <core/engctx.h>
+#include <nvif/class.h>
 
-/*******************************************************************************
- * VP object classes
- ******************************************************************************/
-
-static struct nvkm_oclass
-g84_vp_sclass[] = {
-       { 0x7476, &nvkm_object_ofuncs },
-       {},
+static const struct nvkm_xtensa_func
+g84_vp_func = {
+       .sclass = {
+               { -1, -1, NV74_VP2 },
+               {}
+       }
 };
 
-/*******************************************************************************
- * PVP context
- ******************************************************************************/
-
-static struct nvkm_oclass
-g84_vp_cclass = {
-       .handle = NV_ENGCTX(VP, 0x84),
-       .ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_xtensa_engctx_ctor,
-               .dtor = _nvkm_engctx_dtor,
-               .init = _nvkm_engctx_init,
-               .fini = _nvkm_engctx_fini,
-               .rd32 = _nvkm_engctx_rd32,
-               .wr32 = _nvkm_engctx_wr32,
-       },
-};
-
-/*******************************************************************************
- * PVP engine/subdev functions
- ******************************************************************************/
-
 static int
 g84_vp_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
            struct nvkm_oclass *oclass, void *data, u32 size,
            struct nvkm_object **pobject)
 {
-       struct nvkm_xtensa *priv;
+       struct nvkm_xtensa *vp;
        int ret;
 
        ret = nvkm_xtensa_create(parent, engine, oclass, 0xf000, true,
-                                "PVP", "vp", &priv);
-       *pobject = nv_object(priv);
+                                "PVP", "vp", &vp);
+       *pobject = nv_object(vp);
        if (ret)
                return ret;
 
-       nv_subdev(priv)->unit = 0x01020000;
-       nv_engine(priv)->cclass = &g84_vp_cclass;
-       nv_engine(priv)->sclass = g84_vp_sclass;
-       priv->fifo_val = 0x111;
-       priv->unkd28 = 0x9c544;
+       vp->func = &g84_vp_func;
+       nv_subdev(vp)->unit = 0x01020000;
+       vp->fifo_val = 0x111;
+       vp->unkd28 = 0x9c544;
        return 0;
 }
 
@@ -87,7 +62,5 @@ g84_vp_oclass = {
                .dtor = _nvkm_xtensa_dtor,
                .init = _nvkm_xtensa_init,
                .fini = _nvkm_xtensa_fini,
-               .rd32 = _nvkm_xtensa_rd32,
-               .wr32 = _nvkm_xtensa_wr32,
        },
 };