Hi Lee,

Unfortunately your patch is backwards.
Furthermore I'd personally prefer unified over context diffs.


Lee Olsen writes:
 > Hello all;
 > 
 > The vesa driver's probe only looks for a vga. If you have a real stone 
 > age original vga, you get
 > "No screens found". The vesa probe needs to look for the vesa signature 
 > in the bios, and that
 > means libint10.a and libvbe.a must be able to run without referencing 
 > screens or entities, which
 > they both do.

You mean you want to map the BIOS memory and search it for the signature.

 > 
 > The diffs that follow avoid entity and screen references for indexes 
 > less than zero and behave
 > as before for positive values.My copy of the vesa driver has some 
 > multihead isa stuff in it, so

I have sepent some time  thinking about multihead ISA. 
The only chance for it to work appeared to be if ISA cards
are capable of remapping their registers. This is scary as
there is no range they can do this savely (except for the
8514 regsters). However I never had any cards with docs that 
I was able to try it so I gave up on it.
Furthermore I would have expected that at boot time both
cards would have their default registers VGA enabled
which will definitely produce problems during POSTing.
Not to speak of the problem that arise if both cards map
their ROM into the same range.
Therefore I'd expect that this has only a chance to work
if you are able to disable the standard VGA registers and
BIOS on one card entirely (using jumpers) in which case I
don't understand how the VESA driver would be of any help
for such a card.

 > I'll save that for later. Since these are independent, I'm presenting 
 > them without the multihead
 > clutter. I'm not sure I got everything, but it tests correctly for pure 
 > isa vga, pure isa vesa, and
 > pci/agp/no isa. I don't think my bios will let me put an isa video card 
 > in the pci/agp box.
 > 
 > The two line vbeModes.c change fixes VBEFindSupportedDepths reporting 
 > zero for depths
 > les than 15. The symptom I saw is a 512k card requesting a depth of 16, 
 > resulting in "No usable
 > modes."
 > 
 > Enjoy
 > Lee
 > 
 > diff -c helper_exec.c*
 > *** helper_exec.c    Mon Mar 29 11:35:02 2004
 > --- helper_exec.c.orig    Tue Dec 23 14:32:38 2003
 > ***************
 > *** 581,587 ****
 >       unsigned char* base;
 >       int i;
 >  
 > !     if (!save && !pInt->BIOSScratch)
 >       return;
 >      
 >       base = xf86MapVidMem(pInt->scrnIndex, VIDMEM_MMIO, 0, pagesize);
 > --- 581,588 ----
 >       unsigned char* base;
 >       int i;
 >  
 > !     if (!xf86IsEntityPrimary(pInt->entityIndex)
 > !     || (!save && !pInt->BIOSScratch))
 >       return;

I'd say this is not valid. xf86Int10SaveRestoreBIOSVars()
copies the physical BIOS variable area to and from the scratch
area. This physical area exists only once and belongs to the 
primary card.
The physical BIOS area is set up during posting. Therefore
the values are only meaningful for the card that got posted,
not any other card.

 >      
 >       base = xf86MapVidMem(pInt->scrnIndex, VIDMEM_MMIO, 0, pagesize);
 > 
 > End of helper_exec.c changes
 > 

For the rest of the diffs:
I guess what you are trying to do is to get the BIOS mapped
although you don't have an entity index (yet).
That's easy for primary cards. For non-primary cards it is
only possible for PCI cards. It looks like you only need
the BIOS, you don't need any int10 functions.
We therefore should check if we can separate out the mapping
part and make it available as a separate function.

 > 
 >  diff -bc vbeModes.c*
 > *** vbeModes.c    Mon Mar 29 15:24:45 2004
 > --- vbeModes.c.orig    Thu Nov  6 10:38:14 2003
 > ***************
 > *** 54,61 ****
 >           depth = 1;
 >       }
 >       bpp = mode->BitsPerPixel;
 > -     if (!depth)
 > -         depth = bpp;
 >       VBEFreeModeInfo(mode);
 >       mode = NULL;
 >       switch (depth) {

Hm, that one seems to work around a bug in the BIOS I 
assume.

Egbert.

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to