Re: MTRR vesafb and wrong X performance

From: Dave Jones
Date: Mon Nov 29 2004 - 13:18:33 EST


On Mon, Nov 29, 2004 at 06:34:19PM +0100, Gerd Knorr wrote:
> > size_total is calculated thus:
> >
> > size_total = screen_info.lfb_size * 65536;
>
> That comes almost directly from the BIOS, the screen_info struct is
> filled by the real mode boot code (vga.S IIRC).

ah yes, video.S, (sets PARAM_LFB_SIZE), which is why my grep failed.

> > or blacklist if there aren't too many perhaps?
>
> Hmm, how identify them? Map the BIOS and poke around there?
> screen_info gives next to no info here.
>
> Maybe it works better to walk the PCI device list, find the correct
> gfx card using the framebuffer start address, then double-check the
> size by looking at the PCI ressources?

Maybe.

Something I toyed with at one point, which only works for AGP cards is..
search the pci config space for an agp header, and then check the amount
of prefetchable memory range behind the bridge.
Even that wasn't foolproof however, and there were a few quirks
to work around still. You see all sorts of strange things there,
like onboard gfx with 16MB advertising 64MB prefetchable ranges.

Dave

-
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/