blob: 29d195584224711129967abc7fce89cb8992d771 [file] [log] [blame]
David Dawes44aa4d62002-01-27 20:05:42 +00001/* tdfx_drv.c -- tdfx driver -*- linux-c -*-
Doug Rabsonfa0a35a2000-05-30 17:13:31 +00002 * Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
Doug Rabsonfa0a35a2000-05-30 17:13:31 +00003 *
4 * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
Doug Rabsond399dbc2000-06-13 17:38:09 +00005 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
Doug Rabsonfa0a35a2000-05-30 17:13:31 +00006 * All Rights Reserved.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
David Dawes44aa4d62002-01-27 20:05:42 +000014 *
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000015 * The above copyright notice and this permission notice (including the next
16 * paragraph) shall be included in all copies or substantial portions of the
17 * Software.
David Dawes44aa4d62002-01-27 20:05:42 +000018 *
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000019 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 * DEALINGS IN THE SOFTWARE.
David Dawes44aa4d62002-01-27 20:05:42 +000026 *
Doug Rabsond399dbc2000-06-13 17:38:09 +000027 * Authors:
28 * Rickard E. (Rik) Faith <faith@valinux.com>
29 * Daryll Strauss <daryll@valinux.com>
David Dawes44aa4d62002-01-27 20:05:42 +000030 * Gareth Hughes <gareth@valinux.com>
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000031 */
32
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000033
David Dawes44aa4d62002-01-27 20:05:42 +000034#include <sys/types.h>
35#include <sys/bus.h>
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000036#include <pci/pcivar.h>
David Dawes44aa4d62002-01-27 20:05:42 +000037#include <opt_drm_linux.h>
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000038
David Dawes44aa4d62002-01-27 20:05:42 +000039#include "tdfx.h"
40#include "drmP.h"
41
42#define DRIVER_AUTHOR "VA Linux Systems Inc."
43
44#define DRIVER_NAME "tdfx"
45#define DRIVER_DESC "3dfx Banshee/Voodoo3+"
46#define DRIVER_DATE "20010216"
47
48#define DRIVER_MAJOR 1
49#define DRIVER_MINOR 0
50#define DRIVER_PATCHLEVEL 0
51
52#ifndef PCI_VENDOR_ID_3DFX
53#define PCI_VENDOR_ID_3DFX 0x121A
54#endif
55#ifndef PCI_DEVICE_ID_3DFX_VOODOO5
56#define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009
57#endif
58#ifndef PCI_DEVICE_ID_3DFX_VOODOO4
59#define PCI_DEVICE_ID_3DFX_VOODOO4 0x0007
60#endif
61#ifndef PCI_DEVICE_ID_3DFX_VOODOO3_3000 /* Voodoo3 3000 */
62#define PCI_DEVICE_ID_3DFX_VOODOO3_3000 0x0005
63#endif
64#ifndef PCI_DEVICE_ID_3DFX_VOODOO3_2000 /* Voodoo3 3000 */
65#define PCI_DEVICE_ID_3DFX_VOODOO3_2000 0x0004
66#endif
67#ifndef PCI_DEVICE_ID_3DFX_BANSHEE
68#define PCI_DEVICE_ID_3DFX_BANSHEE 0x0003
Doug Rabsond399dbc2000-06-13 17:38:09 +000069#endif
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000070
David Dawes44aa4d62002-01-27 20:05:42 +000071/* List acquired from http://www.yourvote.com/pci/pcihdr.h and xc/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
72 * Please report to anholt@teleport.com inaccuracies or if a chip you have works that is marked unsupported here.
73 */
74drm_chipinfo_t DRM(devicelist)[] = {
75 {0x121a, 0x0003, 1, "3dfx Voodoo Banshee"},
76 {0x121a, 0x0004, 1, "3dfx Voodoo3 2000"},
77 {0x121a, 0x0005, 1, "3dfx Voodoo3 3000"},
78 {0x121a, 0x0007, 1, "3dfx Voodoo4"},
79 {0x121a, 0x0009, 1, "3dfx Voodoo5"},
80 {0, 0, 0, NULL}
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000081};
82
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000083
David Dawes44aa4d62002-01-27 20:05:42 +000084#include "drm_auth.h"
85#include "drm_bufs.h"
86#include "drm_context.h"
87#include "drm_dma.h"
88#include "drm_drawable.h"
89#include "drm_drv.h"
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000090
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000091
David Dawes44aa4d62002-01-27 20:05:42 +000092#include "drm_fops.h"
93#include "drm_init.h"
94#include "drm_ioctl.h"
95#include "drm_lock.h"
96#include "drm_memory.h"
97#include "drm_vm.h"
98#include "drm_sysctl.h"
Doug Rabsonfa0a35a2000-05-30 17:13:31 +000099
David Dawes44aa4d62002-01-27 20:05:42 +0000100DRIVER_MODULE(tdfx, pci, tdfx_driver, tdfx_devclass, 0, 0);