Re: x86 setup code rewrite in C - revised
From: H. Peter Anvin
Date: Mon Jul 16 2007 - 13:35:49 EST
Etienne Lorrain wrote:
>
> The only time I ever needed this "end line recalculation" was when the heigh in
> graphic lines was not a multiple of the character heigh - i.e. 640x350 with 8x16
> or 8x8 chars - some VGA adapters do not hide the bottom graphic lines.
> The function vga_set_480_scanlines() is not called, and the protect bit is never
> cleared - the video BIOS leaving those low index register protected.
> The function vga_recalc_vertical() (or its assembler equivalent) is probably
> perfectly called but because the protect bit is never cleared, the few graphic
> line are displayed during the whole Linux text session...
> I have myself never seen any other problems when the graphic heigh is a multiple
> of the character heigh - tested on ~40 video boards.
>
OK, I see what you mean. This would be a problem if:
- the VGA BIOS leaves the protected bit set
- the user enables vertical recalculation
- the size crosses a multiple of 256
It is a bug (ported from the assembly) and fortunately quite easy to
fix. I don't know why I missed this when I looked before.
-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/