drm/nouveau/pm: translate ramcfg strap through ram restrict table
Hopefully this is how we're supposed to correctly handle when the RAMCFG strap is above the number of entries in timing-related tables. It's rather difficult to confirm without finding a configuration where the ram restrict table doesn't map 8-15 back onto 0-7 anyway. There's not a single vbios in the repo which is configured differently.. In any case, this is probably still better than potentially reading outside of the bounds of various tables.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Родитель
bfb61f43b3
Коммит
96d1fcf8b5
|
@ -116,8 +116,10 @@ nouveau_perf_timing(struct drm_device *dev, struct bit_entry *P,
|
|||
entries = tmap[4];
|
||||
}
|
||||
|
||||
ramcfg = nv_rd32(dev, NV_PEXTDEV_BOOT_0) & 0x0000003c;
|
||||
ramcfg >>= 2;
|
||||
ramcfg = (nv_rd32(dev, NV_PEXTDEV_BOOT_0) & 0x0000003c) >> 2;
|
||||
if (bios->ram_restrict_tbl_ptr)
|
||||
ramcfg = bios->data[bios->ram_restrict_tbl_ptr + ramcfg];
|
||||
|
||||
if (ramcfg >= entries) {
|
||||
NV_WARN(dev, "ramcfg strap out of bounds!\n");
|
||||
return NULL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче