summaryrefslogtreecommitdiff
path: root/nvkm
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2014-11-12 14:19:58 +0900
committerBen Skeggs <bskeggs@redhat.com>2014-11-13 15:45:10 +1000
commit3a5dda18f5132555e9f6d4dfd08774a0082445e5 (patch)
treee9d429cd3ed601489886b4748a6747c4b7052b6f /nvkm
parent3faa6c9d4ce12f24f4d84f6db454f83a1fbcc126 (diff)
downloadnouveau-3a5dda18f5132555e9f6d4dfd08774a0082445e5.tar.gz
fb/gk20a: fix setting of large page size bit
Commit "ltc/gf100-: fix cbc issues on certain boards" moved the setting of the large page size bit from bar/nvc0 to fb/nvc0. GK20A uses its own FB device and the change was thus not applied to it - fix this. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm')
-rw-r--r--nvkm/subdev/fb/gk20a.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/nvkm/subdev/fb/gk20a.c b/nvkm/subdev/fb/gk20a.c
index a16024a74..fde42e4d1 100644
--- a/nvkm/subdev/fb/gk20a.c
+++ b/nvkm/subdev/fb/gk20a.c
@@ -27,6 +27,20 @@ struct gk20a_fb_priv {
};
static int
+gk20a_fb_init(struct nouveau_object *object)
+{
+ struct gk20a_fb_priv *priv = (void *)object;
+ int ret;
+
+ ret = nouveau_fb_init(&priv->base);
+ if (ret)
+ return ret;
+
+ nv_mask(priv, 0x100c80, 0x00000001, 0x00000000); /* 128KiB lpg */
+ return 0;
+}
+
+static int
gk20a_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
struct nouveau_oclass *oclass, void *data, u32 size,
struct nouveau_object **pobject)
@@ -48,7 +62,7 @@ gk20a_fb_oclass = &(struct nouveau_fb_impl) {
.base.ofuncs = &(struct nouveau_ofuncs) {
.ctor = gk20a_fb_ctor,
.dtor = _nouveau_fb_dtor,
- .init = _nouveau_fb_init,
+ .init = gk20a_fb_init,
.fini = _nouveau_fb_fini,
},
.memtype = nvc0_fb_memtype_valid,