aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-11-27 11:28:19 +1000
committerBen Skeggs <bskeggs@redhat.com>2014-01-23 13:38:48 +1000
commit0a0dc8f564ab116e5b59b60ca568276f1fed59a3 (patch)
tree089eee63168d3f15a0993cb31c2691e2e131754e /drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
parentdrm/nve0/fb/gddr5: fix an assumption of sane memory controller layout (diff)
downloadlinux-dev-0a0dc8f564ab116e5b59b60ca568276f1fed59a3.tar.xz
linux-dev-0a0dc8f564ab116e5b59b60ca568276f1fed59a3.zip
drm/nouveau/bios: make common code to handle ramcfg strap etc
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c b/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
index 76762a17d89c..38541db800d2 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
@@ -70,13 +70,11 @@ nv50_ram_calc(struct nouveau_fb *pfb, u32 freq)
struct nv50_ramseq *hwsq = &ram->hwsq;
struct nvbios_perfE perfE;
struct nvbios_pll mpll;
- struct bit_entry M;
struct {
u32 data;
u8 size;
} ramcfg, timing;
u8 ver, hdr, cnt, strap;
- u32 data;
int N1, M1, N2, M2, P;
int ret, i;
@@ -93,16 +91,7 @@ nv50_ram_calc(struct nouveau_fb *pfb, u32 freq)
} while (perfE.memory < freq);
/* locate specific data set for the attached memory */
- if (bit_entry(bios, 'M', &M) || M.version != 1 || M.length < 5) {
- nv_error(pfb, "invalid/missing memory table\n");
- return -EINVAL;
- }
-
- strap = (nv_rd32(pfb, 0x101000) & 0x0000003c) >> 2;
- data = nv_ro16(bios, M.offset + 3);
- if (data)
- strap = nv_ro08(bios, data + strap);
-
+ strap = nvbios_ramcfg_index(bios);
if (strap >= cnt) {
nv_error(pfb, "invalid ramcfg strap\n");
return -EINVAL;