vgabios: Fix generating modes list for static_functionality

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: 12900b1a24 ("vgabios: Fill in available legacy modes in video_func_static at runtime")
Signed-off-by: Steven Price <steven@ecrips.co.uk>
This commit is contained in:
Steven Price 2024-10-12 11:34:34 +00:00 committed by Kevin O'Connor
parent 2424e4c04a
commit 62a1429ec1
1 changed files with 2 additions and 2 deletions

View File

@ -419,9 +419,9 @@ stdvga_build_video_param(void)
// 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);
}