drm/nouveau/copy: remove nouveau_copy base class

nva3/nvc0 are using falcon, nve0 is now using engine directly.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Ben Skeggs 2012-11-22 12:37:30 +10:00
parent 586ae46d65
commit 3cb0ebddd0
2 changed files with 19 additions and 56 deletions

View File

@ -30,11 +30,11 @@
#include <engine/copy.h>
struct nve0_copy_priv {
struct nouveau_copy base;
struct nouveau_engine base;
};
struct nve0_copy_chan {
struct nouveau_copy_chan base;
struct nouveau_engctx base;
};
/*******************************************************************************
@ -60,7 +60,7 @@ nve0_copy_context_ctor(struct nouveau_object *parent,
struct nve0_copy_chan *priv;
int ret;
ret = nouveau_copy_context_create(parent, engine, oclass, NULL, 256,
ret = nouveau_engctx_create(parent, engine, oclass, NULL, 256,
256, NVOBJ_FLAG_ZERO_ALLOC, &priv);
*pobject = nv_object(priv);
if (ret)
@ -72,11 +72,11 @@ nve0_copy_context_ctor(struct nouveau_object *parent,
static struct nouveau_ofuncs
nve0_copy_context_ofuncs = {
.ctor = nve0_copy_context_ctor,
.dtor = _nouveau_copy_context_dtor,
.init = _nouveau_copy_context_init,
.fini = _nouveau_copy_context_fini,
.rd32 = _nouveau_copy_context_rd32,
.wr32 = _nouveau_copy_context_wr32,
.dtor = _nouveau_engctx_dtor,
.init = _nouveau_engctx_init,
.fini = _nouveau_engctx_fini,
.rd32 = _nouveau_engctx_rd32,
.wr32 = _nouveau_engctx_wr32,
};
static struct nouveau_oclass
@ -100,7 +100,8 @@ nve0_copy0_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
if (nv_rd32(parent, 0x022500) & 0x00000100)
return -ENODEV;
ret = nouveau_copy_create(parent, engine, oclass, true, 0, &priv);
ret = nouveau_engine_create(parent, engine, oclass, true,
"PCE0", "copy0", &priv);
*pobject = nv_object(priv);
if (ret)
return ret;
@ -122,7 +123,8 @@ nve0_copy1_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
if (nv_rd32(parent, 0x022500) & 0x00000200)
return -ENODEV;
ret = nouveau_copy_create(parent, engine, oclass, true, 1, &priv);
ret = nouveau_engine_create(parent, engine, oclass, true,
"PCE1", "copy1", &priv);
*pobject = nv_object(priv);
if (ret)
return ret;
@ -138,9 +140,9 @@ nve0_copy0_oclass = {
.handle = NV_ENGINE(COPY0, 0xe0),
.ofuncs = &(struct nouveau_ofuncs) {
.ctor = nve0_copy0_ctor,
.dtor = _nouveau_copy_dtor,
.init = _nouveau_copy_init,
.fini = _nouveau_copy_fini,
.dtor = _nouveau_engine_dtor,
.init = _nouveau_engine_init,
.fini = _nouveau_engine_fini,
},
};
@ -149,8 +151,8 @@ nve0_copy1_oclass = {
.handle = NV_ENGINE(COPY1, 0xe0),
.ofuncs = &(struct nouveau_ofuncs) {
.ctor = nve0_copy1_ctor,
.dtor = _nouveau_copy_dtor,
.init = _nouveau_copy_init,
.fini = _nouveau_copy_fini,
.dtor = _nouveau_engine_dtor,
.init = _nouveau_engine_init,
.fini = _nouveau_engine_fini,
},
};

View File

@ -1,45 +1,6 @@
#ifndef __NOUVEAU_COPY_H__
#define __NOUVEAU_COPY_H__
#include <core/engine.h>
#include <core/engctx.h>
struct nouveau_copy_chan {
struct nouveau_engctx base;
};
#define nouveau_copy_context_create(p,e,c,g,s,a,f,d) \
nouveau_engctx_create((p), (e), (c), (g), (s), (a), (f), (d))
#define nouveau_copy_context_destroy(d) \
nouveau_engctx_destroy(&(d)->base)
#define nouveau_copy_context_init(d) \
nouveau_engctx_init(&(d)->base)
#define nouveau_copy_context_fini(d,s) \
nouveau_engctx_fini(&(d)->base, (s))
#define _nouveau_copy_context_dtor _nouveau_engctx_dtor
#define _nouveau_copy_context_init _nouveau_engctx_init
#define _nouveau_copy_context_fini _nouveau_engctx_fini
#define _nouveau_copy_context_rd32 _nouveau_engctx_rd32
#define _nouveau_copy_context_wr32 _nouveau_engctx_wr32
struct nouveau_copy {
struct nouveau_engine base;
};
#define nouveau_copy_create(p,e,c,y,i,d) \
nouveau_engine_create((p), (e), (c), (y), "PCE"#i, "copy"#i, (d))
#define nouveau_copy_destroy(d) \
nouveau_engine_destroy(&(d)->base)
#define nouveau_copy_init(d) \
nouveau_engine_init(&(d)->base)
#define nouveau_copy_fini(d,s) \
nouveau_engine_fini(&(d)->base, (s))
#define _nouveau_copy_dtor _nouveau_engine_dtor
#define _nouveau_copy_init _nouveau_engine_init
#define _nouveau_copy_fini _nouveau_engine_fini
extern struct nouveau_oclass nva3_copy_oclass;
extern struct nouveau_oclass nvc0_copy0_oclass;
extern struct nouveau_oclass nvc0_copy1_oclass;