From 56bd9c207770d41a497f3e8237a1099dd9d4cd91 Mon Sep 17 00:00:00 2001 From: David Dawes Date: Mon, 30 Jul 2001 19:59:39 +0000 Subject: Merge the multihead-1-0-0 branch into the trunk, with the exception of the glide header files. The changes include: - Brian Paul's changes to the tdfx client-side 3D driver to make it dlopen() the correct glide library (Voodoo3 or Voodoo5). This allows both types of the glide library to co-exist, and allows Voodoo3/Voodoo5 cards to be mixed in multi-head configs. - DRM kernel driver changes to allow a driver to set up multiple instances (minor numbers), one for each card present that the driver supports. This is currently implemented and tested only for the tdfx DRM driver. - Add some missing missing includes. - Some log message cleanups. - Change the 2D tdfx driver to access VGA legacy registers via their PCI I/O space access points rather than their legacy addresses, and fix some problems with the way the VGA-related bits are initialised. Status: - With these changes, multi-head direct rendering works with multiple Voodoo3 and/or Voodoo5 cards. This has been tested with two PCI Voodoo3 cards and an AGP Voodoo5 card, and all permutations of those. Caveats: - Xinerama is not supported. If Xinerama is enabled, then direct rendering gets disabled. - The text mode on secondary screens will show junk after the X server exits. - On some hardware, starting the X server on multiple 3dfx cards will result in a hard lockup. One workaround is to enable APIC support in a uni-processor kernel, or use an SMP kernel. --- linux-core/tdfx_drv.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'linux-core/tdfx_drv.c') diff --git a/linux-core/tdfx_drv.c b/linux-core/tdfx_drv.c index b6c95498..94e5d41c 100644 --- a/linux-core/tdfx_drv.c +++ b/linux-core/tdfx_drv.c @@ -44,6 +44,15 @@ #define DRIVER_MINOR 0 #define DRIVER_PATCHLEVEL 0 +static u_int DRM(idlist)[] = { + 0x121A0003, /* Banshee */ + 0x121A0005, /* Voodoo3 */ + 0x121A0009, /* Voodoo5 */ + 0 +}; + +#define DRIVER_CARD_LIST DRM(idlist) + #include "drm_auth.h" #include "drm_bufs.h" -- cgit v1.2.3