*** p9000.old.c	Thu Jan 19 05:54:03 1995
--- p9000.new.c	Thu Jan 19 05:54:11 1995
***************
*** 1,4 ****
! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/p9000/p9000.c,v 3.18 1994/09/24 15:12:34 dawes Exp $ */
  /*
   * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
   * Copyright 1994 by Erik Nygren <nygren@mit.edu>
--- 1,4 ----
! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/p9000/p9000.c,v 3.20 1994/11/26 12:44:16 dawes Exp $ */
  /*
   * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
   * Copyright 1994 by Erik Nygren <nygren@mit.edu>
***************
*** 115,120 ****
--- 115,122 ----
      0,			/* int COPbase */
      0,			/* int POSbase */
      0,			/* int instance */
+     0,			/* int s3Madjust */
+     0,			/* int s3Nadjust */
  };
  
  extern miPointerScreenFuncRec xf86PointerScreenFuncs;
***************
*** 200,207 ****
          (a & 0x01) << 7;
  
  /* Raster operation (alu) -> minterm mapping */
! unsigned int p9000alu[16];
! unsigned int p9000QuadAlu[16];
  
  /*
   * p9000Probe --
--- 202,209 ----
          (a & 0x01) << 7;
  
  /* Raster operation (alu) -> minterm mapping */
! unsigned int p9000alu[16];	/* alu src = p9000 src        */
! unsigned int p9000QuadAlu[16] ; /* alu src = p9000 foreground */
  
  /*
   * p9000Probe --
***************
*** 222,228 ****
      int            i;
      unsigned long  tmpsysconfig;  /* dummy value */
  
-     /* Check for linear vid mem capability */
      if (!xf86LinearVidMem())
        {
  	ErrorF("%s %s: This operating system does not support memory mapping of linear regions.\nAs a result, it can not be used with this server\n",
--- 224,229 ----
***************
*** 276,289 ****
      xf86EnableIOPorts(p9000InfoRec.scrnIndex);
      
      OFLG_ZERO(&validOptions);
      xf86VerifyOptions(&validOptions, &p9000InfoRec);
      
      if (!p9000InfoRec.clocks)
        {
  	ErrorF("%s %s: Autodetection of clocks is not supported.\n\tExplicitly specify in XF86Config file on a Clocks line.\n", XCONFIG_PROBED, p9000InfoRec.name);
  	return(FALSE);
        }
!     
      if (!p9000InfoRec.videoRam)
        {
  	ErrorF("%s %s: Autodetection of video RAM is not yet supported.\n\tExplicitly specify VideoRAM in XF86Config file.\n", XCONFIG_PROBED, p9000InfoRec.name);
--- 277,300 ----
      xf86EnableIOPorts(p9000InfoRec.scrnIndex);
      
      OFLG_ZERO(&validOptions);
+     OFLG_SET(OPTION_SW_CURSOR, &validOptions);
+     OFLG_SET(OPTION_NOACCEL, &validOptions);
+     OFLG_SET(OPTION_SYNC_ON_GREEN, &validOptions);
+     OFLG_SET(OPTION_VRAM_128, &validOptions);
+     OFLG_SET(OPTION_VRAM_256, &validOptions);
      xf86VerifyOptions(&validOptions, &p9000InfoRec);
      
+ #if 0  /* We shouldn't need this any more */
      if (!p9000InfoRec.clocks)
        {
  	ErrorF("%s %s: Autodetection of clocks is not supported.\n\tExplicitly specify in XF86Config file on a Clocks line.\n", XCONFIG_PROBED, p9000InfoRec.name);
  	return(FALSE);
        }
! #endif
!     /* At the moment, all P9000-based boards use a icd2061a compatable
!      * programmable clock so no more differentiation than this is needed */
!     OFLG_SET(CLOCK_OPTION_PROGRAMABLE, &(p9000InfoRec.clockOptions));
! 
      if (!p9000InfoRec.videoRam)
        {
  	ErrorF("%s %s: Autodetection of video RAM is not yet supported.\n\tExplicitly specify VideoRAM in XF86Config file.\n", XCONFIG_PROBED, p9000InfoRec.name);
***************
*** 487,492 ****
--- 498,505 ----
  		p9000InfoRec.virtualX = pEnd->HDisplay;
  		p9000InfoRec.virtualY = pEnd->VDisplay;
  	      }
+ 	    /* Set the clock synthesizer frequency */
+ 	    pMode->SynthClock = p9000InfoRec.clock[pMode->Clock];
  	    pMode = pMode->next;
  	  }
        } while (pMode != pEnd);
***************
*** 635,641 ****
  #endif
    
    if (!p9000ScreenInit(pScreen,
! 		       (volatile pointer) VidBase,
  		       p9000InfoRec.virtualX, p9000InfoRec.virtualY,
  		       75, 75,
  		       p9000InfoRec.virtualX))
--- 648,654 ----
  #endif
    
    if (!p9000ScreenInit(pScreen,
! 		       (pointer) VidBase,
  		       p9000InfoRec.virtualX, p9000InfoRec.virtualY,
  		       75, 75,
  		       p9000InfoRec.virtualX))
