Merge branch 'linux-4.1' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes
Regression fix for Fermi acceleration, and fixes important to bringing up display-less Maxwell boards. * 'linux-4.1' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/gr/gm204: remove a stray printk drm/nouveau/devinit/gm100-: force devinit table execution on boards without PDISP drm/nouveau/devinit/gf100: make the force-post condition more obvious drm/nouveau/gr/gf100-: fix wrong constant definition
This commit is contained in:
commit
1fe7142063
6 changed files with 11 additions and 6 deletions
|
@ -14,7 +14,7 @@
|
|||
|
||||
#define FERMI_TWOD_A 0x0000902d
|
||||
|
||||
#define FERMI_MEMORY_TO_MEMORY_FORMAT_A 0x0000903d
|
||||
#define FERMI_MEMORY_TO_MEMORY_FORMAT_A 0x00009039
|
||||
|
||||
#define KEPLER_INLINE_TO_MEMORY_A 0x0000a040
|
||||
#define KEPLER_INLINE_TO_MEMORY_B 0x0000a140
|
||||
|
|
|
@ -329,7 +329,6 @@ gm204_gr_init(struct nvkm_object *object)
|
|||
nv_mask(priv, 0x419cc0, 0x00000008, 0x00000008);
|
||||
|
||||
for (gpc = 0; gpc < priv->gpc_nr; gpc++) {
|
||||
printk(KERN_ERR "ppc %d %d\n", gpc, priv->ppc_nr[gpc]);
|
||||
for (ppc = 0; ppc < priv->ppc_nr[gpc]; ppc++)
|
||||
nv_wr32(priv, PPC_UNIT(gpc, ppc, 0x038), 0xc0000000);
|
||||
nv_wr32(priv, GPC_UNIT(gpc, 0x0420), 0xc0000000);
|
||||
|
|
|
@ -90,12 +90,14 @@ gf100_devinit_disable(struct nvkm_devinit *devinit)
|
|||
return disable;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
gf100_devinit_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
|
||||
struct nvkm_oclass *oclass, void *data, u32 size,
|
||||
struct nvkm_object **pobject)
|
||||
{
|
||||
struct nvkm_devinit_impl *impl = (void *)oclass;
|
||||
struct nv50_devinit_priv *priv;
|
||||
u64 disable;
|
||||
int ret;
|
||||
|
||||
ret = nvkm_devinit_create(parent, engine, oclass, &priv);
|
||||
|
@ -103,7 +105,8 @@ gf100_devinit_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (nv_rd32(priv, 0x022500) & 0x00000001)
|
||||
disable = impl->disable(&priv->base);
|
||||
if (disable & (1ULL << NVDEV_ENGINE_DISP))
|
||||
priv->base.post = true;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -48,7 +48,7 @@ struct nvkm_oclass *
|
|||
gm107_devinit_oclass = &(struct nvkm_devinit_impl) {
|
||||
.base.handle = NV_SUBDEV(DEVINIT, 0x07),
|
||||
.base.ofuncs = &(struct nvkm_ofuncs) {
|
||||
.ctor = nv50_devinit_ctor,
|
||||
.ctor = gf100_devinit_ctor,
|
||||
.dtor = _nvkm_devinit_dtor,
|
||||
.init = nv50_devinit_init,
|
||||
.fini = _nvkm_devinit_fini,
|
||||
|
|
|
@ -161,7 +161,7 @@ struct nvkm_oclass *
|
|||
gm204_devinit_oclass = &(struct nvkm_devinit_impl) {
|
||||
.base.handle = NV_SUBDEV(DEVINIT, 0x07),
|
||||
.base.ofuncs = &(struct nvkm_ofuncs) {
|
||||
.ctor = nv50_devinit_ctor,
|
||||
.ctor = gf100_devinit_ctor,
|
||||
.dtor = _nvkm_devinit_dtor,
|
||||
.init = nv50_devinit_init,
|
||||
.fini = _nvkm_devinit_fini,
|
||||
|
|
|
@ -15,6 +15,9 @@ int nv50_devinit_pll_set(struct nvkm_devinit *, u32, u32);
|
|||
|
||||
int gt215_devinit_pll_set(struct nvkm_devinit *, u32, u32);
|
||||
|
||||
int gf100_devinit_ctor(struct nvkm_object *, struct nvkm_object *,
|
||||
struct nvkm_oclass *, void *, u32,
|
||||
struct nvkm_object **);
|
||||
int gf100_devinit_pll_set(struct nvkm_devinit *, u32, u32);
|
||||
|
||||
u64 gm107_devinit_disable(struct nvkm_devinit *);
|
||||
|
|
Loading…
Reference in a new issue