Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / sys / dev / drm / mga / mga.h
1 /* mga.h -- Matrox G200/G400 DRM template customization -*- linux-c -*-
2  * Created: Thu Jan 11 21:29:32 2001 by gareth@valinux.com
3  *
4  * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
5  * All Rights Reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a
8  * copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation
10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11  * and/or sell copies of the Software, and to permit persons to whom the
12  * Software is furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the next
15  * paragraph) shall be included in all copies or substantial portions of the
16  * Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24  * OTHER DEALINGS IN THE SOFTWARE.
25  *
26  * Authors:
27  *    Gareth Hughes <gareth@valinux.com>
28  *
29  * $FreeBSD: src/sys/dev/drm/mga.h,v 1.2.2.1 2003/04/26 07:05:29 anholt Exp $
30  * $DragonFly: src/sys/dev/drm/mga/Attic/mga.h,v 1.2 2003/06/17 04:28:24 dillon Exp $
31  */
32
33 #ifndef __MGA_H__
34 #define __MGA_H__
35
36 /* This remains constant for all DRM template files.
37  */
38 #define DRM(x) mga_##x
39
40 /* General customization:
41  */
42 #define __HAVE_AGP              1
43 #define __MUST_HAVE_AGP         1
44 #define __HAVE_MTRR             1
45 #define __HAVE_CTX_BITMAP       1
46
47 #define DRIVER_AUTHOR           "Gareth Hughes, VA Linux Systems Inc."
48
49 #define DRIVER_NAME             "mga"
50 #define DRIVER_DESC             "Matrox G200/G400"
51 #define DRIVER_DATE             "20021029"
52
53 #define DRIVER_MAJOR            3
54 #define DRIVER_MINOR            1
55 #define DRIVER_PATCHLEVEL       0
56
57 #define DRIVER_IOCTLS                                                      \
58         [DRM_IOCTL_NR(DRM_IOCTL_DMA)]         = { mga_dma_buffers, 1, 0 }, \
59         [DRM_IOCTL_NR(DRM_IOCTL_MGA_INIT)]    = { mga_dma_init,    1, 1 }, \
60         [DRM_IOCTL_NR(DRM_IOCTL_MGA_FLUSH)]   = { mga_dma_flush,   1, 0 }, \
61         [DRM_IOCTL_NR(DRM_IOCTL_MGA_RESET)]   = { mga_dma_reset,   1, 0 }, \
62         [DRM_IOCTL_NR(DRM_IOCTL_MGA_SWAP)]    = { mga_dma_swap,    1, 0 }, \
63         [DRM_IOCTL_NR(DRM_IOCTL_MGA_CLEAR)]   = { mga_dma_clear,   1, 0 }, \
64         [DRM_IOCTL_NR(DRM_IOCTL_MGA_VERTEX)]  = { mga_dma_vertex,  1, 0 }, \
65         [DRM_IOCTL_NR(DRM_IOCTL_MGA_INDICES)] = { mga_dma_indices, 1, 0 }, \
66         [DRM_IOCTL_NR(DRM_IOCTL_MGA_ILOAD)]   = { mga_dma_iload,   1, 0 }, \
67         [DRM_IOCTL_NR(DRM_IOCTL_MGA_BLIT)]    = { mga_dma_blit,    1, 0 }, \
68         [DRM_IOCTL_NR(DRM_IOCTL_MGA_GETPARAM)]= { mga_getparam,    1, 0 },
69
70 #define __HAVE_COUNTERS         3
71 #define __HAVE_COUNTER6         _DRM_STAT_IRQ
72 #define __HAVE_COUNTER7         _DRM_STAT_PRIMARY
73 #define __HAVE_COUNTER8         _DRM_STAT_SECONDARY
74
75 /* Driver customization:
76  */
77 #define DRIVER_PRETAKEDOWN() do {                                       \
78         if ( dev->dev_private ) mga_do_cleanup_dma( dev );              \
79 } while (0)
80
81 /* DMA customization:
82  */
83 #define __HAVE_DMA              1
84 #define __HAVE_DMA_IRQ          1
85 #define __HAVE_VBL_IRQ          1
86 #define __HAVE_SHARED_IRQ       1
87
88 #define __HAVE_DMA_QUIESCENT    1
89 #define DRIVER_DMA_QUIESCENT() do {                                     \
90         drm_mga_private_t *dev_priv = dev->dev_private;                 \
91         return mga_do_wait_for_idle( dev_priv );                        \
92 } while (0)
93
94 /* Buffer customization:
95  */
96 #define DRIVER_BUF_PRIV_T       drm_mga_buf_priv_t
97
98 #define DRIVER_AGP_BUFFERS_MAP( dev )                                   \
99         ((drm_mga_private_t *)((dev)->dev_private))->buffers
100
101 #endif