aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-05-28 21:13:52 -0400
committerDave Airlie <airlied@redhat.com>2015-05-28 21:13:52 -0400
commit1fe7142063517dfb17bfd3ada394e1dd7ee44ba7 (patch)
tree769fd60024af3a469a930f2c08e093e62b4f5bf7 /drivers/gpu
parentd641958f658833b5866ea80861f9ff8eb1519bec (diff)
parentaaea3938b5637ffb1d77e8b7707c207b24e02937 (diff)
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
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/nouveau/include/nvif/class.h2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c1
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c7
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h3
6 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvif/class.h b/drivers/gpu/drm/nouveau/include/nvif/class.h
index 0b5af0fe8659..64f8b2f687d2 100644
--- a/drivers/gpu/drm/nouveau/include/nvif/class.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/class.h
@@ -14,7 +14,7 @@
14 14
15#define FERMI_TWOD_A 0x0000902d 15#define FERMI_TWOD_A 0x0000902d
16 16
17#define FERMI_MEMORY_TO_MEMORY_FORMAT_A 0x0000903d 17#define FERMI_MEMORY_TO_MEMORY_FORMAT_A 0x00009039
18 18
19#define KEPLER_INLINE_TO_MEMORY_A 0x0000a040 19#define KEPLER_INLINE_TO_MEMORY_A 0x0000a040
20#define KEPLER_INLINE_TO_MEMORY_B 0x0000a140 20#define KEPLER_INLINE_TO_MEMORY_B 0x0000a140
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c
index 2f5eadd12a9b..fdb1dcf16a59 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c
@@ -329,7 +329,6 @@ gm204_gr_init(struct nvkm_object *object)
329 nv_mask(priv, 0x419cc0, 0x00000008, 0x00000008); 329 nv_mask(priv, 0x419cc0, 0x00000008, 0x00000008);
330 330
331 for (gpc = 0; gpc < priv->gpc_nr; gpc++) { 331 for (gpc = 0; gpc < priv->gpc_nr; gpc++) {
332 printk(KERN_ERR "ppc %d %d\n", gpc, priv->ppc_nr[gpc]);
333 for (ppc = 0; ppc < priv->ppc_nr[gpc]; ppc++) 332 for (ppc = 0; ppc < priv->ppc_nr[gpc]; ppc++)
334 nv_wr32(priv, PPC_UNIT(gpc, ppc, 0x038), 0xc0000000); 333 nv_wr32(priv, PPC_UNIT(gpc, ppc, 0x038), 0xc0000000);
335 nv_wr32(priv, GPC_UNIT(gpc, 0x0420), 0xc0000000); 334 nv_wr32(priv, GPC_UNIT(gpc, 0x0420), 0xc0000000);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c
index e8778c67578e..c61102f70805 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c
@@ -90,12 +90,14 @@ gf100_devinit_disable(struct nvkm_devinit *devinit)
90 return disable; 90 return disable;
91} 91}
92 92
93static int 93int
94gf100_devinit_ctor(struct nvkm_object *parent, struct nvkm_object *engine, 94gf100_devinit_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
95 struct nvkm_oclass *oclass, void *data, u32 size, 95 struct nvkm_oclass *oclass, void *data, u32 size,
96 struct nvkm_object **pobject) 96 struct nvkm_object **pobject)
97{ 97{
98 struct nvkm_devinit_impl *impl = (void *)oclass;
98 struct nv50_devinit_priv *priv; 99 struct nv50_devinit_priv *priv;
100 u64 disable;
99 int ret; 101 int ret;
100 102
101 ret = nvkm_devinit_create(parent, engine, oclass, &priv); 103 ret = nvkm_devinit_create(parent, engine, oclass, &priv);
@@ -103,7 +105,8 @@ gf100_devinit_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
103 if (ret) 105 if (ret)
104 return ret; 106 return ret;
105 107
106 if (nv_rd32(priv, 0x022500) & 0x00000001) 108 disable = impl->disable(&priv->base);
109 if (disable & (1ULL << NVDEV_ENGINE_DISP))
107 priv->base.post = true; 110 priv->base.post = true;
108 111
109 return 0; 112 return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
index b345a53e881d..87ca0ece37b4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
@@ -48,7 +48,7 @@ struct nvkm_oclass *
48gm107_devinit_oclass = &(struct nvkm_devinit_impl) { 48gm107_devinit_oclass = &(struct nvkm_devinit_impl) {
49 .base.handle = NV_SUBDEV(DEVINIT, 0x07), 49 .base.handle = NV_SUBDEV(DEVINIT, 0x07),
50 .base.ofuncs = &(struct nvkm_ofuncs) { 50 .base.ofuncs = &(struct nvkm_ofuncs) {
51 .ctor = nv50_devinit_ctor, 51 .ctor = gf100_devinit_ctor,
52 .dtor = _nvkm_devinit_dtor, 52 .dtor = _nvkm_devinit_dtor,
53 .init = nv50_devinit_init, 53 .init = nv50_devinit_init,
54 .fini = _nvkm_devinit_fini, 54 .fini = _nvkm_devinit_fini,
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c
index 535172c5f1ad..1076fcf0d716 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c
@@ -161,7 +161,7 @@ struct nvkm_oclass *
161gm204_devinit_oclass = &(struct nvkm_devinit_impl) { 161gm204_devinit_oclass = &(struct nvkm_devinit_impl) {
162 .base.handle = NV_SUBDEV(DEVINIT, 0x07), 162 .base.handle = NV_SUBDEV(DEVINIT, 0x07),
163 .base.ofuncs = &(struct nvkm_ofuncs) { 163 .base.ofuncs = &(struct nvkm_ofuncs) {
164 .ctor = nv50_devinit_ctor, 164 .ctor = gf100_devinit_ctor,
165 .dtor = _nvkm_devinit_dtor, 165 .dtor = _nvkm_devinit_dtor,
166 .init = nv50_devinit_init, 166 .init = nv50_devinit_init,
167 .fini = _nvkm_devinit_fini, 167 .fini = _nvkm_devinit_fini,
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
index b882b65ff3cd..9243521c80ac 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
@@ -15,6 +15,9 @@ int nv50_devinit_pll_set(struct nvkm_devinit *, u32, u32);
15 15
16int gt215_devinit_pll_set(struct nvkm_devinit *, u32, u32); 16int gt215_devinit_pll_set(struct nvkm_devinit *, u32, u32);
17 17
18int gf100_devinit_ctor(struct nvkm_object *, struct nvkm_object *,
19 struct nvkm_oclass *, void *, u32,
20 struct nvkm_object **);
18int gf100_devinit_pll_set(struct nvkm_devinit *, u32, u32); 21int gf100_devinit_pll_set(struct nvkm_devinit *, u32, u32);
19 22
20u64 gm107_devinit_disable(struct nvkm_devinit *); 23u64 gm107_devinit_disable(struct nvkm_devinit *);