diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-12-03 14:45:03 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-01-23 13:10:54 +1000 |
commit | d89b2b90f21b8bc2fb42ea29616d4a4af862398a (patch) | |
tree | 09f5f3e43915aa2eb009bb23684e23bfc7a6b9dc | |
parent | 7717ce3262114e70b010e908854a2cbf73281b32 (diff) |
fb/gddr5/nve0: yet another random 10f200 bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | nvkm/include/subdev/bios/ramcfg.h | 1 | ||||
-rw-r--r-- | nvkm/subdev/bios/rammap.c | 1 | ||||
-rw-r--r-- | nvkm/subdev/fb/ramnve0.c | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/nvkm/include/subdev/bios/ramcfg.h b/nvkm/include/subdev/bios/ramcfg.h index c364392a..c5e6d1e6 100644 --- a/nvkm/include/subdev/bios/ramcfg.h +++ b/nvkm/include/subdev/bios/ramcfg.h @@ -40,6 +40,7 @@ struct nvbios_ramcfg { unsigned ramcfg_11_08_04:1; unsigned ramcfg_11_08_08:1; unsigned ramcfg_11_08_10:1; + unsigned ramcfg_11_08_20:1; unsigned ramcfg_11_09:8; unsigned timing[11]; diff --git a/nvkm/subdev/bios/rammap.c b/nvkm/subdev/bios/rammap.c index f13aeead..1811b2cb 100644 --- a/nvkm/subdev/bios/rammap.c +++ b/nvkm/subdev/bios/rammap.c @@ -162,6 +162,7 @@ nvbios_rammapSp(struct nouveau_bios *bios, u32 data, p->ramcfg_11_08_04 = (nv_ro08(bios, data + 0x08) & 0x04) >> 2; p->ramcfg_11_08_08 = (nv_ro08(bios, data + 0x08) & 0x08) >> 3; p->ramcfg_11_08_10 = (nv_ro08(bios, data + 0x08) & 0x10) >> 4; + p->ramcfg_11_08_20 = (nv_ro08(bios, data + 0x08) & 0x20) >> 5; p->ramcfg_11_09 = (nv_ro08(bios, data + 0x09) & 0xff) >> 0; break; default: diff --git a/nvkm/subdev/fb/ramnve0.c b/nvkm/subdev/fb/ramnve0.c index 9a79da90..91d9fe68 100644 --- a/nvkm/subdev/fb/ramnve0.c +++ b/nvkm/subdev/fb/ramnve0.c @@ -477,6 +477,14 @@ nve0_ram_calc_gddr5(struct nouveau_fb *pfb, u32 freq) ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); data = mask = 0x00000000; + if (NOTE00(ramcfg_08_20)) { + if (next->bios.ramcfg_11_08_20) + data |= 0x01000000; + mask |= 0x01000000; + } + ram_mask(fuc, 0x10f200, mask, data); + + data = mask = 0x00000000; if (NOTE00(ramcfg_02_03 != 0)) { data |= (next->bios.ramcfg_11_02_03) << 8; mask |= 0x00000300; |