OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [char/] [drm/] [gamma.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* gamma.c -- 3dlabs GMX 2000 driver -*- linux-c -*-
2
 * Created: Mon Jan  4 08:58:31 1999 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
 * PRECISION INSIGHT 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 OTHER
24
 * DEALINGS IN THE SOFTWARE.
25
 *
26
 * Authors:
27
 *    Gareth Hughes <gareth@valinux.com>
28
 */
29
 
30
#ifndef __GAMMA_H__
31
#define __GAMMA_H__
32
 
33
/* This remains constant for all DRM template files.
34
 */
35
#define DRM(x) gamma_##x
36
 
37
/* General customization:
38
 */
39
#define __HAVE_MTRR                     1
40
 
41
#define DRIVER_AUTHOR           "VA Linux Systems Inc."
42
 
43
#define DRIVER_NAME             "gamma"
44
#define DRIVER_DESC             "3DLabs gamma"
45
#define DRIVER_DATE             "20010624"
46
 
47
#define DRIVER_MAJOR            2
48
#define DRIVER_MINOR            0
49
#define DRIVER_PATCHLEVEL       0
50
 
51
#define DRIVER_IOCTLS                                                     \
52
        [DRM_IOCTL_NR(DRM_IOCTL_DMA)]        = { gamma_dma,       1, 0 }, \
53
        [DRM_IOCTL_NR(DRM_IOCTL_GAMMA_INIT)] = { gamma_dma_init,  1, 1 }, \
54
        [DRM_IOCTL_NR(DRM_IOCTL_GAMMA_COPY)] = { gamma_dma_copy,  1, 1 }
55
 
56
#define IOCTL_TABLE_NAME        DRM(ioctls)
57
#define IOCTL_FUNC_NAME         DRM(ioctl)
58
 
59
#define __HAVE_COUNTERS         5
60
#define __HAVE_COUNTER6         _DRM_STAT_IRQ
61
#define __HAVE_COUNTER7         _DRM_STAT_DMA
62
#define __HAVE_COUNTER8         _DRM_STAT_PRIMARY
63
#define __HAVE_COUNTER9         _DRM_STAT_SPECIAL
64
#define __HAVE_COUNTER10        _DRM_STAT_MISSED
65
 
66
/* DMA customization:
67
 */
68
#define __HAVE_DMA                      1
69
#define __HAVE_AGP                      1
70
#define __MUST_HAVE_AGP                 0
71
#define __HAVE_OLD_DMA                  1
72
#define __HAVE_PCI_DMA                  1
73
 
74
#define __HAVE_MULTIPLE_DMA_QUEUES      1
75
#define __HAVE_DMA_WAITQUEUE            1
76
 
77
#define __HAVE_DMA_WAITLIST             1
78
#define __HAVE_DMA_FREELIST             1
79
 
80
#define __HAVE_DMA_FLUSH                1
81
#define __HAVE_DMA_SCHEDULE             1
82
 
83
#define __HAVE_DMA_READY                1
84
#define DRIVER_DMA_READY() do {                                         \
85
        gamma_dma_ready(dev);                                           \
86
} while (0)
87
 
88
#define __HAVE_DMA_QUIESCENT            1
89
#define DRIVER_DMA_QUIESCENT() do {                                     \
90
        /* FIXME ! */                                                   \
91
        gamma_dma_quiescent_single(dev);                                        \
92
        return 0;                                                        \
93
} while (0)
94
 
95
#define __HAVE_DMA_IRQ                  1
96
#define __HAVE_DMA_IRQ_BH               1
97
 
98
#if 1
99
#define DRIVER_PREINSTALL() do {                                        \
100
        drm_gamma_private_t *dev_priv =                                 \
101
                                (drm_gamma_private_t *)dev->dev_private;\
102
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
103
        GAMMA_WRITE( GAMMA_GCOMMANDMODE,        0x00000004 );           \
104
        GAMMA_WRITE( GAMMA_GDMACONTROL,         0x00000000 );           \
105
} while (0)
106
#define DRIVER_POSTINSTALL() do {                                       \
107
        drm_gamma_private_t *dev_priv =                                 \
108
                                (drm_gamma_private_t *)dev->dev_private;\
109
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
110
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 3) cpu_relax();           \
111
        GAMMA_WRITE( GAMMA_GINTENABLE,          0x00002001 );           \
112
        GAMMA_WRITE( GAMMA_COMMANDINTENABLE,    0x00000008 );           \
113
        GAMMA_WRITE( GAMMA_GDELAYTIMER,         0x00039090 );           \
114
} while (0)
115
#else
116
#define DRIVER_POSTINSTALL() do {                                       \
117
        drm_gamma_private_t *dev_priv =                                 \
118
                                (drm_gamma_private_t *)dev->dev_private;\
119
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
120
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
121
        GAMMA_WRITE( GAMMA_GINTENABLE,          0x00002000 );           \
122
        GAMMA_WRITE( GAMMA_COMMANDINTENABLE,    0x00000004 );           \
123
} while (0)
124
 
125
#define DRIVER_PREINSTALL() do {                                        \
126
        drm_gamma_private_t *dev_priv =                                 \
127
                                (drm_gamma_private_t *)dev->dev_private;\
128
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
129
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
130
        GAMMA_WRITE( GAMMA_GCOMMANDMODE,        GAMMA_QUEUED_DMA_MODE );\
131
        GAMMA_WRITE( GAMMA_GDMACONTROL,         0x00000000 );\
132
} while (0)
133
#endif
134
 
135
#define DRIVER_UNINSTALL() do {                                         \
136
        drm_gamma_private_t *dev_priv =                                 \
137
                                (drm_gamma_private_t *)dev->dev_private;\
138
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2) cpu_relax();           \
139
        while(GAMMA_READ(GAMMA_INFIFOSPACE) < 3) cpu_relax();           \
140
        GAMMA_WRITE( GAMMA_GDELAYTIMER,         0x00000000 );           \
141
        GAMMA_WRITE( GAMMA_COMMANDINTENABLE,    0x00000000 );           \
142
        GAMMA_WRITE( GAMMA_GINTENABLE,          0x00000000 );           \
143
} while (0)
144
 
145
#define DRIVER_AGP_BUFFERS_MAP( dev )                                   \
146
        ((drm_gamma_private_t *)((dev)->dev_private))->buffers
147
 
148
#endif /* __GAMMA_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.