summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2003-04-03 15:51:19 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2003-04-03 15:51:19 +0000
commit2a09871d5c3c5b1c9174de8f5e1641d4158c67ed (patch)
tree83c6905b8e618546c6ab88db3d0a14daa575c344
parent6f88a5351c3f0b8e657708b64060adb833c8a919 (diff)
downloaddrm-2a09871d5c3c5b1c9174de8f5e1641d4158c67ed.tar.gz
add trident kernel driver (purely for locking a.k.a tdfx)
-rw-r--r--bsd-core/mga_drv.c8
-rw-r--r--bsd-core/r128_drv.c9
-rw-r--r--bsd-core/radeon_drv.c61
-rw-r--r--bsd-core/tdfx_drv.c7
-rw-r--r--bsd/mga_drv.c8
-rw-r--r--bsd/r128_drv.c9
-rw-r--r--bsd/radeon_drv.c61
-rw-r--r--bsd/tdfx_drv.c7
-rw-r--r--libdrm/xf86drmCompat.c2
-rw-r--r--linux/Makefile.linux10
-rw-r--r--linux/trident.h41
-rw-r--r--linux/trident_drv.c77
12 files changed, 228 insertions, 72 deletions
diff --git a/bsd-core/mga_drv.c b/bsd-core/mga_drv.c
index 8b69b41b..de0387f7 100644
--- a/bsd-core/mga_drv.c
+++ b/bsd-core/mga_drv.c
@@ -27,10 +27,10 @@
* Authors:
* Rickard E. (Rik) Faith <faith@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/mga_drv.c,v 1.4 2003/03/09 02:08:28 anholt Exp $
*/
-#include <sys/types.h>
-
#include "mga.h"
#include "drmP.h"
#include "drm.h"
@@ -63,4 +63,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_vm.h"
#include "drm_sysctl.h"
+#ifdef __FreeBSD__
DRIVER_MODULE(mga, pci, mga_driver, mga_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(mga, DV_TTY, NULL);
+#endif
diff --git a/bsd-core/r128_drv.c b/bsd-core/r128_drv.c
index 1a8046fb..28a2c85e 100644
--- a/bsd-core/r128_drv.c
+++ b/bsd-core/r128_drv.c
@@ -27,11 +27,10 @@
* Authors:
* Rickard E. (Rik) Faith <faith@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/r128_drv.c,v 1.4 2003/03/09 02:08:28 anholt Exp $
*/
-
-#include <sys/types.h>
-
#include "r128.h"
#include "drmP.h"
#include "drm.h"
@@ -83,4 +82,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_scatter.h"
#endif
+#ifdef __FreeBSD__
DRIVER_MODULE(r128, pci, r128_driver, r128_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(r128, DV_TTY, NULL);
+#endif /* __FreeBSD__ */
diff --git a/bsd-core/radeon_drv.c b/bsd-core/radeon_drv.c
index a253b9cb..2e7c5d66 100644
--- a/bsd-core/radeon_drv.c
+++ b/bsd-core/radeon_drv.c
@@ -25,10 +25,10 @@
*
* Authors:
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/radeon_drv.c,v 1.5 2003/03/11 01:38:17 anholt Exp $
*/
-#include <sys/types.h>
-
#include "radeon.h"
#include "drmP.h"
#include "drm.h"
@@ -39,38 +39,41 @@
#endif
drm_chipinfo_t DRM(devicelist)[] = {
- {0x1002, 0x4242, 1, "ATI Radeon BB AIW 8500DV (AGP)"},
- {0x1002, 0x4336, 1, "ATI Radeon Mobility"},
- {0x1002, 0x4964, 1, "ATI Radeon Id 9000"},
- {0x1002, 0x4965, 1, "ATI Radeon Ie 9000"},
- {0x1002, 0x4966, 1, "ATI Radeon If 9000"},
- {0x1002, 0x4967, 1, "ATI Radeon Ig 9000"},
- {0x1002, 0x496e, 1, "ATI Radeon Ig 9000"},
- {0x1002, 0x4C57, 1, "ATI Radeon LW Mobility 7 (AGP)"},
- {0x1002, 0x4C58, 1, "ATI Radeon LX Mobility 7 (AGP)"},
- {0x1002, 0x4C59, 1, "ATI Radeon LY Mobility 6 (AGP)"},
- {0x1002, 0x4C5A, 1, "ATI Radeon LZ Mobility 6 (AGP)"},
- {0x1002, 0x4C64, 1, "ATI Radeon Ld Mobility 9000 (AGP)"},
- {0x1002, 0x4C65, 1, "ATI Radeon Le Mobility 9000 (AGP)"},
- {0x1002, 0x4C66, 1, "ATI Radeon Lf Mobility 9000 (AGP)"},
- {0x1002, 0x4C67, 1, "ATI Radeon Lg Mobility 9000 (AGP)"},
- {0x1002, 0x5144, 1, "ATI Radeon QD R100 (AGP)"},
- {0x1002, 0x5145, 1, "ATI Radeon QE R100 (AGP)"},
- {0x1002, 0x5146, 1, "ATI Radeon QF R100 (AGP)"},
- {0x1002, 0x5147, 1, "ATI Radeon QG R100 (AGP)"},
- {0x1002, 0x5148, 1, "ATI Radeon QH FireGL 8x00 (AGP)"},
+ {0x1002, 0x4242, 1, "ATI Radeon BB R200 AIW 8500DV"},
+ {0x1002, 0x4336, 1, "ATI Radeon Mobility U1"},
+ {0x1002, 0x4964, 1, "ATI Radeon Id R250 9000"},
+ {0x1002, 0x4965, 1, "ATI Radeon Ie R250 9000"},
+ {0x1002, 0x4966, 1, "ATI Radeon If R250 9000"},
+ {0x1002, 0x4967, 1, "ATI Radeon Ig R250 9000"},
+ {0x1002, 0x4C57, 1, "ATI Radeon LW Mobility 7500 M7"},
+ {0x1002, 0x4C58, 1, "ATI Radeon LX RV200 Mobility FireGL 7800 M7"},
+ {0x1002, 0x4C59, 1, "ATI Radeon LY Mobility M6"},
+ {0x1002, 0x4C5A, 1, "ATI Radeon LZ Mobility M6"},
+ {0x1002, 0x4C64, 1, "ATI Radeon Ld R250 Mobility 9000 M9"},
+ {0x1002, 0x4C65, 1, "ATI Radeon Le R250 Mobility 9000 M9"},
+ {0x1002, 0x4C66, 1, "ATI Radeon Lf R250 Mobility 9000 M9"},
+ {0x1002, 0x4C67, 1, "ATI Radeon Lg R250 Mobility 9000 M9"},
+ {0x1002, 0x5144, 1, "ATI Radeon QD R100"},
+ {0x1002, 0x5145, 1, "ATI Radeon QE R100"},
+ {0x1002, 0x5146, 1, "ATI Radeon QF R100"},
+ {0x1002, 0x5147, 1, "ATI Radeon QG R100"},
+ {0x1002, 0x5148, 1, "ATI Radeon QH FireGL 8x00"},
{0x1002, 0x5149, 1, "ATI Radeon QI R200"},
{0x1002, 0x514A, 1, "ATI Radeon QJ R200"},
{0x1002, 0x514B, 1, "ATI Radeon QK R200"},
- {0x1002, 0x514C, 1, "ATI Radeon QL 8500 (AGP)"},
- {0x1002, 0x5157, 1, "ATI Radeon QW 7500 (AGP)"},
- {0x1002, 0x5158, 1, "ATI Radeon QX 7500 (AGP)"},
- {0x1002, 0x5159, 1, "ATI Radeon QY VE (AGP)"},
- {0x1002, 0x515A, 1, "ATI Radeon QZ VE (AGP)"},
+ {0x1002, 0x514C, 1, "ATI Radeon QL R200 8500 LE"},
+ {0x1002, 0x514D, 1, "ATI Radeon QM R200 9100"},
+ {0x1002, 0x514E, 1, "ATI Radeon QN R200 8500 LE"},
+ {0x1002, 0x514F, 1, "ATI Radeon QO R200 8500 LE"},
+ {0x1002, 0x5157, 1, "ATI Radeon QW RV200 7500"},
+ {0x1002, 0x5158, 1, "ATI Radeon QX RV200 7500"},
+ {0x1002, 0x5159, 1, "ATI Radeon QY RV100 VE"},
+ {0x1002, 0x515A, 1, "ATI Radeon QZ RV100 VE"},
{0x1002, 0x5168, 1, "ATI Radeon Qh R200"},
{0x1002, 0x5169, 1, "ATI Radeon Qi R200"},
{0x1002, 0x516A, 1, "ATI Radeon Qj R200"},
{0x1002, 0x516B, 1, "ATI Radeon Qk R200"},
+ {0x1002, 0x516C, 1, "ATI Radeon Ql R200"},
{0, 0, 0, NULL}
};
@@ -92,4 +95,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_scatter.h"
#endif
+#ifdef __FreeBSD__
DRIVER_MODULE(DRIVER_NAME, pci, DRM(driver), DRM(devclass), 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(radeon, DV_TTY, NULL);
+#endif /* __FreeBSD__ */
diff --git a/bsd-core/tdfx_drv.c b/bsd-core/tdfx_drv.c
index 8bc8c57d..e10542f1 100644
--- a/bsd-core/tdfx_drv.c
+++ b/bsd-core/tdfx_drv.c
@@ -28,11 +28,10 @@
* Rickard E. (Rik) Faith <faith@valinux.com>
* Daryll Strauss <daryll@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/tdfx_drv.c,v 1.3 2003/03/09 02:08:28 anholt Exp $
*/
-
-#include <sys/types.h>
-
#include "tdfx.h"
#include "drmP.h"
@@ -96,4 +95,6 @@ drm_chipinfo_t DRM(devicelist)[] = {
#ifdef __FreeBSD__
DRIVER_MODULE(tdfx, pci, tdfx_driver, tdfx_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(tdfx, DV_TTY, NULL);
#endif /* __FreeBSD__ */
diff --git a/bsd/mga_drv.c b/bsd/mga_drv.c
index 8b69b41b..de0387f7 100644
--- a/bsd/mga_drv.c
+++ b/bsd/mga_drv.c
@@ -27,10 +27,10 @@
* Authors:
* Rickard E. (Rik) Faith <faith@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/mga_drv.c,v 1.4 2003/03/09 02:08:28 anholt Exp $
*/
-#include <sys/types.h>
-
#include "mga.h"
#include "drmP.h"
#include "drm.h"
@@ -63,4 +63,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_vm.h"
#include "drm_sysctl.h"
+#ifdef __FreeBSD__
DRIVER_MODULE(mga, pci, mga_driver, mga_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(mga, DV_TTY, NULL);
+#endif
diff --git a/bsd/r128_drv.c b/bsd/r128_drv.c
index 1a8046fb..28a2c85e 100644
--- a/bsd/r128_drv.c
+++ b/bsd/r128_drv.c
@@ -27,11 +27,10 @@
* Authors:
* Rickard E. (Rik) Faith <faith@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/r128_drv.c,v 1.4 2003/03/09 02:08:28 anholt Exp $
*/
-
-#include <sys/types.h>
-
#include "r128.h"
#include "drmP.h"
#include "drm.h"
@@ -83,4 +82,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_scatter.h"
#endif
+#ifdef __FreeBSD__
DRIVER_MODULE(r128, pci, r128_driver, r128_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(r128, DV_TTY, NULL);
+#endif /* __FreeBSD__ */
diff --git a/bsd/radeon_drv.c b/bsd/radeon_drv.c
index a253b9cb..2e7c5d66 100644
--- a/bsd/radeon_drv.c
+++ b/bsd/radeon_drv.c
@@ -25,10 +25,10 @@
*
* Authors:
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/radeon_drv.c,v 1.5 2003/03/11 01:38:17 anholt Exp $
*/
-#include <sys/types.h>
-
#include "radeon.h"
#include "drmP.h"
#include "drm.h"
@@ -39,38 +39,41 @@
#endif
drm_chipinfo_t DRM(devicelist)[] = {
- {0x1002, 0x4242, 1, "ATI Radeon BB AIW 8500DV (AGP)"},
- {0x1002, 0x4336, 1, "ATI Radeon Mobility"},
- {0x1002, 0x4964, 1, "ATI Radeon Id 9000"},
- {0x1002, 0x4965, 1, "ATI Radeon Ie 9000"},
- {0x1002, 0x4966, 1, "ATI Radeon If 9000"},
- {0x1002, 0x4967, 1, "ATI Radeon Ig 9000"},
- {0x1002, 0x496e, 1, "ATI Radeon Ig 9000"},
- {0x1002, 0x4C57, 1, "ATI Radeon LW Mobility 7 (AGP)"},
- {0x1002, 0x4C58, 1, "ATI Radeon LX Mobility 7 (AGP)"},
- {0x1002, 0x4C59, 1, "ATI Radeon LY Mobility 6 (AGP)"},
- {0x1002, 0x4C5A, 1, "ATI Radeon LZ Mobility 6 (AGP)"},
- {0x1002, 0x4C64, 1, "ATI Radeon Ld Mobility 9000 (AGP)"},
- {0x1002, 0x4C65, 1, "ATI Radeon Le Mobility 9000 (AGP)"},
- {0x1002, 0x4C66, 1, "ATI Radeon Lf Mobility 9000 (AGP)"},
- {0x1002, 0x4C67, 1, "ATI Radeon Lg Mobility 9000 (AGP)"},
- {0x1002, 0x5144, 1, "ATI Radeon QD R100 (AGP)"},
- {0x1002, 0x5145, 1, "ATI Radeon QE R100 (AGP)"},
- {0x1002, 0x5146, 1, "ATI Radeon QF R100 (AGP)"},
- {0x1002, 0x5147, 1, "ATI Radeon QG R100 (AGP)"},
- {0x1002, 0x5148, 1, "ATI Radeon QH FireGL 8x00 (AGP)"},
+ {0x1002, 0x4242, 1, "ATI Radeon BB R200 AIW 8500DV"},
+ {0x1002, 0x4336, 1, "ATI Radeon Mobility U1"},
+ {0x1002, 0x4964, 1, "ATI Radeon Id R250 9000"},
+ {0x1002, 0x4965, 1, "ATI Radeon Ie R250 9000"},
+ {0x1002, 0x4966, 1, "ATI Radeon If R250 9000"},
+ {0x1002, 0x4967, 1, "ATI Radeon Ig R250 9000"},
+ {0x1002, 0x4C57, 1, "ATI Radeon LW Mobility 7500 M7"},
+ {0x1002, 0x4C58, 1, "ATI Radeon LX RV200 Mobility FireGL 7800 M7"},
+ {0x1002, 0x4C59, 1, "ATI Radeon LY Mobility M6"},
+ {0x1002, 0x4C5A, 1, "ATI Radeon LZ Mobility M6"},
+ {0x1002, 0x4C64, 1, "ATI Radeon Ld R250 Mobility 9000 M9"},
+ {0x1002, 0x4C65, 1, "ATI Radeon Le R250 Mobility 9000 M9"},
+ {0x1002, 0x4C66, 1, "ATI Radeon Lf R250 Mobility 9000 M9"},
+ {0x1002, 0x4C67, 1, "ATI Radeon Lg R250 Mobility 9000 M9"},
+ {0x1002, 0x5144, 1, "ATI Radeon QD R100"},
+ {0x1002, 0x5145, 1, "ATI Radeon QE R100"},
+ {0x1002, 0x5146, 1, "ATI Radeon QF R100"},
+ {0x1002, 0x5147, 1, "ATI Radeon QG R100"},
+ {0x1002, 0x5148, 1, "ATI Radeon QH FireGL 8x00"},
{0x1002, 0x5149, 1, "ATI Radeon QI R200"},
{0x1002, 0x514A, 1, "ATI Radeon QJ R200"},
{0x1002, 0x514B, 1, "ATI Radeon QK R200"},
- {0x1002, 0x514C, 1, "ATI Radeon QL 8500 (AGP)"},
- {0x1002, 0x5157, 1, "ATI Radeon QW 7500 (AGP)"},
- {0x1002, 0x5158, 1, "ATI Radeon QX 7500 (AGP)"},
- {0x1002, 0x5159, 1, "ATI Radeon QY VE (AGP)"},
- {0x1002, 0x515A, 1, "ATI Radeon QZ VE (AGP)"},
+ {0x1002, 0x514C, 1, "ATI Radeon QL R200 8500 LE"},
+ {0x1002, 0x514D, 1, "ATI Radeon QM R200 9100"},
+ {0x1002, 0x514E, 1, "ATI Radeon QN R200 8500 LE"},
+ {0x1002, 0x514F, 1, "ATI Radeon QO R200 8500 LE"},
+ {0x1002, 0x5157, 1, "ATI Radeon QW RV200 7500"},
+ {0x1002, 0x5158, 1, "ATI Radeon QX RV200 7500"},
+ {0x1002, 0x5159, 1, "ATI Radeon QY RV100 VE"},
+ {0x1002, 0x515A, 1, "ATI Radeon QZ RV100 VE"},
{0x1002, 0x5168, 1, "ATI Radeon Qh R200"},
{0x1002, 0x5169, 1, "ATI Radeon Qi R200"},
{0x1002, 0x516A, 1, "ATI Radeon Qj R200"},
{0x1002, 0x516B, 1, "ATI Radeon Qk R200"},
+ {0x1002, 0x516C, 1, "ATI Radeon Ql R200"},
{0, 0, 0, NULL}
};
@@ -92,4 +95,8 @@ drm_chipinfo_t DRM(devicelist)[] = {
#include "drm_scatter.h"
#endif
+#ifdef __FreeBSD__
DRIVER_MODULE(DRIVER_NAME, pci, DRM(driver), DRM(devclass), 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(radeon, DV_TTY, NULL);
+#endif /* __FreeBSD__ */
diff --git a/bsd/tdfx_drv.c b/bsd/tdfx_drv.c
index 8bc8c57d..e10542f1 100644
--- a/bsd/tdfx_drv.c
+++ b/bsd/tdfx_drv.c
@@ -28,11 +28,10 @@
* Rickard E. (Rik) Faith <faith@valinux.com>
* Daryll Strauss <daryll@valinux.com>
* Gareth Hughes <gareth@valinux.com>
+ *
+ * $FreeBSD: src/sys/dev/drm/tdfx_drv.c,v 1.3 2003/03/09 02:08:28 anholt Exp $
*/
-
-#include <sys/types.h>
-
#include "tdfx.h"
#include "drmP.h"
@@ -96,4 +95,6 @@ drm_chipinfo_t DRM(devicelist)[] = {
#ifdef __FreeBSD__
DRIVER_MODULE(tdfx, pci, tdfx_driver, tdfx_devclass, 0, 0);
+#elif defined(__NetBSD__)
+CFDRIVER_DECL(tdfx, DV_TTY, NULL);
#endif /* __FreeBSD__ */
diff --git a/libdrm/xf86drmCompat.c b/libdrm/xf86drmCompat.c
index 6f938474..a30eacfc 100644
--- a/libdrm/xf86drmCompat.c
+++ b/libdrm/xf86drmCompat.c
@@ -26,7 +26,7 @@
* Jens Owen <jens@tungstengraphics.com>
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmCompat.c,v 1.1 2002/10/30 12:52:33 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.4 2001/08/27 17:40:59 dawes Exp $ */
#ifdef XFree86Server
# include "xf86.h"
diff --git a/linux/Makefile.linux b/linux/Makefile.linux
index 065d6f62..27601fef 100644
--- a/linux/Makefile.linux
+++ b/linux/Makefile.linux
@@ -40,7 +40,7 @@ SHELL=/bin/sh
# **** End of SMP/MODVERSIONS detection
-MODS = gamma.o tdfx.o r128.o radeon.o
+MODS = gamma.o trident_dri.o tdfx.o r128.o radeon.o
LIBS =
DRMTEMPLATES = drm_auth.h drm_bufs.h drm_context.h drm_dma.h drm_drawable.h \
@@ -55,6 +55,9 @@ GAMMAHEADERS = gamma_drv.h $(DRMHEADERS) $(DRMTEMPLATES)
TDFXOBJS = tdfx_drv.o
TDFXHEADERS = tdfx.h $(DRMHEADERS) $(DRMTEMPLATES)
+TRIDENTOBJS = trident_drv.o
+TRIDENTHEADERS = trident.h $(DRMHEADERS) $(DRMTEMPLATES)
+
R128OBJS = r128_drv.o r128_cce.o r128_state.o r128_irq.o
R128HEADERS = r128.h r128_drv.h r128_drm.h $(DRMHEADERS) $(DRMTEMPLATES)
R128SHARED = r128.h r128_drv.h r128_drm.h r128_cce.c r128_state.c r128_irq.c
@@ -246,6 +249,11 @@ tdfx_drv.o: tdfx_drv.c
tdfx.o: $(TDFXOBJS) $(LIBS)
$(LD) -r $^ -o $@
+trident_drv.o: trident_drv.c
+ $(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
+trident_dri.o: $(TRIDENTOBJS) $(LIBS)
+ $(LD) -r $^ -o $@
+
sis.o: $(SISOBJS) $(LIBS)
$(LD) -r $^ -o $@
diff --git a/linux/trident.h b/linux/trident.h
new file mode 100644
index 00000000..d7a379c1
--- /dev/null
+++ b/linux/trident.h
@@ -0,0 +1,41 @@
+/* trident.h -- Trident DRM template customization -*- linux-c -*-
+ * Created: Wed Feb 14 12:32:32 2001 by gareth@valinux.com
+ *
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef __TRIDENT_H__
+#define __TRIDENT_H__
+
+/* This remains constant for all DRM template files.
+ */
+#define DRM(x) trident_##x
+
+/* General customization:
+ */
+#define __HAVE_MTRR 1
+#define __HAVE_CTX_BITMAP 1
+#define __HAVE_AGP 1
+
+#endif
diff --git a/linux/trident_drv.c b/linux/trident_drv.c
new file mode 100644
index 00000000..a20faab1
--- /dev/null
+++ b/linux/trident_drv.c
@@ -0,0 +1,77 @@
+/* trident_drv.c -- trident driver -*- linux-c -*-
+ * Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
+ *
+ * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <linux/config.h>
+#include "trident.h"
+#include "drmP.h"
+
+#define DRIVER_AUTHOR "Alan Hourihane"
+
+#define DRIVER_NAME "trident_dri"
+#define DRIVER_DESC "Trident CyberBladeXP"
+#define DRIVER_DATE "20010216"
+
+#define DRIVER_MAJOR 1
+#define DRIVER_MINOR 0
+#define DRIVER_PATCHLEVEL 0
+
+#include "drm_auth.h"
+#include "drm_agpsupport.h"
+#include "drm_bufs.h"
+#include "drm_context.h"
+#include "drm_dma.h"
+#include "drm_drawable.h"
+#include "drm_drv.h"
+
+#ifndef MODULE
+/* DRM(options) is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO). It calls the insmod option
+ * routine, drm_parse_drm.
+ */
+
+/* JH- We have to hand expand the string ourselves because of the cpp. If
+ * anyone can think of a way that we can fit into the __setup macro without
+ * changing it, then please send the solution my way.
+ */
+static int __init trident_options( char *str )
+{
+ DRM(parse_options)( str );
+ return 1;
+}
+
+__setup( DRIVER_NAME "=", trident_options );
+#endif
+
+#include "drm_fops.h"
+#include "drm_init.h"
+#include "drm_ioctl.h"
+#include "drm_lock.h"
+#include "drm_memory.h"
+#include "drm_proc.h"
+#include "drm_vm.h"
+#include "drm_stub.h"