Accessing the data in the vga_modes array requires using GET_GLOBAL(),
and the bits set in the bit array should correspond to the modes, not
the indexes in vga_modes.
With this change the modes calculated matches the expected value of
0xfe0ff.
Fixes: 12900b1a2431 ("vgabios: Fill in available legacy modes in video_func_static at runtime")
Signed-off-by: Steven Price <steven@ecrips.co.uk>
// Fill available legacy modes in video_func_static table
u32 modes = 0;
for (i = 0; i < ARRAY_SIZE(vga_modes); i++) {
- u16 mode = vga_modes[i].mode;
+ u16 mode = GET_GLOBAL(vga_modes[i].mode);
if (mode <= 0x13)
- modes |= 1<<i;
+ modes |= 1<<mode;
}
SET_VGA(static_functionality.modes, modes);
}