Add support for all high-definition and quad extended graphics array resolutions as listed on Wikipedia. Additionally, eliminate any color depths that are less than 32-bits for resolutions greater than Full HD.
https://en.wikipedia.org/wiki/Graphics_display_resolution
Signed-off-by: Elliot Killick elliotkillick@zohomail.eu --- vgasrc/svgamodes.c | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-)
diff --git a/vgasrc/svgamodes.c b/vgasrc/svgamodes.c index 6e494c7..3420d2b 100644 --- a/vgasrc/svgamodes.c +++ b/vgasrc/svgamodes.c @@ -72,25 +72,46 @@ struct generic_svga_mode svga_modes[] VAR16 = { { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } }, { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } }, { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } }, - { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } }, - { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } }, { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } }, - { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } }, - { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } }, - { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } }, { 0x18d, { MM_DIRECT, 1280, 720, 16, 8, 16, SEG_GRAPH } }, { 0x18e, { MM_DIRECT, 1280, 720, 24, 8, 16, SEG_GRAPH } }, { 0x18f, { MM_DIRECT, 1280, 720, 32, 8, 16, SEG_GRAPH } }, { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } }, { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } }, { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } }, + { 0x193, { MM_DIRECT, 1600, 900, 16, 8, 16, SEG_GRAPH } }, + { 0x194, { MM_DIRECT, 1600, 900, 24, 8, 16, SEG_GRAPH } }, + { 0x195, { MM_DIRECT, 1600, 900, 32, 8, 16, SEG_GRAPH } }, + { 0x196, { MM_DIRECT, 960, 540, 16, 8, 16, SEG_GRAPH } }, + { 0x197, { MM_DIRECT, 960, 540, 24, 8, 16, SEG_GRAPH } }, + { 0x198, { MM_DIRECT, 960, 540, 32, 8, 16, SEG_GRAPH } }, + { 0x199, { MM_DIRECT, 1280, 1080, 16, 8, 16, SEG_GRAPH } }, + { 0x19a, { MM_DIRECT, 1280, 1080, 24, 8, 16, SEG_GRAPH } }, + { 0x19b, { MM_DIRECT, 1280, 1080, 32, 8, 16, SEG_GRAPH } },
- /* custom resolutions for 16:9 displays */ - { 0x193, { MM_DIRECT, 1600, 900, 16, 8, 16, SEG_GRAPH } }, - { 0x194, { MM_DIRECT, 1600, 900, 24, 8, 16, SEG_GRAPH } }, - { 0x195, { MM_DIRECT, 1600, 900, 32, 8, 16, SEG_GRAPH } }, - { 0x196, { MM_DIRECT, 2560, 1440, 16, 8, 16, SEG_GRAPH } }, - { 0x197, { MM_DIRECT, 2560, 1440, 24, 8, 16, SEG_GRAPH } }, - { 0x198, { MM_DIRECT, 2560, 1440, 32, 8, 16, SEG_GRAPH } }, + /* other high-definition resolutions */ + { 0x19c, { MM_DIRECT, 2048, 1080, 32, 8, 16, SEG_GRAPH } }, + { 0x19d, { MM_DIRECT, 2160, 1080, 32, 8, 16, SEG_GRAPH } }, + { 0x19e, { MM_DIRECT, 2560, 1080, 32, 8, 16, SEG_GRAPH } }, + { 0x19f, { MM_DIRECT, 2560, 1440, 32, 8, 16, SEG_GRAPH } }, + { 0x1a0, { MM_DIRECT, 3200, 1800, 32, 8, 16, SEG_GRAPH } }, + { 0x1a1, { MM_DIRECT, 3440, 1440, 32, 8, 16, SEG_GRAPH } }, + { 0x1a2, { MM_DIRECT, 3840, 1080, 32, 8, 16, SEG_GRAPH } }, + { 0x1a3, { MM_DIRECT, 3840, 1600, 32, 8, 16, SEG_GRAPH } }, + { 0x1a4, { MM_DIRECT, 3840, 2160, 32, 8, 16, SEG_GRAPH } }, + { 0x1a5, { MM_DIRECT, 4096, 2160, 32, 8, 16, SEG_GRAPH } }, + { 0x1a6, { MM_DIRECT, 5120, 2160, 32, 8, 16, SEG_GRAPH } }, + { 0x1a7, { MM_DIRECT, 5120, 2880, 32, 8, 16, SEG_GRAPH } }, + { 0x1a8, { MM_DIRECT, 7680, 4320, 32, 8, 16, SEG_GRAPH } }, + { 0x1a9, { MM_DIRECT, 17280, 4320, 32, 8, 16, SEG_GRAPH } }, + + /* quad extended graphics array resolutions */ + { 0x1aa, { MM_DIRECT, 2048, 1152, 32, 8, 16, SEG_GRAPH } }, + { 0x1ab, { MM_DIRECT, 2048, 1536, 32, 8, 16, SEG_GRAPH } }, + { 0x1ac, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } }, + { 0x1ad, { MM_DIRECT, 2560, 2048, 32, 8, 16, SEG_GRAPH } }, + { 0x1ae, { MM_DIRECT, 3200, 2048, 32, 8, 16, SEG_GRAPH } }, + { 0x1af, { MM_DIRECT, 3200, 2400, 32, 8, 16, SEG_GRAPH } }, + { 0x1b0, { MM_DIRECT, 3840, 2400, 32, 8, 16, SEG_GRAPH } }, }; unsigned int svga_mcount VAR16 = ARRAY_SIZE(svga_modes);