Messages in this thread | | | Subject | Re: [PATCH 1/3: FBDEV: VGA State Save/Restore module | From | Antonino Daplas <> | Date | 05 Dec 2002 07:53:16 +0500 |
| |
On Thu, 2002-12-05 at 03:33, Petr Vandrovec wrote: > On 5 Dec 02 at 6:05, Antonino Daplas wrote: > > On Wed, 2002-12-04 at 23:41, Petr Vandrovec wrote: > > > On 4 Dec 02 at 22:26, Antonino Daplas wrote: > > [...] > > > And if my VGA documentation is correct, you are saving random > > > data into vga_text: first 8192 chars interleaved with > > > 8192 bytes of garbage, plus attributes from chars 8192-16383 interleaved > > > with 8192 bytes of garbage. > > > > > Right, I'm not sure about this part too. The docs say that this is true > > for EGA compatible hardware. How about non-compliant hardware? > > Like non-VGA? Like CGA/MDA? I thought that non-VGA/non-EGA adapters are > out of scope of this document ;-) > Okay :-), as I've said this is the part I'm not sure of. I'll do it your way then, save 8K at offset 0 and save 8K at offset 16K. That should be 16K used instead of 32K, right?
> > > And if you are using standard hardware, then font data live only in > > > plane 2, plane 3 is unused on VGA hardware in text mode. I think that > > > you should either save whole 256KB of memory, without deeper understanding, > > > or you should just save FONT 0 (first 32*256 bytes from plane 2) if you > > > Only if saving the first character map in plane 2. Hardware can have as > > much as 8 character maps per plane, each 8K in size for 64K. The same > > setup is true for plane 3 fonts. > > How you select them? Mine doc says that font block 0 begins in plane 2 > at offset 0, block 1 at offset 16KB, 2 at 32K, 3 at 48K, 4 at 8K, 5 at 24K, > 6 at 40K, and last, 7th, at 56KB, and sequencer has two threebit fields... > Selection was not the problem, the code just saves the entire 64K for character maps 0-7.
> > > want to save memory and you know that console was driven by vgacon in > > > text mode. > > To save memory, apps can explicitly choose what to save, but I don't > > want to go finer than that, ie. save character maps 2,3,5 of plane 2 > > and 1,2,3 of plane 3. The current way of saving the text mode map may > > be a bit wasteful, but better than being bitten by hardware that's > > non-EGA compliant. > > Look at vgacon. Uses font block 0,2,3 from plane 2 when built > without BROKEN_GRAPHICS_PROGRAMS, or 0,1 when built with > BROKEN_GRAPHICS_PROGRAMS. So if you want just restore vgacon environment, > save only these 4 blocks (4*8K = 32K). Or you want to save whole > VGA memory, and then save whole 256KB, without tricks while saving > planes 0 & 1.
Okay, then. My approach was to be non-vgacon specific. I'll do it to specifically target vgacon then.
To summarize: plane 0/1 save 8K at offset 0 and 8K at offset 16K; plane 2 save 32K at offset 0 (covers blocks 0-3), plane 3 same for plane 2
Drivers can set VGA_SAVE_TEXT | VGA_SAVE_FONT0 to save planes 0-2. If there are no complaints, I'll proceed doing it this way.
Thanks for the input Petr.
Tony
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |