Now that FreeBSD has native `agpgart' interface,

let X server run on the i810 hardware.  Enjoy!!!
This commit is contained in:
Ruslan Ermilov 2000-08-01 16:28:26 +00:00
parent 3f6d72a26c
commit b106bcd41c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=31215
4 changed files with 127 additions and 3 deletions

View File

@ -0,0 +1,51 @@
Index: programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c,v
retrieving revision 1.9
diff -u -p -r1.9 i810_memory.c
--- programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c 2000/06/20 05:08:46 1.9
+++ programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c 2000/08/01 12:29:11
@@ -40,6 +40,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
#ifdef linux
#include <asm/ioctl.h>
#include <linux/agpgart.h>
+#elif defined(__FreeBSD__)
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/agpio.h>
#endif
#ifdef XFree86LOADER
@@ -76,7 +80,7 @@ int I810AllocHigh( I810MemRange *result,
int I810AllocateGARTMemory( ScrnInfoPtr pScrn )
{
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD__)
struct _agp_info agpinf;
struct _agp_bind bind;
struct _agp_allocate alloc;
@@ -111,12 +115,14 @@ int I810AllocateGARTMemory( ScrnInfoPtr
return FALSE;
}
+#ifndef __FreeBSD__
if (agpinf.version.major != 0 ||
agpinf.version.minor != 99) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Agp kernel driver version not correct\n");
return FALSE;
}
+#endif
/* Treat the gart like video memory - we assume we own all that is
@@ -223,7 +229,7 @@ int I810AllocateGARTMemory( ScrnInfoPtr
void I810FreeGARTMemory( ScrnInfoPtr pScrn )
{
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD__)
I810Ptr pI810 = I810PTR(pScrn);
if (pI810->gartfd != -1) {

View File

@ -1,6 +1,25 @@
--- config/cf/FreeBSD.cf.orig Thu Feb 17 18:09:43 2000
+++ config/cf/FreeBSD.cf Sat Mar 18 19:42:06 2000
@@ -336,14 +336,14 @@
--- config/cf/FreeBSD.cf.orig Sat Jun 24 21:15:53 2000
+++ config/cf/FreeBSD.cf Tue Aug 1 15:19:44 2000
@@ -135,6 +135,18 @@
#endif
#endif
+#ifndef HasAgpGart
+# ifdef i386Architecture
+# if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1)
+# define HasAgpGart YES
+# else
+# define HasAgpGart NO
+# endif
+# else
+# define HasAgpGart NO
+# endif
+#endif
+
/*
* This doesn't work the way it does on every other system. On FreeBSD it's
* only a "hint, not a demand", whatever that means. Note that this is not
@@ -356,14 +368,14 @@
/* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
#ifndef DefaultGcc2i386Opt
#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)

View File

@ -0,0 +1,51 @@
Index: programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c,v
retrieving revision 1.9
diff -u -p -r1.9 i810_memory.c
--- programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c 2000/06/20 05:08:46 1.9
+++ programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c 2000/08/01 12:29:11
@@ -40,6 +40,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
#ifdef linux
#include <asm/ioctl.h>
#include <linux/agpgart.h>
+#elif defined(__FreeBSD__)
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/agpio.h>
#endif
#ifdef XFree86LOADER
@@ -76,7 +80,7 @@ int I810AllocHigh( I810MemRange *result,
int I810AllocateGARTMemory( ScrnInfoPtr pScrn )
{
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD__)
struct _agp_info agpinf;
struct _agp_bind bind;
struct _agp_allocate alloc;
@@ -111,12 +115,14 @@ int I810AllocateGARTMemory( ScrnInfoPtr
return FALSE;
}
+#ifndef __FreeBSD__
if (agpinf.version.major != 0 ||
agpinf.version.minor != 99) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Agp kernel driver version not correct\n");
return FALSE;
}
+#endif
/* Treat the gart like video memory - we assume we own all that is
@@ -223,7 +229,7 @@ int I810AllocateGARTMemory( ScrnInfoPtr
void I810FreeGARTMemory( ScrnInfoPtr pScrn )
{
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD__)
I810Ptr pI810 = I810PTR(pScrn);
if (pI810->gartfd != -1) {

View File

@ -1654,6 +1654,7 @@ lib/X11/doc/html/glXWaitGL.3.html
lib/X11/doc/html/glXWaitX.3.html
lib/X11/doc/html/glint.4.html
lib/X11/doc/html/i740.4.html
lib/X11/doc/html/i810.4.html
lib/X11/doc/html/iceauth.1.html
lib/X11/doc/html/ico.1.html
lib/X11/doc/html/imake.1.html
@ -3234,6 +3235,7 @@ lib/modules/drivers/cyrix_drv.o
lib/modules/drivers/fbdev_drv.o
lib/modules/drivers/glint_drv.o
lib/modules/drivers/i740_drv.o
lib/modules/drivers/i810_drv.o
lib/modules/drivers/mga_drv.o
lib/modules/drivers/neomagic_drv.o
lib/modules/drivers/nv_drv.o
@ -4412,6 +4414,7 @@ man/man4/elographics.4.gz
man/man4/fbdev.4.gz
man/man4/glint.4.gz
man/man4/i740.4.gz
man/man4/i810.4.gz
man/man4/keyboard.4.gz
man/man4/mga.4.gz
man/man4/microtouch.4.gz