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

Subversion Repositories or1k

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* gamma_drv.h -- Private header for 3dlabs GMX 2000 driver -*- linux-c -*-
2
 * Created: Mon Jan  4 10:05:05 1999 by faith@precisioninsight.com
3
 *
4
 * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
5
 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6
 * 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:
14
 *
15
 * 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.
18
 *
19
 * 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.
26
 *
27
 * Authors:
28
 *    Rickard E. (Rik) Faith <faith@valinux.com>
29
 *
30
 */
31
 
32
#ifndef _GAMMA_DRV_H_
33
#define _GAMMA_DRV_H_
34
 
35
typedef struct drm_gamma_private {
36
        drm_gamma_sarea_t *sarea_priv;
37
        drm_map_t *sarea;
38
        drm_map_t *buffers;
39
        drm_map_t *mmio0;
40
        drm_map_t *mmio1;
41
        drm_map_t *mmio2;
42
        drm_map_t *mmio3;
43
} drm_gamma_private_t;
44
 
45
#define LOCK_TEST_WITH_RETURN( dev )                                    \
46
do {                                                                    \
47
        if ( !_DRM_LOCK_IS_HELD( dev->lock.hw_lock->lock ) ||           \
48
             dev->lock.pid != current->pid ) {                          \
49
                DRM_ERROR( "%s called without lock held\n",             \
50
                           __FUNCTION__ );                              \
51
                return -EINVAL;                                         \
52
        }                                                               \
53
} while (0)
54
 
55
                                /* gamma_dma.c */
56
extern int gamma_dma_init( struct inode *inode, struct file *filp,
57
                         unsigned int cmd, unsigned long arg );
58
extern int gamma_dma_copy( struct inode *inode, struct file *filp,
59
                         unsigned int cmd, unsigned long arg );
60
 
61
extern void gamma_dma_ready(drm_device_t *dev);
62
extern void gamma_dma_quiescent_single(drm_device_t *dev);
63
extern void gamma_dma_quiescent_dual(drm_device_t *dev);
64
 
65
                                /* gamma_dma.c */
66
extern int  gamma_dma_schedule(drm_device_t *dev, int locked);
67
extern int  gamma_dma(struct inode *inode, struct file *filp,
68
                      unsigned int cmd, unsigned long arg);
69
extern int  gamma_find_devices(void);
70
extern int  gamma_found(void);
71
 
72
#define GLINT_DRI_BUF_COUNT 256
73
 
74
#define GAMMA_OFF(reg)                                             \
75
        ((reg < 0x1000)                                            \
76
         ? reg                                                     \
77
         : ((reg < 0x10000)                                        \
78
            ? (reg - 0x1000)                                       \
79
            : ((reg < 0x11000)                                     \
80
               ? (reg - 0x10000)                                   \
81
               : (reg - 0x11000))))
82
 
83
#define GAMMA_BASE(reg)  ((unsigned long)                                    \
84
                          ((reg < 0x1000)    ? dev_priv->mmio0->handle :     \
85
                           ((reg < 0x10000)  ? dev_priv->mmio1->handle :     \
86
                            ((reg < 0x11000) ? dev_priv->mmio2->handle :     \
87
                                               dev_priv->mmio3->handle))))
88
#define GAMMA_ADDR(reg)  (GAMMA_BASE(reg) + GAMMA_OFF(reg))
89
#define GAMMA_DEREF(reg) *(__volatile__ int *)GAMMA_ADDR(reg)
90
#define GAMMA_READ(reg)  GAMMA_DEREF(reg)
91
#define GAMMA_WRITE(reg,val) do { GAMMA_DEREF(reg) = val; } while (0)
92
 
93
#define GAMMA_BROADCASTMASK    0x9378
94
#define GAMMA_COMMANDINTENABLE 0x0c48
95
#define GAMMA_DMAADDRESS       0x0028
96
#define GAMMA_DMACOUNT         0x0030
97
#define GAMMA_FILTERMODE       0x8c00
98
#define GAMMA_GCOMMANDINTFLAGS 0x0c50
99
#define GAMMA_GCOMMANDMODE     0x0c40
100
#define         GAMMA_QUEUED_DMA_MODE           1<<1
101
#define GAMMA_GCOMMANDSTATUS   0x0c60
102
#define GAMMA_GDELAYTIMER      0x0c38
103
#define GAMMA_GDMACONTROL      0x0060
104
#define         GAMMA_USE_AGP                   1<<1
105
#define GAMMA_GINTENABLE       0x0808
106
#define GAMMA_GINTFLAGS        0x0810
107
#define GAMMA_INFIFOSPACE      0x0018
108
#define GAMMA_OUTFIFOWORDS     0x0020
109
#define GAMMA_OUTPUTFIFO       0x2000
110
#define GAMMA_SYNC             0x8c40
111
#define GAMMA_SYNC_TAG         0x0188
112
#define GAMMA_PAGETABLEADDR    0x0C00
113
#define GAMMA_PAGETABLELENGTH  0x0C08
114
 
115
#define GAMMA_PASSTHROUGH       0x1FE
116
#define GAMMA_DMAADDRTAG        0x530
117
#define GAMMA_DMACOUNTTAG       0x531
118
#define GAMMA_COMMANDINTTAG     0x532
119
 
120
#endif

powered by: WebSVN 2.1.0

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