drm/nouveau/fb: remove ram oclass argument from base fb constructor
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
9ca3037e60
commit
8613e7314a
|
@ -22,9 +22,10 @@
|
||||||
* Authors: Ben Skeggs
|
* Authors: Ben Skeggs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "subdev/fb.h"
|
#include <subdev/bios.h>
|
||||||
#include "subdev/bios.h"
|
#include <subdev/bios/bit.h>
|
||||||
#include "subdev/bios/bit.h"
|
|
||||||
|
#include "priv.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
nouveau_fb_bios_memtype(struct nouveau_bios *bios)
|
nouveau_fb_bios_memtype(struct nouveau_bios *bios)
|
||||||
|
@ -106,9 +107,9 @@ _nouveau_fb_dtor(struct nouveau_object *object)
|
||||||
|
|
||||||
int
|
int
|
||||||
nouveau_fb_create_(struct nouveau_object *parent, struct nouveau_object *engine,
|
nouveau_fb_create_(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nouveau_oclass *oclass, struct nouveau_oclass *ramcls,
|
struct nouveau_oclass *oclass, int length, void **pobject)
|
||||||
int length, void **pobject)
|
|
||||||
{
|
{
|
||||||
|
struct nouveau_fb_impl *impl = (void *)oclass;
|
||||||
static const char *name[] = {
|
static const char *name[] = {
|
||||||
[NV_MEM_TYPE_UNKNOWN] = "unknown",
|
[NV_MEM_TYPE_UNKNOWN] = "unknown",
|
||||||
[NV_MEM_TYPE_STOLEN ] = "stolen system memory",
|
[NV_MEM_TYPE_STOLEN ] = "stolen system memory",
|
||||||
|
@ -133,7 +134,7 @@ nouveau_fb_create_(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = nouveau_object_ctor(nv_object(pfb), nv_object(pfb),
|
ret = nouveau_object_ctor(nv_object(pfb), nv_object(pfb),
|
||||||
ramcls, NULL, 0, &ram);
|
impl->ram, NULL, 0, &ram);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
nv_fatal(pfb, "error detecting memory configuration!!\n");
|
nv_fatal(pfb, "error detecting memory configuration!!\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -65,7 +65,7 @@ nv04_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv04_fb_priv *priv;
|
struct nv04_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv04_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -75,12 +75,13 @@ nv04_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv04_fb_oclass = &(struct nouveau_oclass) {
|
nv04_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x04),
|
.base.handle = NV_SUBDEV(FB, 0x04),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv04_fb_ctor,
|
.ctor = nv04_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv04_fb_init,
|
.init = nv04_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv04_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -65,7 +65,7 @@ nv10_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv10_fb_priv *priv;
|
struct nv10_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv10_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -79,12 +79,13 @@ nv10_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv10_fb_oclass = &(struct nouveau_oclass) {
|
nv10_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x10),
|
.base.handle = NV_SUBDEV(FB, 0x10),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv10_fb_ctor,
|
.ctor = nv10_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = _nouveau_fb_init,
|
.init = _nouveau_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv10_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -38,7 +38,7 @@ nv1a_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv1a_fb_priv *priv;
|
struct nv1a_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv1a_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -52,12 +52,13 @@ nv1a_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv1a_fb_oclass = &(struct nouveau_oclass) {
|
nv1a_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x1a),
|
.base.handle = NV_SUBDEV(FB, 0x1a),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv1a_fb_ctor,
|
.ctor = nv1a_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = _nouveau_fb_init,
|
.init = _nouveau_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv10_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -88,7 +88,7 @@ nv20_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv20_fb_priv *priv;
|
struct nv20_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv20_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -103,12 +103,13 @@ nv20_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv20_fb_oclass = &(struct nouveau_oclass) {
|
nv20_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x20),
|
.base.handle = NV_SUBDEV(FB, 0x20),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv20_fb_ctor,
|
.ctor = nv20_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = _nouveau_fb_init,
|
.init = _nouveau_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv20_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -54,7 +54,7 @@ nv25_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv25_fb_priv *priv;
|
struct nv25_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv20_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -69,12 +69,13 @@ nv25_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv25_fb_oclass = &(struct nouveau_oclass) {
|
nv25_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x25),
|
.base.handle = NV_SUBDEV(FB, 0x25),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv25_fb_ctor,
|
.ctor = nv25_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = _nouveau_fb_init,
|
.init = _nouveau_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv20_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -132,7 +132,7 @@ nv30_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv30_fb_priv *priv;
|
struct nv30_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv20_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -147,12 +147,13 @@ nv30_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv30_fb_oclass = &(struct nouveau_oclass) {
|
nv30_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x30),
|
.base.handle = NV_SUBDEV(FB, 0x30),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv30_fb_ctor,
|
.ctor = nv30_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv30_fb_init,
|
.init = nv30_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv20_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -55,7 +55,7 @@ nv35_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv35_fb_priv *priv;
|
struct nv35_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv20_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -70,12 +70,13 @@ nv35_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv35_fb_oclass = &(struct nouveau_oclass) {
|
nv35_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x35),
|
.base.handle = NV_SUBDEV(FB, 0x35),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv35_fb_ctor,
|
.ctor = nv35_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv30_fb_init,
|
.init = nv30_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv20_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -55,7 +55,7 @@ nv36_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv36_fb_priv *priv;
|
struct nv36_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv20_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -70,12 +70,13 @@ nv36_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv36_fb_oclass = &(struct nouveau_oclass) {
|
nv36_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x36),
|
.base.handle = NV_SUBDEV(FB, 0x36),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv36_fb_ctor,
|
.ctor = nv36_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv30_fb_init,
|
.init = nv30_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv20_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -69,7 +69,7 @@ nv40_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv40_fb_priv *priv;
|
struct nv40_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv40_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -85,12 +85,13 @@ nv40_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv40_fb_oclass = &(struct nouveau_oclass) {
|
nv40_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x40),
|
.base.handle = NV_SUBDEV(FB, 0x40),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv40_fb_ctor,
|
.ctor = nv40_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv40_fb_init,
|
.init = nv40_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv40_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -62,7 +62,7 @@ nv41_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv41_fb_priv *priv;
|
struct nv41_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv41_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -78,12 +78,13 @@ nv41_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv41_fb_oclass = &(struct nouveau_oclass) {
|
nv41_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x41),
|
.base.handle = NV_SUBDEV(FB, 0x41),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv41_fb_ctor,
|
.ctor = nv41_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv41_fb_init,
|
.init = nv41_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv41_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -72,7 +72,7 @@ nv44_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv44_fb_priv *priv;
|
struct nv44_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv44_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -87,12 +87,13 @@ nv44_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv44_fb_oclass = &(struct nouveau_oclass) {
|
nv44_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x44),
|
.base.handle = NV_SUBDEV(FB, 0x44),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv44_fb_ctor,
|
.ctor = nv44_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv44_fb_init,
|
.init = nv44_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv44_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -52,7 +52,7 @@ nv46_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv46_fb_priv *priv;
|
struct nv46_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv44_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -67,12 +67,13 @@ nv46_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv46_fb_oclass = &(struct nouveau_oclass) {
|
nv46_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x46),
|
.base.handle = NV_SUBDEV(FB, 0x46),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv46_fb_ctor,
|
.ctor = nv46_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv44_fb_init,
|
.init = nv44_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv44_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -38,7 +38,7 @@ nv47_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv47_fb_priv *priv;
|
struct nv47_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv41_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -54,12 +54,13 @@ nv47_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv47_fb_oclass = &(struct nouveau_oclass) {
|
nv47_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x47),
|
.base.handle = NV_SUBDEV(FB, 0x47),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv47_fb_ctor,
|
.ctor = nv47_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv41_fb_init,
|
.init = nv41_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv41_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -38,7 +38,7 @@ nv49_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv49_fb_priv *priv;
|
struct nv49_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv49_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -54,12 +54,13 @@ nv49_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv49_fb_oclass = &(struct nouveau_oclass) {
|
nv49_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x49),
|
.base.handle = NV_SUBDEV(FB, 0x49),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv49_fb_ctor,
|
.ctor = nv49_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv41_fb_init,
|
.init = nv41_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv49_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -38,7 +38,7 @@ nv4e_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv4e_fb_priv *priv;
|
struct nv4e_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv4e_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -52,12 +52,13 @@ nv4e_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv4e_fb_oclass = &(struct nouveau_oclass) {
|
nv4e_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0x4e),
|
.base.handle = NV_SUBDEV(FB, 0x4e),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv4e_fb_ctor,
|
.ctor = nv4e_fb_ctor,
|
||||||
.dtor = _nouveau_fb_dtor,
|
.dtor = _nouveau_fb_dtor,
|
||||||
.init = nv44_fb_init,
|
.init = nv44_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nv4e_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -243,7 +243,7 @@ nv50_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nv50_fb_priv *priv;
|
struct nv50_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nv50_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -304,12 +304,13 @@ nv50_fb_init(struct nouveau_object *object)
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv50_fb_oclass = &(struct nv50_fb_impl) {
|
nv50_fb_oclass = &(struct nv50_fb_impl) {
|
||||||
.base.handle = NV_SUBDEV(FB, 0x50),
|
.base.base.handle = NV_SUBDEV(FB, 0x50),
|
||||||
.base.ofuncs = &(struct nouveau_ofuncs) {
|
.base.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv50_fb_ctor,
|
.ctor = nv50_fb_ctor,
|
||||||
.dtor = nv50_fb_dtor,
|
.dtor = nv50_fb_dtor,
|
||||||
.init = nv50_fb_init,
|
.init = nv50_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
|
.base.ram = &nv50_ram_oclass,
|
||||||
.trap = 0x000707ff,
|
.trap = 0x000707ff,
|
||||||
}.base;
|
}.base.base;
|
||||||
|
|
|
@ -16,7 +16,7 @@ void nv50_fb_dtor(struct nouveau_object *);
|
||||||
int nv50_fb_init(struct nouveau_object *);
|
int nv50_fb_init(struct nouveau_object *);
|
||||||
|
|
||||||
struct nv50_fb_impl {
|
struct nv50_fb_impl {
|
||||||
struct nouveau_oclass base;
|
struct nouveau_fb_impl base;
|
||||||
u32 trap;
|
u32 trap;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nv84_fb_oclass = &(struct nv50_fb_impl) {
|
nv84_fb_oclass = &(struct nv50_fb_impl) {
|
||||||
.base.handle = NV_SUBDEV(FB, 0x84),
|
.base.base.handle = NV_SUBDEV(FB, 0x84),
|
||||||
.base.ofuncs = &(struct nouveau_ofuncs) {
|
.base.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv50_fb_ctor,
|
.ctor = nv50_fb_ctor,
|
||||||
.dtor = nv50_fb_dtor,
|
.dtor = nv50_fb_dtor,
|
||||||
.init = nv50_fb_init,
|
.init = nv50_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
|
.base.ram = &nv50_ram_oclass,
|
||||||
.trap = 0x001d07ff,
|
.trap = 0x001d07ff,
|
||||||
}.base;
|
}.base.base;
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nva3_fb_oclass = &(struct nv50_fb_impl) {
|
nva3_fb_oclass = &(struct nv50_fb_impl) {
|
||||||
.base.handle = NV_SUBDEV(FB, 0xa3),
|
.base.base.handle = NV_SUBDEV(FB, 0xa3),
|
||||||
.base.ofuncs = &(struct nouveau_ofuncs) {
|
.base.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv50_fb_ctor,
|
.ctor = nv50_fb_ctor,
|
||||||
.dtor = nv50_fb_dtor,
|
.dtor = nv50_fb_dtor,
|
||||||
.init = nv50_fb_init,
|
.init = nv50_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
|
.base.ram = &nv50_ram_oclass,
|
||||||
.trap = 0x000d0fff,
|
.trap = 0x000d0fff,
|
||||||
}.base;
|
}.base.base;
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nvaa_fb_oclass = &(struct nv50_fb_impl) {
|
nvaa_fb_oclass = &(struct nv50_fb_impl) {
|
||||||
.base.handle = NV_SUBDEV(FB, 0xaa),
|
.base.base.handle = NV_SUBDEV(FB, 0xaa),
|
||||||
.base.ofuncs = &(struct nouveau_ofuncs) {
|
.base.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv50_fb_ctor,
|
.ctor = nv50_fb_ctor,
|
||||||
.dtor = nv50_fb_dtor,
|
.dtor = nv50_fb_dtor,
|
||||||
.init = nv50_fb_init,
|
.init = nv50_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
|
.base.ram = &nv50_ram_oclass,
|
||||||
.trap = 0x001d07ff,
|
.trap = 0x001d07ff,
|
||||||
}.base;
|
}.base.base;
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nvaf_fb_oclass = &(struct nv50_fb_impl) {
|
nvaf_fb_oclass = &(struct nv50_fb_impl) {
|
||||||
.base.handle = NV_SUBDEV(FB, 0xaf),
|
.base.base.handle = NV_SUBDEV(FB, 0xaf),
|
||||||
.base.ofuncs = &(struct nouveau_ofuncs) {
|
.base.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nv50_fb_ctor,
|
.ctor = nv50_fb_ctor,
|
||||||
.dtor = nv50_fb_dtor,
|
.dtor = nv50_fb_dtor,
|
||||||
.init = nv50_fb_init,
|
.init = nv50_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
|
.base.ram = &nv50_ram_oclass,
|
||||||
.trap = 0x089d1fff,
|
.trap = 0x089d1fff,
|
||||||
}.base;
|
}.base.base;
|
||||||
|
|
|
@ -78,7 +78,7 @@ nvc0_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
struct nvc0_fb_priv *priv;
|
struct nvc0_fb_priv *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nouveau_fb_create(parent, engine, oclass, &nvc0_ram_oclass, &priv);
|
ret = nouveau_fb_create(parent, engine, oclass, &priv);
|
||||||
*pobject = nv_object(priv);
|
*pobject = nv_object(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -99,12 +99,13 @@ nvc0_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
||||||
|
|
||||||
|
|
||||||
struct nouveau_oclass *
|
struct nouveau_oclass *
|
||||||
nvc0_fb_oclass = &(struct nouveau_oclass) {
|
nvc0_fb_oclass = &(struct nouveau_fb_impl) {
|
||||||
.handle = NV_SUBDEV(FB, 0xc0),
|
.base.handle = NV_SUBDEV(FB, 0xc0),
|
||||||
.ofuncs = &(struct nouveau_ofuncs) {
|
.base.ofuncs = &(struct nouveau_ofuncs) {
|
||||||
.ctor = nvc0_fb_ctor,
|
.ctor = nvc0_fb_ctor,
|
||||||
.dtor = nvc0_fb_dtor,
|
.dtor = nvc0_fb_dtor,
|
||||||
.init = nvc0_fb_init,
|
.init = nvc0_fb_init,
|
||||||
.fini = _nouveau_fb_fini,
|
.fini = _nouveau_fb_fini,
|
||||||
},
|
},
|
||||||
};
|
.ram = &nvc0_ram_oclass,
|
||||||
|
}.base;
|
||||||
|
|
|
@ -26,10 +26,12 @@ extern struct nouveau_oclass nv44_ram_oclass;
|
||||||
extern struct nouveau_oclass nv49_ram_oclass;
|
extern struct nouveau_oclass nv49_ram_oclass;
|
||||||
extern struct nouveau_oclass nv4e_ram_oclass;
|
extern struct nouveau_oclass nv4e_ram_oclass;
|
||||||
extern struct nouveau_oclass nv50_ram_oclass;
|
extern struct nouveau_oclass nv50_ram_oclass;
|
||||||
|
extern struct nouveau_oclass nva3_ram_oclass;
|
||||||
|
extern struct nouveau_oclass nvaa_ram_oclass;
|
||||||
extern struct nouveau_oclass nvc0_ram_oclass;
|
extern struct nouveau_oclass nvc0_ram_oclass;
|
||||||
|
|
||||||
#define nouveau_fb_create(p,e,c,r,d) \
|
#define nouveau_fb_create(p,e,c,d) \
|
||||||
nouveau_fb_create_((p), (e), (c), (r), sizeof(**d), (void **)d)
|
nouveau_fb_create_((p), (e), (c), sizeof(**d), (void **)d)
|
||||||
#define nouveau_fb_destroy(p) ({ \
|
#define nouveau_fb_destroy(p) ({ \
|
||||||
struct nouveau_fb *pfb = (p); \
|
struct nouveau_fb *pfb = (p); \
|
||||||
_nouveau_fb_dtor(nv_object(pfb)); \
|
_nouveau_fb_dtor(nv_object(pfb)); \
|
||||||
|
@ -44,12 +46,16 @@ extern struct nouveau_oclass nvc0_ram_oclass;
|
||||||
})
|
})
|
||||||
|
|
||||||
int nouveau_fb_create_(struct nouveau_object *, struct nouveau_object *,
|
int nouveau_fb_create_(struct nouveau_object *, struct nouveau_object *,
|
||||||
struct nouveau_oclass *, struct nouveau_oclass *,
|
struct nouveau_oclass *, int, void **);
|
||||||
int length, void **pobject);
|
|
||||||
void _nouveau_fb_dtor(struct nouveau_object *);
|
void _nouveau_fb_dtor(struct nouveau_object *);
|
||||||
int _nouveau_fb_init(struct nouveau_object *);
|
int _nouveau_fb_init(struct nouveau_object *);
|
||||||
int _nouveau_fb_fini(struct nouveau_object *, bool);
|
int _nouveau_fb_fini(struct nouveau_object *, bool);
|
||||||
|
|
||||||
|
struct nouveau_fb_impl {
|
||||||
|
struct nouveau_oclass base;
|
||||||
|
struct nouveau_oclass *ram;
|
||||||
|
};
|
||||||
|
|
||||||
struct nouveau_bios;
|
struct nouveau_bios;
|
||||||
int nouveau_fb_bios_memtype(struct nouveau_bios *);
|
int nouveau_fb_bios_memtype(struct nouveau_bios *);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue