mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-20 07:00:11 +01:00
Merge trunk into bsd-1-0-1-branch.
This commit is contained in:
parent
46f2275dab
commit
c279539328
49 changed files with 1065 additions and 858 deletions
108
libdrm/xf86drm.c
108
libdrm/xf86drm.c
|
|
@ -1,7 +1,8 @@
|
||||||
/* xf86drm.c -- User-level interface to DRM device
|
/* xf86drm.c -- User-level interface to DRM device
|
||||||
* Created: Tue Jan 5 08:16:21 1999 by faith@precisioninsight.com
|
* Created: Tue Jan 5 08:16:21 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,8 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Author: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
* Kevin E. Martin <martin@valinux.com>
|
||||||
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.10 2000/02/23 04:47:23 martin Exp $
|
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.10 2000/02/23 04:47:23 martin Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -71,10 +73,23 @@ extern int xf86RemoveSIGIOHandler(int fd);
|
||||||
#define MAP_FAILED ((void *)-1)
|
#define MAP_FAILED ((void *)-1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/sysmacros.h> /* for makedev() */
|
|
||||||
#include "xf86drm.h"
|
#include "xf86drm.h"
|
||||||
#include "drm.h"
|
#include "drm.h"
|
||||||
|
|
||||||
|
#define DRM_FIXED_DEVICE_MAJOR 145
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
|
#include <sys/sysmacros.h> /* for makedev() */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef makedev
|
||||||
|
/* This definition needs to be changed on
|
||||||
|
some systems if dev_t is a structure.
|
||||||
|
If there is a header file we can get it
|
||||||
|
from, there would be best. */
|
||||||
|
#define makedev(x,y) ((dev_t)(((x) << 8) | (y)))
|
||||||
|
#endif
|
||||||
|
|
||||||
static void *drmHashTable = NULL; /* Context switch callbacks */
|
static void *drmHashTable = NULL; /* Context switch callbacks */
|
||||||
|
|
||||||
typedef struct drmHashEntry {
|
typedef struct drmHashEntry {
|
||||||
|
|
@ -95,9 +110,16 @@ void drmFree(void *pt)
|
||||||
if (pt) _DRM_FREE(pt);
|
if (pt) _DRM_FREE(pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* drmStrdup can't use strdup(3), since it doesn't call _DRM_MALLOC... */
|
||||||
static char *drmStrdup(const char *s)
|
static char *drmStrdup(const char *s)
|
||||||
{
|
{
|
||||||
return s ? strdup(s) : NULL;
|
char *retval = NULL;
|
||||||
|
|
||||||
|
if (s) {
|
||||||
|
retval = _DRM_MALLOC(strlen(s)+1);
|
||||||
|
strcpy(retval, s);
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -134,7 +156,7 @@ static drmHashEntry *drmGetEntry(int fd)
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* drm_open is used to open the /dev/drm device */
|
/* drm_open is used to open the /dev/dri device */
|
||||||
|
|
||||||
static int drm_open(const char *file)
|
static int drm_open(const char *file)
|
||||||
{
|
{
|
||||||
|
|
@ -144,14 +166,6 @@ static int drm_open(const char *file)
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* drmAvailable looks for /proc/dri, and returns 1 if it is present. */
|
|
||||||
|
|
||||||
int drmAvailable(void)
|
|
||||||
{
|
|
||||||
if (!access("/proc/dri/0", R_OK)) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int drmOpenDevice(const char *path, long dev,
|
static int drmOpenDevice(const char *path, long dev,
|
||||||
mode_t mode, uid_t user, gid_t group)
|
mode_t mode, uid_t user, gid_t group)
|
||||||
{
|
{
|
||||||
|
|
@ -161,7 +175,16 @@ static int drmOpenDevice(const char *path, long dev,
|
||||||
struct stat st;
|
struct stat st;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!stat(path, &st) && st.st_rdev == dev) return drm_open(path);
|
/* Fiddle mode to remove execute bits */
|
||||||
|
mode &= ~(S_IXUSR|S_IXGRP|S_IXOTH);
|
||||||
|
|
||||||
|
if (!stat(path, &st) && st.st_rdev == dev) {
|
||||||
|
if (!geteuid()) {
|
||||||
|
chown(path, user, group);
|
||||||
|
chmod(path, mode);
|
||||||
|
}
|
||||||
|
return drm_open(path);
|
||||||
|
}
|
||||||
|
|
||||||
if (geteuid()) return DRM_ERR_NOT_ROOT;
|
if (geteuid()) return DRM_ERR_NOT_ROOT;
|
||||||
remove(path);
|
remove(path);
|
||||||
|
|
@ -174,6 +197,38 @@ static int drmOpenDevice(const char *path, long dev,
|
||||||
return drm_open(path);
|
return drm_open(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* drmAvailable looks for /proc/dri, and returns 1 if it is present. On
|
||||||
|
OSs that do not have a Linux-like /proc, this information will not be
|
||||||
|
available, and we'll have to create a device and check if the driver is
|
||||||
|
loaded that way. */
|
||||||
|
|
||||||
|
int drmAvailable(void)
|
||||||
|
{
|
||||||
|
char dev_name[64];
|
||||||
|
drmVersionPtr version;
|
||||||
|
int retval = 0;
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
if (!access("/proc/dri/0", R_OK)) return 1;
|
||||||
|
|
||||||
|
sprintf(dev_name, "/dev/dri-temp-%d", getpid());
|
||||||
|
|
||||||
|
remove(dev_name);
|
||||||
|
if ((fd = drmOpenDevice(dev_name, makedev(DRM_FIXED_DEVICE_MAJOR, 0),
|
||||||
|
S_IRUSR, geteuid(), getegid())) >= 0) {
|
||||||
|
/* Read version to make sure this is
|
||||||
|
actually a DRI device. */
|
||||||
|
if ((version = drmGetVersion(fd))) {
|
||||||
|
retval = 1;
|
||||||
|
drmFreeVersion(version);
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
remove(dev_name);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
static int drmOpenByBusid(const char *busid)
|
static int drmOpenByBusid(const char *busid)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -268,7 +323,24 @@ static int drmOpenByName(const char *name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else remove(dev_name);
|
} else {
|
||||||
|
drmVersionPtr version;
|
||||||
|
/* /proc/dri not available, possibly
|
||||||
|
because we aren't on a Linux system.
|
||||||
|
So, try to create the next device and
|
||||||
|
see if it's active. */
|
||||||
|
dev = makedev(DRM_FIXED_DEVICE_MAJOR, i);
|
||||||
|
if ((fd = drmOpenDevice(dev_name, dev, mode, user, group))) {
|
||||||
|
if ((version = drmGetVersion(fd))) {
|
||||||
|
if (!strcmp(version->name, name)) {
|
||||||
|
drmFreeVersion(version);
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
drmFreeVersion(version);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
remove(dev_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
@ -303,7 +375,7 @@ static void drmFreeKernelVersion(drm_version_t *v)
|
||||||
drmFree(v);
|
drmFree(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void drmCopyVersion(drmVersionPtr d, drm_version_t *s)
|
static void drmCopyVersion(drmVersionPtr d, const drm_version_t *s)
|
||||||
{
|
{
|
||||||
d->version_major = s->version_major;
|
d->version_major = s->version_major;
|
||||||
d->version_minor = s->version_minor;
|
d->version_minor = s->version_minor;
|
||||||
|
|
@ -317,7 +389,7 @@ static void drmCopyVersion(drmVersionPtr d, drm_version_t *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* drmVersion obtains the version information via an ioctl. Similar
|
/* drmVersion obtains the version information via an ioctl. Similar
|
||||||
* information is available via /proc/drm. */
|
* information is available via /proc/dri. */
|
||||||
|
|
||||||
drmVersionPtr drmGetVersion(int fd)
|
drmVersionPtr drmGetVersion(int fd)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
|
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.6 2000/02/23 04:47:27 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -528,6 +530,7 @@ typedef struct drm_device {
|
||||||
/* Misc. support (init.c) */
|
/* Misc. support (init.c) */
|
||||||
extern int drm_flags;
|
extern int drm_flags;
|
||||||
extern void drm_parse_options(char *s);
|
extern void drm_parse_options(char *s);
|
||||||
|
extern int drm_cpu_valid(void);
|
||||||
|
|
||||||
|
|
||||||
/* Device support (fops.c) */
|
/* Device support (fops.c) */
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,11 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* Keith Whitwell <keithw@precisioninsight.com>
|
* Keith Whitwell <keithw@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86$
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -37,6 +36,11 @@
|
||||||
|
|
||||||
#include <linux/interrupt.h> /* For task queue support */
|
#include <linux/interrupt.h> /* For task queue support */
|
||||||
|
|
||||||
|
/* in case we don't have a 2.3.99-pre6 kernel or later: */
|
||||||
|
#ifndef VM_DONTCOPY
|
||||||
|
#define VM_DONTCOPY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define I810_BUF_FREE 2
|
#define I810_BUF_FREE 2
|
||||||
#define I810_BUF_CLIENT 1
|
#define I810_BUF_CLIENT 1
|
||||||
#define I810_BUF_HARDWARE 0
|
#define I810_BUF_HARDWARE 0
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/i810_drv.c,v 1.1 2000/02/11 17:26:05 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -41,9 +40,9 @@ EXPORT_SYMBOL(i810_cleanup);
|
||||||
#define I810_NAME "i810"
|
#define I810_NAME "i810"
|
||||||
#define I810_DESC "Intel I810"
|
#define I810_DESC "Intel I810"
|
||||||
#define I810_DATE "19991213"
|
#define I810_DATE "19991213"
|
||||||
#define I810_MAJOR 0
|
#define I810_MAJOR 1
|
||||||
#define I810_MINOR 0
|
#define I810_MINOR 0
|
||||||
#define I810_PATCHLEVEL 1
|
#define I810_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t i810_device;
|
static drm_device_t i810_device;
|
||||||
drm_ctx_t i810_res_ctx;
|
drm_ctx_t i810_res_ctx;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/i810_drv.h,v 1.1 2000/02/11 17:26:05 dawes Exp $
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _I810_DRV_H_
|
#ifndef _I810_DRV_H_
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/mga_drv.c,v 1.1 2000/02/11 17:26:07 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -39,9 +39,9 @@ EXPORT_SYMBOL(mga_cleanup);
|
||||||
#define MGA_NAME "mga"
|
#define MGA_NAME "mga"
|
||||||
#define MGA_DESC "Matrox g200/g400"
|
#define MGA_DESC "Matrox g200/g400"
|
||||||
#define MGA_DATE "19991213"
|
#define MGA_DATE "19991213"
|
||||||
#define MGA_MAJOR 0
|
#define MGA_MAJOR 1
|
||||||
#define MGA_MINOR 0
|
#define MGA_MINOR 0
|
||||||
#define MGA_PATCHLEVEL 1
|
#define MGA_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t mga_device;
|
static drm_device_t mga_device;
|
||||||
drm_ctx_t mga_res_ctx;
|
drm_ctx_t mga_res_ctx;
|
||||||
|
|
@ -385,9 +385,9 @@ int mga_init(void)
|
||||||
DRM_DEBUG("doing agp init\n");
|
DRM_DEBUG("doing agp init\n");
|
||||||
dev->agp = drm_agp_init();
|
dev->agp = drm_agp_init();
|
||||||
if(dev->agp == NULL) {
|
if(dev->agp == NULL) {
|
||||||
DRM_DEBUG("The mga drm module requires the agpgart module"
|
DRM_INFO("The mga drm module requires the agpgart module"
|
||||||
" to function correctly\nPlease load the agpgart"
|
" to function correctly\nPlease load the agpgart"
|
||||||
" module before you load the mga module\n");
|
" module before you load the mga module\n");
|
||||||
drm_proc_cleanup();
|
drm_proc_cleanup();
|
||||||
misc_deregister(&mga_misc);
|
misc_deregister(&mga_misc);
|
||||||
mga_takedown(dev);
|
mga_takedown(dev);
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,10 +22,10 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
||||||
* Kevin E. Martin <kevin@precisioninsight.com>
|
* Kevin E. Martin <kevin@precisioninsight.com>
|
||||||
*
|
*
|
||||||
* $XFree86$
|
* $XFree86$
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -38,10 +38,10 @@ EXPORT_SYMBOL(r128_cleanup);
|
||||||
|
|
||||||
#define R128_NAME "r128"
|
#define R128_NAME "r128"
|
||||||
#define R128_DESC "r128"
|
#define R128_DESC "r128"
|
||||||
#define R128_DATE "20000422"
|
#define R128_DATE "20000607"
|
||||||
#define R128_MAJOR 0
|
#define R128_MAJOR 1
|
||||||
#define R128_MINOR 0
|
#define R128_MINOR 0
|
||||||
#define R128_PATCHLEVEL 5
|
#define R128_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t r128_device;
|
static drm_device_t r128_device;
|
||||||
drm_ctx_t r128_res_ctx;
|
drm_ctx_t r128_res_ctx;
|
||||||
|
|
@ -108,7 +108,7 @@ static drm_ioctl_desc_t r128_ioctls[] = {
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_RESET)] = { r128_eng_reset, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_RESET)] = { r128_eng_reset, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_FLUSH)] = { r128_eng_flush, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_FLUSH)] = { r128_eng_flush, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_PACKET)] = { r128_submit_pkt, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_PACKET)] = { r128_submit_pkt, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_CCEIDL)] = { r128_cce_idle, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_IDLE)] = { r128_cce_idle, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_VERTEX)] = { r128_vertex_buf, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_VERTEX)] = { r128_vertex_buf, 1, 0 },
|
||||||
};
|
};
|
||||||
#define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
|
#define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
|
||||||
|
|
@ -144,7 +144,7 @@ void cleanup_module(void)
|
||||||
*
|
*
|
||||||
* This is not currently supported, since it requires changes to
|
* This is not currently supported, since it requires changes to
|
||||||
* linux/init/main.c. */
|
* linux/init/main.c. */
|
||||||
|
|
||||||
|
|
||||||
void __init r128_setup(char *str, int *ints)
|
void __init r128_setup(char *str, int *ints)
|
||||||
{
|
{
|
||||||
|
|
@ -159,7 +159,7 @@ void __init r128_setup(char *str, int *ints)
|
||||||
static int r128_setup(drm_device_t *dev)
|
static int r128_setup(drm_device_t *dev)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
atomic_set(&dev->ioctl_count, 0);
|
atomic_set(&dev->ioctl_count, 0);
|
||||||
atomic_set(&dev->vma_count, 0);
|
atomic_set(&dev->vma_count, 0);
|
||||||
dev->buf_use = 0;
|
dev->buf_use = 0;
|
||||||
|
|
@ -202,7 +202,7 @@ static int r128_setup(drm_device_t *dev)
|
||||||
|
|
||||||
dev->ctx_start = 0;
|
dev->ctx_start = 0;
|
||||||
dev->lck_start = 0;
|
dev->lck_start = 0;
|
||||||
|
|
||||||
dev->buf_rp = dev->buf;
|
dev->buf_rp = dev->buf;
|
||||||
dev->buf_wp = dev->buf;
|
dev->buf_wp = dev->buf;
|
||||||
dev->buf_end = dev->buf + DRM_BSZ;
|
dev->buf_end = dev->buf + DRM_BSZ;
|
||||||
|
|
@ -211,15 +211,15 @@ static int r128_setup(drm_device_t *dev)
|
||||||
init_waitqueue_head(&dev->buf_writers);
|
init_waitqueue_head(&dev->buf_writers);
|
||||||
|
|
||||||
r128_res_ctx.handle=-1;
|
r128_res_ctx.handle=-1;
|
||||||
|
|
||||||
DRM_DEBUG("\n");
|
DRM_DEBUG("\n");
|
||||||
|
|
||||||
/* The kernel's context could be created here, but is now created
|
/* The kernel's context could be created here, but is now created
|
||||||
in drm_dma_enqueue. This is more resource-efficient for
|
in drm_dma_enqueue. This is more resource-efficient for
|
||||||
hardware that does not do DMA, but may mean that
|
hardware that does not do DMA, but may mean that
|
||||||
drm_select_queue fails between the time the interrupt is
|
drm_select_queue fails between the time the interrupt is
|
||||||
initialized and the time the queues are initialized. */
|
initialized and the time the queues are initialized. */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -235,12 +235,12 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
|
|
||||||
down(&dev->struct_sem);
|
down(&dev->struct_sem);
|
||||||
del_timer(&dev->timer);
|
del_timer(&dev->timer);
|
||||||
|
|
||||||
if (dev->devname) {
|
if (dev->devname) {
|
||||||
drm_free(dev->devname, strlen(dev->devname)+1, DRM_MEM_DRIVER);
|
drm_free(dev->devname, strlen(dev->devname)+1, DRM_MEM_DRIVER);
|
||||||
dev->devname = NULL;
|
dev->devname = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->unique) {
|
if (dev->unique) {
|
||||||
drm_free(dev->unique, strlen(dev->unique)+1, DRM_MEM_DRIVER);
|
drm_free(dev->unique, strlen(dev->unique)+1, DRM_MEM_DRIVER);
|
||||||
dev->unique = NULL;
|
dev->unique = NULL;
|
||||||
|
|
@ -260,7 +260,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
if (dev->agp) {
|
if (dev->agp) {
|
||||||
drm_agp_mem_t *entry;
|
drm_agp_mem_t *entry;
|
||||||
drm_agp_mem_t *nexte;
|
drm_agp_mem_t *nexte;
|
||||||
|
|
||||||
/* Remove AGP resources, but leave dev->agp
|
/* Remove AGP resources, but leave dev->agp
|
||||||
intact until r128_cleanup is called. */
|
intact until r128_cleanup is called. */
|
||||||
for (entry = dev->agp->memory; entry; entry = nexte) {
|
for (entry = dev->agp->memory; entry; entry = nexte) {
|
||||||
|
|
@ -270,15 +270,15 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS);
|
drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS);
|
||||||
}
|
}
|
||||||
dev->agp->memory = NULL;
|
dev->agp->memory = NULL;
|
||||||
|
|
||||||
if (dev->agp->acquired && drm_agp.release)
|
if (dev->agp->acquired && drm_agp.release)
|
||||||
(*drm_agp.release)();
|
(*drm_agp.release)();
|
||||||
|
|
||||||
dev->agp->acquired = 0;
|
dev->agp->acquired = 0;
|
||||||
dev->agp->enabled = 0;
|
dev->agp->enabled = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Clear vma list (only built for debugging) */
|
/* Clear vma list (only built for debugging) */
|
||||||
if (dev->vmalist) {
|
if (dev->vmalist) {
|
||||||
for (vma = dev->vmalist; vma; vma = vma_next) {
|
for (vma = dev->vmalist; vma; vma = vma_next) {
|
||||||
|
|
@ -287,7 +287,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
}
|
}
|
||||||
dev->vmalist = NULL;
|
dev->vmalist = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear map area and mtrr information */
|
/* Clear map area and mtrr information */
|
||||||
if (dev->maplist) {
|
if (dev->maplist) {
|
||||||
for (i = 0; i < dev->map_count; i++) {
|
for (i = 0; i < dev->map_count; i++) {
|
||||||
|
|
@ -325,7 +325,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
dev->maplist = NULL;
|
dev->maplist = NULL;
|
||||||
dev->map_count = 0;
|
dev->map_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drm_dma_takedown(dev);
|
drm_dma_takedown(dev);
|
||||||
|
|
||||||
dev->queue_count = 0;
|
dev->queue_count = 0;
|
||||||
|
|
@ -335,7 +335,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
wake_up_interruptible(&dev->lock.lock_queue);
|
wake_up_interruptible(&dev->lock.lock_queue);
|
||||||
}
|
}
|
||||||
up(&dev->struct_sem);
|
up(&dev->struct_sem);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -352,7 +352,7 @@ int r128_init(void)
|
||||||
memset((void *)dev, 0, sizeof(*dev));
|
memset((void *)dev, 0, sizeof(*dev));
|
||||||
dev->count_lock = SPIN_LOCK_UNLOCKED;
|
dev->count_lock = SPIN_LOCK_UNLOCKED;
|
||||||
sema_init(&dev->struct_sem, 1);
|
sema_init(&dev->struct_sem, 1);
|
||||||
|
|
||||||
#ifdef MODULE
|
#ifdef MODULE
|
||||||
drm_parse_options(r128);
|
drm_parse_options(r128);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -404,7 +404,7 @@ void r128_cleanup(void)
|
||||||
drm_device_t *dev = &r128_device;
|
drm_device_t *dev = &r128_device;
|
||||||
|
|
||||||
DRM_DEBUG("\n");
|
DRM_DEBUG("\n");
|
||||||
|
|
||||||
drm_proc_cleanup();
|
drm_proc_cleanup();
|
||||||
if (misc_deregister(&r128_misc)) {
|
if (misc_deregister(&r128_misc)) {
|
||||||
DRM_ERROR("Cannot unload module\n");
|
DRM_ERROR("Cannot unload module\n");
|
||||||
|
|
@ -460,7 +460,7 @@ int r128_open(struct inode *inode, struct file *filp)
|
||||||
{
|
{
|
||||||
drm_device_t *dev = &r128_device;
|
drm_device_t *dev = &r128_device;
|
||||||
int retcode = 0;
|
int retcode = 0;
|
||||||
|
|
||||||
DRM_DEBUG("open_count = %d\n", dev->open_count);
|
DRM_DEBUG("open_count = %d\n", dev->open_count);
|
||||||
if (!(retcode = drm_open_helper(inode, filp, dev))) {
|
if (!(retcode = drm_open_helper(inode, filp, dev))) {
|
||||||
MOD_INC_USE_COUNT;
|
MOD_INC_USE_COUNT;
|
||||||
|
|
@ -517,7 +517,7 @@ int r128_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
atomic_inc(&dev->ioctl_count);
|
atomic_inc(&dev->ioctl_count);
|
||||||
atomic_inc(&dev->total_ioctl);
|
atomic_inc(&dev->total_ioctl);
|
||||||
++priv->ioctl_count;
|
++priv->ioctl_count;
|
||||||
|
|
||||||
DRM_DEBUG("pid = %d, cmd = 0x%02x, nr = 0x%02x, dev 0x%x, auth = %d\n",
|
DRM_DEBUG("pid = %d, cmd = 0x%02x, nr = 0x%02x, dev 0x%x, auth = %d\n",
|
||||||
current->pid, cmd, nr, dev->device, priv->authenticated);
|
current->pid, cmd, nr, dev->device, priv->authenticated);
|
||||||
|
|
||||||
|
|
@ -537,7 +537,7 @@ int r128_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
retcode = (func)(inode, filp, cmd, arg);
|
retcode = (func)(inode, filp, cmd, arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_dec(&dev->ioctl_count);
|
atomic_dec(&dev->ioctl_count);
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
@ -574,7 +574,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
if (lock.context < 0 || lock.context >= dev->queue_count)
|
if (lock.context < 0 || lock.context >= dev->queue_count)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
#if 0
|
#if 0
|
||||||
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
|
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
|
||||||
|
|
@ -586,7 +586,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
/* Can't take lock if we just had it and
|
/* Can't take lock if we just had it and
|
||||||
there is contention. */
|
there is contention. */
|
||||||
DRM_DEBUG("%d (pid %d) delayed j=%d dev=%d jiffies=%d\n",
|
DRM_DEBUG("%d (pid %d) delayed j=%d dev=%d jiffies=%d\n",
|
||||||
lock.context, current->pid, j,
|
lock.context, current->pid, j,
|
||||||
dev->lock.lock_time, jiffies);
|
dev->lock.lock_time, jiffies);
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
current->policy |= SCHED_YIELD;
|
current->policy |= SCHED_YIELD;
|
||||||
|
|
@ -609,7 +609,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
atomic_inc(&dev->total_locks);
|
atomic_inc(&dev->total_locks);
|
||||||
break; /* Got lock */
|
break; /* Got lock */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Contention */
|
/* Contention */
|
||||||
atomic_inc(&dev->total_sleeps);
|
atomic_inc(&dev->total_sleeps);
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
|
|
@ -665,7 +665,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
DRM_ERROR("pid = %5d, old counter = %5ld\n",
|
DRM_ERROR("pid = %5d, old counter = %5ld\n",
|
||||||
current->pid, current->counter);
|
current->pid, current->counter);
|
||||||
#endif
|
#endif
|
||||||
if (lock.context != r128_res_ctx.handle) {
|
if (lock.context != r128_res_ctx.handle) {
|
||||||
|
|
@ -683,7 +683,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
#if DRM_DMA_HISTOGRAM
|
#if DRM_DMA_HISTOGRAM
|
||||||
atomic_inc(&dev->histo.lacq[drm_histogram_slot(get_cycles() - start)]);
|
atomic_inc(&dev->histo.lacq[drm_histogram_slot(get_cycles() - start)]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -696,7 +696,7 @@ int r128_unlock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
drm_lock_t lock;
|
drm_lock_t lock;
|
||||||
|
|
||||||
copy_from_user_ret(&lock, (drm_lock_t *)arg, sizeof(lock), -EFAULT);
|
copy_from_user_ret(&lock, (drm_lock_t *)arg, sizeof(lock), -EFAULT);
|
||||||
|
|
||||||
if (lock.context == DRM_KERNEL_CONTEXT) {
|
if (lock.context == DRM_KERNEL_CONTEXT) {
|
||||||
DRM_ERROR("Process %d using kernel context %d\n",
|
DRM_ERROR("Process %d using kernel context %d\n",
|
||||||
current->pid, lock.context);
|
current->pid, lock.context);
|
||||||
|
|
@ -732,6 +732,6 @@ int r128_unlock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
schedule_timeout(10);
|
schedule_timeout(10);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* tdfx.c -- tdfx driver -*- linux-c -*-
|
/* tdfx.c -- tdfx driver -*- linux-c -*-
|
||||||
* Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
|
* Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
|
||||||
* Revised: Tue Oct 12 08:51:35 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.3 2000/02/23 04:47:31 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
|
* Daryll Strauss <daryll@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -37,9 +39,9 @@ EXPORT_SYMBOL(tdfx_cleanup);
|
||||||
#define TDFX_NAME "tdfx"
|
#define TDFX_NAME "tdfx"
|
||||||
#define TDFX_DESC "tdfx"
|
#define TDFX_DESC "tdfx"
|
||||||
#define TDFX_DATE "19991009"
|
#define TDFX_DATE "19991009"
|
||||||
#define TDFX_MAJOR 0
|
#define TDFX_MAJOR 1
|
||||||
#define TDFX_MINOR 0
|
#define TDFX_MINOR 0
|
||||||
#define TDFX_PATCHLEVEL 1
|
#define TDFX_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t tdfx_device;
|
static drm_device_t tdfx_device;
|
||||||
drm_ctx_t tdfx_res_ctx;
|
drm_ctx_t tdfx_res_ctx;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
# Makefile -- For the Direct Rendering Manager module (drm)
|
# Makefile -- For the Direct Rendering Manager module (drm)
|
||||||
# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
|
# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
|
||||||
#
|
#
|
||||||
# Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
# Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
# Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,8 +24,22 @@
|
||||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
# DEALINGS IN THE SOFTWARE.
|
# DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.6 2000/02/23 04:47:25 martin Exp $
|
#
|
||||||
#
|
# ***** NOTE NOTE NOTE NOTE NOTE *****
|
||||||
|
# To override the automatic Linux source tree determination, pass the
|
||||||
|
# pathname for the kernel that you want to compile on the command line,
|
||||||
|
# like this:
|
||||||
|
# make TREE=/usr/my-kernel-tree/include
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# ***** NOTE NOTE NOTE NOTE NOTE *****
|
||||||
|
# Because some distributions patch 2.2.x kernels to make kill_fasync have
|
||||||
|
# three parameters, this script tries to determine, via the examination of
|
||||||
|
# header files, if your kernel has been patched. If this detection is
|
||||||
|
# incorrect, you can override the value on the command line, like this:
|
||||||
|
# make PARAMS=2
|
||||||
|
# or
|
||||||
|
# make PARAMS=3
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|
||||||
|
|
@ -96,11 +111,6 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# To override this determination, pass the path on the make command line:
|
|
||||||
# make TREE=/usr/my-kernel-tree/include
|
|
||||||
# or hardcode a value for TREE here:
|
|
||||||
# TREE:=/usr/include
|
|
||||||
|
|
||||||
ifeq ($(TREE),0)
|
ifeq ($(TREE),0)
|
||||||
all:; @echo Error: Could not locate kernel tree in $A $B $C
|
all:; @echo Error: Could not locate kernel tree in $A $B $C
|
||||||
else
|
else
|
||||||
|
|
@ -110,6 +120,8 @@ MODVERSIONS := $(shell gcc -E -I $(TREE) picker.c 2>/dev/null \
|
||||||
| grep -s 'MODVERSIONS = ' | cut -d' ' -f3)
|
| grep -s 'MODVERSIONS = ' | cut -d' ' -f3)
|
||||||
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
|
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
|
||||||
| grep -s 'AGP = ' | cut -d' ' -f3)
|
| grep -s 'AGP = ' | cut -d' ' -f3)
|
||||||
|
PARAMS := $(shell if fgrep kill_fasync $(TREE)/linux/fs.h \
|
||||||
|
| fgrep -q band; then echo 3; else echo 2; fi)
|
||||||
ifeq ($(AGP),0)
|
ifeq ($(AGP),0)
|
||||||
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
|
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
|
||||||
| grep -s 'AGP_MODULE = ' | cut -d' ' -f3)
|
| grep -s 'AGP_MODULE = ' | cut -d' ' -f3)
|
||||||
|
|
@ -127,8 +139,9 @@ I810OBJS= i810_drv.o i810_dma.o i810_bufs.o i810_context.o
|
||||||
I810HEADERS= i810_drv.h $(DRMHEADERS)
|
I810HEADERS= i810_drv.h $(DRMHEADERS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all::;@echo KERNEL HEADERS IN $(TREE): SMP=${SMP} MODVERSIONS=${MODVERSIONS} \
|
all::;@echo === KERNEL HEADERS IN $(TREE)
|
||||||
AGP=${AGP}
|
all::;@echo === SMP=${SMP} MODVERSIONS=${MODVERSIONS} AGP=${AGP}
|
||||||
|
all::;@echo === kill_fasync has $(PARAMS) parameters
|
||||||
all:: $(LIBS) $(MODS) $(PROGS)
|
all:: $(LIBS) $(MODS) $(PROGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -141,7 +154,9 @@ endif
|
||||||
ifeq ($(MODVERSIONS),1)
|
ifeq ($(MODVERSIONS),1)
|
||||||
MODCFLAGS += -DMODVERSIONS -include $(TREE)/linux/modversions.h
|
MODCFLAGS += -DMODVERSIONS -include $(TREE)/linux/modversions.h
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(PARAMS),3)
|
||||||
|
MODCFLAGS += -DKILLFASYNCHASTHREEPARAMETERS
|
||||||
|
endif
|
||||||
|
|
||||||
# **** End of configuration
|
# **** End of configuration
|
||||||
|
|
||||||
|
|
@ -178,7 +193,7 @@ ChangeLog:
|
||||||
|
|
||||||
# .o files are used for modules
|
# .o files are used for modules
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CC) $(MODCFLAGS) -c $< -o $@
|
$(CC) $(MODCFLAGS) -I$(TREE) -c $< -o $@
|
||||||
|
|
||||||
%.po: %.c
|
%.po: %.c
|
||||||
$(CC) $(PRGCFLAGS) -DDRM_USE_MALLOC -c $< -o $@
|
$(CC) $(PRGCFLAGS) -DDRM_USE_MALLOC -c $< -o $@
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 09:56:45 1999 by faith@precisioninsight.com
|
* Created: Mon Dec 13 09:56:45 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,9 +24,7 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Author: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Author: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/agpsupport.c,v 1.1 2000/02/11 17:26:02 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* auth.c -- IOCTLs for authentication -*- linux-c -*-
|
/* auth.c -- IOCTLs for authentication -*- linux-c -*-
|
||||||
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 11:31:48 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.2 2000/02/23 04:47:25 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -44,7 +45,6 @@ static drm_file_t *drm_find_file(drm_device_t *dev, drm_magic_t magic)
|
||||||
|
|
||||||
down(&dev->struct_sem);
|
down(&dev->struct_sem);
|
||||||
for (pt = dev->magiclist[hash].head; pt; pt = pt->next) {
|
for (pt = dev->magiclist[hash].head; pt; pt = pt->next) {
|
||||||
if (pt->priv->authenticated) continue;
|
|
||||||
if (pt->magic == magic) {
|
if (pt->magic == magic) {
|
||||||
retval = pt->priv;
|
retval = pt->priv;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* bufs.c -- IOCTLs to manage buffers -*- linux-c -*-
|
/* bufs.c -- IOCTLs to manage buffers -*- linux-c -*-
|
||||||
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
||||||
* Revised: Mon Feb 14 00:14:11 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,11 +24,13 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.5 2000/02/23 04:47:25 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define __NO_VERSION__
|
#define __NO_VERSION__
|
||||||
|
#include <linux/config.h>
|
||||||
#include "drmP.h"
|
#include "drmP.h"
|
||||||
#include "linux/un.h"
|
#include "linux/un.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* context.c -- IOCTLs for contexts and DMA queues -*- linux-c -*-
|
/* context.c -- IOCTLs for contexts and DMA queues -*- linux-c -*-
|
||||||
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 11:32:09 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.2 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* ctxbitmap.c -- Context bitmap management -*- linux-c -*-
|
/* ctxbitmap.c -- Context bitmap management -*- linux-c -*-
|
||||||
* Created: Thu Jan 6 03:56:42 2000 by jhartmann@precisioninsight.com
|
* Created: Thu Jan 6 03:56:42 2000 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,9 +24,7 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Author: Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Author: Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ctxbitmap.c,v 1.1 2000/02/11 17:26:02 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* dma.c -- DMA IOCTL and function support -*- linux-c -*-
|
/* dma.c -- DMA IOCTL and function support -*- linux-c -*-
|
||||||
* Created: Fri Mar 19 14:30:16 1999 by faith@precisioninsight.com
|
* Created: Fri Mar 19 14:30:16 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sun Feb 13 23:19:45 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.5 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinuxa.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* drawable.c -- IOCTLs for drawables -*- linux-c -*-
|
/* drawable.c -- IOCTLs for drawables -*- linux-c -*-
|
||||||
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 09:27:03 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.2 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
16
linux/drm.h
16
linux/drm.h
|
|
@ -1,7 +1,8 @@
|
||||||
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -10,11 +11,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,8 +23,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
* Acknowledgements:
|
* Acknowledgements:
|
||||||
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
||||||
|
|
@ -60,7 +62,7 @@ typedef unsigned int drm_context_t;
|
||||||
typedef unsigned int drm_drawable_t;
|
typedef unsigned int drm_drawable_t;
|
||||||
typedef unsigned int drm_magic_t;
|
typedef unsigned int drm_magic_t;
|
||||||
|
|
||||||
/* Warning: If you change this structure, make sure you change
|
/* Warning: If you change this structure, make sure you change
|
||||||
* XF86DRIClipRectRec in the server as well */
|
* XF86DRIClipRectRec in the server as well */
|
||||||
|
|
||||||
typedef struct drm_clip_rect {
|
typedef struct drm_clip_rect {
|
||||||
|
|
@ -356,7 +358,7 @@ typedef struct drm_agp_info {
|
||||||
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
||||||
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
||||||
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
||||||
#define DRM_IOCTL_R128_CCEIDL DRM_IO( 0x43)
|
#define DRM_IOCTL_R128_IDLE DRM_IO( 0x43)
|
||||||
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
||||||
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
|
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.6 2000/02/23 04:47:27 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -528,6 +530,7 @@ typedef struct drm_device {
|
||||||
/* Misc. support (init.c) */
|
/* Misc. support (init.c) */
|
||||||
extern int drm_flags;
|
extern int drm_flags;
|
||||||
extern void drm_parse_options(char *s);
|
extern void drm_parse_options(char *s);
|
||||||
|
extern int drm_cpu_valid(void);
|
||||||
|
|
||||||
|
|
||||||
/* Device support (fops.c) */
|
/* Device support (fops.c) */
|
||||||
|
|
|
||||||
19
linux/fops.c
19
linux/fops.c
|
|
@ -1,8 +1,8 @@
|
||||||
/* fops.c -- File operations for DRM -*- linux-c -*-
|
/* fops.c -- File operations for DRM -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Dec 3 10:26:26 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,8 +23,10 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.6 2000/02/23 04:47:27 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
|
* Daryll Strauss <daryll@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -40,6 +42,7 @@ int drm_open_helper(struct inode *inode, struct file *filp, drm_device_t *dev)
|
||||||
drm_file_t *priv;
|
drm_file_t *priv;
|
||||||
|
|
||||||
if (filp->f_flags & O_EXCL) return -EBUSY; /* No exclusive opens */
|
if (filp->f_flags & O_EXCL) return -EBUSY; /* No exclusive opens */
|
||||||
|
if (!drm_cpu_valid()) return -EINVAL;
|
||||||
|
|
||||||
DRM_DEBUG("pid = %d, minor = %d\n", current->pid, minor);
|
DRM_DEBUG("pid = %d, minor = %d\n", current->pid, minor);
|
||||||
|
|
||||||
|
|
@ -211,11 +214,15 @@ int drm_write_string(drm_device_t *dev, const char *s)
|
||||||
send -= count;
|
send -= count;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < 0x02020e || \
|
#if LINUX_VERSION_CODE < 0x020315 && !defined(KILLFASYNCHASTHREEPARAMETERS)
|
||||||
( LINUX_VERSION_CODE > 0x020300 && LINUX_VERSION_CODE < 0x020315 )
|
/* The extra parameter to kill_fasync was added in 2.3.21, and is
|
||||||
|
_not_ present in _stock_ 2.2.14 and 2.2.15. However, some
|
||||||
|
distributions patch 2.2.x kernels to add this parameter. The
|
||||||
|
Makefile.linux attempts to detect this addition and defines
|
||||||
|
KILLFASYNCHASTHREEPARAMETERS if three parameters are found. */
|
||||||
if (dev->buf_async) kill_fasync(dev->buf_async, SIGIO);
|
if (dev->buf_async) kill_fasync(dev->buf_async, SIGIO);
|
||||||
#else
|
#else
|
||||||
/* Parameter added in 2.2.14 and 2.3.21 */
|
/* Parameter added in 2.3.21 */
|
||||||
if (dev->buf_async) kill_fasync(dev->buf_async, SIGIO, POLL_IN);
|
if (dev->buf_async) kill_fasync(dev->buf_async, SIGIO, POLL_IN);
|
||||||
#endif
|
#endif
|
||||||
DRM_DEBUG("waking\n");
|
DRM_DEBUG("waking\n");
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* gamma_dma.c -- DMA support for GMX 2000 -*- linux-c -*-
|
/* gamma_dma.c -- DMA support for GMX 2000 -*- linux-c -*-
|
||||||
* Created: Fri Mar 19 14:30:16 1999 by faith@precisioninsight.com
|
* Created: Fri Mar 19 14:30:16 1999 by faith@precisioninsight.com
|
||||||
* Revised: Thu Sep 16 12:55:37 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,8 +23,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.2 2000/02/23 04:47:28 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -87,13 +88,31 @@ static inline void gamma_dma_dispatch(drm_device_t *dev, unsigned long address,
|
||||||
GAMMA_WRITE(GAMMA_DMACOUNT, length / 4);
|
GAMMA_WRITE(GAMMA_DMACOUNT, length / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void gamma_dma_quiescent(drm_device_t *dev)
|
static inline void gamma_dma_quiescent_single(drm_device_t *dev)
|
||||||
{
|
{
|
||||||
while (GAMMA_READ(GAMMA_DMACOUNT))
|
while (GAMMA_READ(GAMMA_DMACOUNT))
|
||||||
;
|
;
|
||||||
while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3)
|
while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
GAMMA_WRITE(GAMMA_FILTERMODE, 1 << 10);
|
||||||
|
GAMMA_WRITE(GAMMA_SYNC, 0);
|
||||||
|
|
||||||
|
do {
|
||||||
|
while (!GAMMA_READ(GAMMA_OUTFIFOWORDS))
|
||||||
|
;
|
||||||
|
} while (GAMMA_READ(GAMMA_OUTPUTFIFO) != GAMMA_SYNC_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void gamma_dma_quiescent_dual(drm_device_t *dev)
|
||||||
|
{
|
||||||
|
while (GAMMA_READ(GAMMA_DMACOUNT))
|
||||||
|
;
|
||||||
|
while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3)
|
||||||
|
;
|
||||||
|
|
||||||
GAMMA_WRITE(GAMMA_BROADCASTMASK, 3);
|
GAMMA_WRITE(GAMMA_BROADCASTMASK, 3);
|
||||||
|
|
||||||
GAMMA_WRITE(GAMMA_FILTERMODE, 1 << 10);
|
GAMMA_WRITE(GAMMA_FILTERMODE, 1 << 10);
|
||||||
GAMMA_WRITE(GAMMA_SYNC, 0);
|
GAMMA_WRITE(GAMMA_SYNC, 0);
|
||||||
|
|
||||||
|
|
@ -103,7 +122,6 @@ static inline void gamma_dma_quiescent(drm_device_t *dev)
|
||||||
;
|
;
|
||||||
} while (GAMMA_READ(GAMMA_OUTPUTFIFO) != GAMMA_SYNC_TAG);
|
} while (GAMMA_READ(GAMMA_OUTPUTFIFO) != GAMMA_SYNC_TAG);
|
||||||
|
|
||||||
|
|
||||||
/* Read from second MX */
|
/* Read from second MX */
|
||||||
do {
|
do {
|
||||||
while (!GAMMA_READ(GAMMA_OUTFIFOWORDS + 0x10000))
|
while (!GAMMA_READ(GAMMA_OUTFIFOWORDS + 0x10000))
|
||||||
|
|
@ -788,8 +806,13 @@ int gamma_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
if (lock.flags & _DRM_LOCK_READY)
|
if (lock.flags & _DRM_LOCK_READY)
|
||||||
gamma_dma_ready(dev);
|
gamma_dma_ready(dev);
|
||||||
if (lock.flags & _DRM_LOCK_QUIESCENT)
|
if (lock.flags & _DRM_LOCK_QUIESCENT) {
|
||||||
gamma_dma_quiescent(dev);
|
if (gamma_found() == 1) {
|
||||||
|
gamma_dma_quiescent_single(dev);
|
||||||
|
} else {
|
||||||
|
gamma_dma_quiescent_dual(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DRM_DEBUG("%d %s\n", lock.context, ret ? "interrupted" : "has lock");
|
DRM_DEBUG("%d %s\n", lock.context, ret ? "interrupted" : "has lock");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* gamma.c -- 3dlabs GMX 2000 driver -*- linux-c -*-
|
/* gamma.c -- 3dlabs GMX 2000 driver -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
||||||
* Revised: Tue Oct 12 08:51:36 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,22 +24,31 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.4 2000/02/23 04:47:28 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define EXPORT_SYMTAB
|
#define EXPORT_SYMTAB
|
||||||
#include "drmP.h"
|
#include "drmP.h"
|
||||||
#include "gamma_drv.h"
|
#include "gamma_drv.h"
|
||||||
|
#include <linux/pci.h>
|
||||||
EXPORT_SYMBOL(gamma_init);
|
EXPORT_SYMBOL(gamma_init);
|
||||||
EXPORT_SYMBOL(gamma_cleanup);
|
EXPORT_SYMBOL(gamma_cleanup);
|
||||||
|
|
||||||
|
#ifndef PCI_DEVICE_ID_3DLABS_GAMMA
|
||||||
|
#define PCI_DEVICE_ID_3DLABS_GAMMA 0x0008
|
||||||
|
#endif
|
||||||
|
#ifndef PCI_DEVICE_ID_3DLABS_MX
|
||||||
|
#define PCI_DEVICE_ID_3DLABS_MX 0x0006
|
||||||
|
#endif
|
||||||
|
|
||||||
#define GAMMA_NAME "gamma"
|
#define GAMMA_NAME "gamma"
|
||||||
#define GAMMA_DESC "3dlabs GMX 2000"
|
#define GAMMA_DESC "3dlabs GMX 2000"
|
||||||
#define GAMMA_DATE "19990830"
|
#define GAMMA_DATE "20000606"
|
||||||
#define GAMMA_MAJOR 0
|
#define GAMMA_MAJOR 1
|
||||||
#define GAMMA_MINOR 0
|
#define GAMMA_MINOR 0
|
||||||
#define GAMMA_PATCHLEVEL 5
|
#define GAMMA_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t gamma_device;
|
static drm_device_t gamma_device;
|
||||||
|
|
||||||
|
|
@ -98,10 +107,13 @@ static drm_ioctl_desc_t gamma_ioctls[] = {
|
||||||
int init_module(void);
|
int init_module(void);
|
||||||
void cleanup_module(void);
|
void cleanup_module(void);
|
||||||
static char *gamma = NULL;
|
static char *gamma = NULL;
|
||||||
|
static int devices = 0;
|
||||||
|
|
||||||
MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
|
MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
|
||||||
MODULE_DESCRIPTION("3dlabs GMX 2000");
|
MODULE_DESCRIPTION("3dlabs GMX 2000");
|
||||||
MODULE_PARM(gamma, "s");
|
MODULE_PARM(gamma, "s");
|
||||||
|
MODULE_PARM(devices, "i");
|
||||||
|
MODULE_PARM_DESC(devices, "devices=x, where x is the number of MX chips on your card\n");
|
||||||
|
|
||||||
/* init_module is called when insmod is used to load the module */
|
/* init_module is called when insmod is used to load the module */
|
||||||
|
|
||||||
|
|
@ -121,7 +133,7 @@ void cleanup_module(void)
|
||||||
#ifndef MODULE
|
#ifndef MODULE
|
||||||
/* gamma_setup is called by the kernel to parse command-line options passed
|
/* gamma_setup is called by the kernel to parse command-line options passed
|
||||||
* via the boot-loader (e.g., LILO). It calls the insmod option routine,
|
* via the boot-loader (e.g., LILO). It calls the insmod option routine,
|
||||||
* drm_parse_drm.
|
* drm_parse_options.
|
||||||
*
|
*
|
||||||
* This is not currently supported, since it requires changes to
|
* This is not currently supported, since it requires changes to
|
||||||
* linux/init/main.c. */
|
* linux/init/main.c. */
|
||||||
|
|
@ -271,10 +283,12 @@ static int gamma_takedown(drm_device_t *dev)
|
||||||
- PAGE_SHIFT,
|
- PAGE_SHIFT,
|
||||||
DRM_MEM_SAREA);
|
DRM_MEM_SAREA);
|
||||||
break;
|
break;
|
||||||
|
#ifdef DRM_AGP
|
||||||
case _DRM_AGP:
|
case _DRM_AGP:
|
||||||
/* Do nothing here, because this is all
|
/* Do nothing here, because this is all
|
||||||
handled in the AGP/GART driver. */
|
handled in the AGP/GART driver. */
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
drm_free(map, sizeof(*map), DRM_MEM_MAPS);
|
drm_free(map, sizeof(*map), DRM_MEM_MAPS);
|
||||||
}
|
}
|
||||||
|
|
@ -314,6 +328,34 @@ static int gamma_takedown(drm_device_t *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int gamma_found(void)
|
||||||
|
{
|
||||||
|
return devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
int gamma_find_devices(void)
|
||||||
|
{
|
||||||
|
struct pci_dev *d = NULL, *one = NULL, *two = NULL;
|
||||||
|
|
||||||
|
d = pci_find_device(PCI_VENDOR_ID_3DLABS,PCI_DEVICE_ID_3DLABS_GAMMA,d);
|
||||||
|
if (!d) return 0;
|
||||||
|
|
||||||
|
one = pci_find_device(PCI_VENDOR_ID_3DLABS,PCI_DEVICE_ID_3DLABS_MX,d);
|
||||||
|
if (!one) return 0;
|
||||||
|
|
||||||
|
/* Make sure it's on the same card, if not - no MX's found */
|
||||||
|
if (PCI_SLOT(d->devfn) != PCI_SLOT(one->devfn)) return 0;
|
||||||
|
|
||||||
|
two = pci_find_device(PCI_VENDOR_ID_3DLABS,PCI_DEVICE_ID_3DLABS_MX,one);
|
||||||
|
if (!two) return 1;
|
||||||
|
|
||||||
|
/* Make sure it's on the same card, if not - only 1 MX found */
|
||||||
|
if (PCI_SLOT(d->devfn) != PCI_SLOT(two->devfn)) return 1;
|
||||||
|
|
||||||
|
/* Two MX's found - we don't currently support more than 2 */
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
/* gamma_init is called via init_module at module load time, or via
|
/* gamma_init is called via init_module at module load time, or via
|
||||||
* linux/init/main.c (this is not currently supported). */
|
* linux/init/main.c (this is not currently supported). */
|
||||||
|
|
||||||
|
|
@ -331,6 +373,8 @@ int gamma_init(void)
|
||||||
#ifdef MODULE
|
#ifdef MODULE
|
||||||
drm_parse_options(gamma);
|
drm_parse_options(gamma);
|
||||||
#endif
|
#endif
|
||||||
|
devices = gamma_find_devices();
|
||||||
|
if (devices == 0) return -1;
|
||||||
|
|
||||||
if ((retcode = misc_register(&gamma_misc))) {
|
if ((retcode = misc_register(&gamma_misc))) {
|
||||||
DRM_ERROR("Cannot register \"%s\"\n", GAMMA_NAME);
|
DRM_ERROR("Cannot register \"%s\"\n", GAMMA_NAME);
|
||||||
|
|
@ -342,13 +386,14 @@ int gamma_init(void)
|
||||||
drm_mem_init();
|
drm_mem_init();
|
||||||
drm_proc_init(dev);
|
drm_proc_init(dev);
|
||||||
|
|
||||||
DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n",
|
DRM_INFO("Initialized %s %d.%d.%d %s on minor %d with %d MX devices\n",
|
||||||
GAMMA_NAME,
|
GAMMA_NAME,
|
||||||
GAMMA_MAJOR,
|
GAMMA_MAJOR,
|
||||||
GAMMA_MINOR,
|
GAMMA_MINOR,
|
||||||
GAMMA_PATCHLEVEL,
|
GAMMA_PATCHLEVEL,
|
||||||
GAMMA_DATE,
|
GAMMA_DATE,
|
||||||
gamma_misc.minor);
|
gamma_misc.minor,
|
||||||
|
devices);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* gamma_drv.h -- Private header for 3dlabs GMX 2000 driver -*- linux-c -*-
|
/* gamma_drv.h -- Private header for 3dlabs GMX 2000 driver -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 09:24:27 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,8 +24,6 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.2 2000/02/23 04:47:28 martin Exp $
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _GAMMA_DRV_H_
|
#ifndef _GAMMA_DRV_H_
|
||||||
|
|
@ -53,5 +51,7 @@ extern int gamma_irq_install(drm_device_t *dev, int irq);
|
||||||
extern int gamma_irq_uninstall(drm_device_t *dev);
|
extern int gamma_irq_uninstall(drm_device_t *dev);
|
||||||
extern int gamma_control(struct inode *inode, struct file *filp,
|
extern int gamma_control(struct inode *inode, struct file *filp,
|
||||||
unsigned int cmd, unsigned long arg);
|
unsigned int cmd, unsigned long arg);
|
||||||
|
extern int gamma_find_devices(void);
|
||||||
|
extern int gamma_found(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Thu Jan 6 01:47:26 2000 by jhartmann@precisioninsight.com
|
* Created: Thu Jan 6 01:47:26 2000 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,11 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/i810_bufs.c,v 1.1 2000/02/11 17:26:04 dawes Exp $
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define __NO_VERSION__
|
#define __NO_VERSION__
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 09:51:35 1999 by faith@precisioninsight.com
|
* Created: Mon Dec 13 09:51:35 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,9 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Author: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* $XFree86$
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,11 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* Keith Whitwell <keithw@precisioninsight.com>
|
* Keith Whitwell <keithw@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86$
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -37,6 +36,11 @@
|
||||||
|
|
||||||
#include <linux/interrupt.h> /* For task queue support */
|
#include <linux/interrupt.h> /* For task queue support */
|
||||||
|
|
||||||
|
/* in case we don't have a 2.3.99-pre6 kernel or later: */
|
||||||
|
#ifndef VM_DONTCOPY
|
||||||
|
#define VM_DONTCOPY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define I810_BUF_FREE 2
|
#define I810_BUF_FREE 2
|
||||||
#define I810_BUF_CLIENT 1
|
#define I810_BUF_CLIENT 1
|
||||||
#define I810_BUF_HARDWARE 0
|
#define I810_BUF_HARDWARE 0
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/i810_drv.c,v 1.1 2000/02/11 17:26:05 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -41,9 +40,9 @@ EXPORT_SYMBOL(i810_cleanup);
|
||||||
#define I810_NAME "i810"
|
#define I810_NAME "i810"
|
||||||
#define I810_DESC "Intel I810"
|
#define I810_DESC "Intel I810"
|
||||||
#define I810_DATE "19991213"
|
#define I810_DATE "19991213"
|
||||||
#define I810_MAJOR 0
|
#define I810_MAJOR 1
|
||||||
#define I810_MINOR 0
|
#define I810_MINOR 0
|
||||||
#define I810_PATCHLEVEL 1
|
#define I810_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t i810_device;
|
static drm_device_t i810_device;
|
||||||
drm_ctx_t i810_res_ctx;
|
drm_ctx_t i810_res_ctx;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/i810_drv.h,v 1.1 2000/02/11 17:26:05 dawes Exp $
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _I810_DRV_H_
|
#ifndef _I810_DRV_H_
|
||||||
|
|
|
||||||
14
linux/init.c
14
linux/init.c
|
|
@ -1,8 +1,8 @@
|
||||||
/* init.c -- Setup/Cleanup for DRM -*- linux-c -*-
|
/* init.c -- Setup/Cleanup for DRM -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 09:27:02 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.2 2000/02/23 04:47:29 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -34,7 +35,7 @@
|
||||||
int drm_flags = 0;
|
int drm_flags = 0;
|
||||||
|
|
||||||
/* drm_parse_option parses a single option. See description for
|
/* drm_parse_option parses a single option. See description for
|
||||||
drm_parse_drm for details. */
|
drm_parse_options for details. */
|
||||||
|
|
||||||
static void drm_parse_option(char *s)
|
static void drm_parse_option(char *s)
|
||||||
{
|
{
|
||||||
|
|
@ -96,3 +97,10 @@ void drm_parse_options(char *s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int drm_cpu_valid(void)
|
||||||
|
{
|
||||||
|
#if defined(__i386__)
|
||||||
|
if (boot_cpu_data.x86 == 3) return 0; /* No cmpxchg on a 386 */
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* ioctl.c -- IOCTL processing for DRM -*- linux-c -*-
|
/* ioctl.c -- IOCTL processing for DRM -*- linux-c -*-
|
||||||
* Created: Fri Jan 8 09:01:26 1999 by faith@precisioninsight.com
|
* Created: Fri Jan 8 09:01:26 1999 by faith@precisioninsight.com
|
||||||
* Revised: Fri Aug 20 09:27:02 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.2 2000/02/23 04:47:29 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* lists.c -- Buffer list handling routines -*- linux-c -*-
|
/* lists.c -- Buffer list handling routines -*- linux-c -*-
|
||||||
* Created: Mon Apr 19 20:54:22 1999 by faith@precisioninsight.com
|
* Created: Mon Apr 19 20:54:22 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sun Feb 13 23:37:52 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.6 2000/02/23 04:56:42 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* lock.c -- IOCTLs for locking -*- linux-c -*-
|
/* lock.c -- IOCTLs for locking -*- linux-c -*-
|
||||||
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
* Created: Tue Feb 2 08:37:54 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sun Feb 13 23:38:25 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.5 2000/02/23 04:47:29 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* memory.c -- Memory management wrappers for DRM -*- linux-c -*-
|
/* memory.c -- Memory management wrappers for DRM -*- linux-c -*-
|
||||||
* Created: Thu Feb 4 14:00:34 1999 by faith@precisioninsight.com
|
* Created: Thu Feb 4 14:00:34 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sun Feb 13 23:39:37 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.5 2000/02/23 04:47:30 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Thu Jan 6 01:47:26 2000 by jhartmann@precisioninsight.com
|
* Created: Thu Jan 6 01:47:26 2000 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/mga_bufs.c,v 1.1 2000/02/11 17:26:06 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 09:51:35 1999 by faith@precisioninsight.com
|
* Created: Mon Dec 13 09:51:35 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,9 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Author: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Author: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/mga_context.c,v 1.1 2000/02/11 17:26:06 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,11 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* Keith Whitwell <keithw@precisioninsight.com>
|
* Keith Whitwell <keithw@valinux.com>
|
||||||
*
|
|
||||||
* $XFree86$
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Tue Jan 25 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Tue Jan 25 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Authors: Jeff Hartmann <jhartmann@valinux.com>
|
||||||
* Keith Whitwell <keithw@precisioninsight.com>
|
* Keith Whitwell <keithw@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MGA_DRM_H_
|
#ifndef _MGA_DRM_H_
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:56:22 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/mga_drv.c,v 1.1 2000/02/11 17:26:07 dawes Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -39,9 +39,9 @@ EXPORT_SYMBOL(mga_cleanup);
|
||||||
#define MGA_NAME "mga"
|
#define MGA_NAME "mga"
|
||||||
#define MGA_DESC "Matrox g200/g400"
|
#define MGA_DESC "Matrox g200/g400"
|
||||||
#define MGA_DATE "19991213"
|
#define MGA_DATE "19991213"
|
||||||
#define MGA_MAJOR 0
|
#define MGA_MAJOR 1
|
||||||
#define MGA_MINOR 0
|
#define MGA_MINOR 0
|
||||||
#define MGA_PATCHLEVEL 1
|
#define MGA_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t mga_device;
|
static drm_device_t mga_device;
|
||||||
drm_ctx_t mga_res_ctx;
|
drm_ctx_t mga_res_ctx;
|
||||||
|
|
@ -385,9 +385,9 @@ int mga_init(void)
|
||||||
DRM_DEBUG("doing agp init\n");
|
DRM_DEBUG("doing agp init\n");
|
||||||
dev->agp = drm_agp_init();
|
dev->agp = drm_agp_init();
|
||||||
if(dev->agp == NULL) {
|
if(dev->agp == NULL) {
|
||||||
DRM_DEBUG("The mga drm module requires the agpgart module"
|
DRM_INFO("The mga drm module requires the agpgart module"
|
||||||
" to function correctly\nPlease load the agpgart"
|
" to function correctly\nPlease load the agpgart"
|
||||||
" module before you load the mga module\n");
|
" module before you load the mga module\n");
|
||||||
drm_proc_cleanup();
|
drm_proc_cleanup();
|
||||||
misc_deregister(&mga_misc);
|
misc_deregister(&mga_misc);
|
||||||
mga_takedown(dev);
|
mga_takedown(dev);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
* Created: Mon Dec 13 01:50:01 1999 by jhartmann@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,10 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
* Jeff Hartmann <jhartmann@precisioninsight.com>
|
* Jeff Hartmann <jhartmann@valinux.com>
|
||||||
*
|
*
|
||||||
* $XFree86$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MGA_DRV_H_
|
#ifndef _MGA_DRV_H_
|
||||||
|
|
|
||||||
1162
linux/mga_state.c
1162
linux/mga_state.c
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,8 @@
|
||||||
/* proc.c -- /proc support for DRM -*- linux-c -*-
|
/* proc.c -- /proc support for DRM -*- linux-c -*-
|
||||||
* Created: Mon Jan 11 09:48:47 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 11 09:48:47 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -22,9 +23,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.6 2000/02/23 04:47:30 martin Exp $
|
|
||||||
*
|
*
|
||||||
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define __NO_VERSION__
|
#define __NO_VERSION__
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,9 +22,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Kevin E. Martin <kevin@precisioninsight.com>
|
* Authors: Kevin E. Martin <kevin@precisioninsight.com>
|
||||||
*
|
*
|
||||||
* $XFree86$
|
* $XFree86$
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -88,6 +88,20 @@ static void r128_flush_write_combine(void)
|
||||||
"pop %%eax" : /* no outputs */ : /* no inputs */ );
|
"pop %%eax" : /* no outputs */ : /* no inputs */ );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void r128_status(drm_device_t *dev)
|
||||||
|
{
|
||||||
|
drm_r128_private_t *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
printk("GUI_STAT = 0x%08x\n",
|
||||||
|
(unsigned int)R128_READ(R128_GUI_STAT));
|
||||||
|
printk("PM4_STAT = 0x%08x\n",
|
||||||
|
(unsigned int)R128_READ(R128_PM4_STAT));
|
||||||
|
printk("PM4_BUFFER_DL_WPTR = 0x%08x\n",
|
||||||
|
(unsigned int)R128_READ(R128_PM4_BUFFER_DL_WPTR));
|
||||||
|
printk("PM4_BUFFER_DL_RPTR = 0x%08x\n",
|
||||||
|
(unsigned int)R128_READ(R128_PM4_BUFFER_DL_RPTR));
|
||||||
|
}
|
||||||
|
|
||||||
static int r128_do_cleanup_cce(drm_device_t *dev)
|
static int r128_do_cleanup_cce(drm_device_t *dev)
|
||||||
{
|
{
|
||||||
if (dev->dev_private) {
|
if (dev->dev_private) {
|
||||||
|
|
@ -828,6 +842,7 @@ static drm_buf_t *r128_freelist_get(drm_device_t *dev)
|
||||||
udelay(1);
|
udelay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r128_status(dev);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,10 +22,10 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
* Authors: Rickard E. (Rik) Faith <faith@precisioninsight.com>
|
||||||
* Kevin E. Martin <kevin@precisioninsight.com>
|
* Kevin E. Martin <kevin@precisioninsight.com>
|
||||||
*
|
*
|
||||||
* $XFree86$
|
* $XFree86$
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -38,10 +38,10 @@ EXPORT_SYMBOL(r128_cleanup);
|
||||||
|
|
||||||
#define R128_NAME "r128"
|
#define R128_NAME "r128"
|
||||||
#define R128_DESC "r128"
|
#define R128_DESC "r128"
|
||||||
#define R128_DATE "20000422"
|
#define R128_DATE "20000607"
|
||||||
#define R128_MAJOR 0
|
#define R128_MAJOR 1
|
||||||
#define R128_MINOR 0
|
#define R128_MINOR 0
|
||||||
#define R128_PATCHLEVEL 5
|
#define R128_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t r128_device;
|
static drm_device_t r128_device;
|
||||||
drm_ctx_t r128_res_ctx;
|
drm_ctx_t r128_res_ctx;
|
||||||
|
|
@ -108,7 +108,7 @@ static drm_ioctl_desc_t r128_ioctls[] = {
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_RESET)] = { r128_eng_reset, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_RESET)] = { r128_eng_reset, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_FLUSH)] = { r128_eng_flush, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_FLUSH)] = { r128_eng_flush, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_PACKET)] = { r128_submit_pkt, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_PACKET)] = { r128_submit_pkt, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_CCEIDL)] = { r128_cce_idle, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_IDLE)] = { r128_cce_idle, 1, 0 },
|
||||||
[DRM_IOCTL_NR(DRM_IOCTL_R128_VERTEX)] = { r128_vertex_buf, 1, 0 },
|
[DRM_IOCTL_NR(DRM_IOCTL_R128_VERTEX)] = { r128_vertex_buf, 1, 0 },
|
||||||
};
|
};
|
||||||
#define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
|
#define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
|
||||||
|
|
@ -144,7 +144,7 @@ void cleanup_module(void)
|
||||||
*
|
*
|
||||||
* This is not currently supported, since it requires changes to
|
* This is not currently supported, since it requires changes to
|
||||||
* linux/init/main.c. */
|
* linux/init/main.c. */
|
||||||
|
|
||||||
|
|
||||||
void __init r128_setup(char *str, int *ints)
|
void __init r128_setup(char *str, int *ints)
|
||||||
{
|
{
|
||||||
|
|
@ -159,7 +159,7 @@ void __init r128_setup(char *str, int *ints)
|
||||||
static int r128_setup(drm_device_t *dev)
|
static int r128_setup(drm_device_t *dev)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
atomic_set(&dev->ioctl_count, 0);
|
atomic_set(&dev->ioctl_count, 0);
|
||||||
atomic_set(&dev->vma_count, 0);
|
atomic_set(&dev->vma_count, 0);
|
||||||
dev->buf_use = 0;
|
dev->buf_use = 0;
|
||||||
|
|
@ -202,7 +202,7 @@ static int r128_setup(drm_device_t *dev)
|
||||||
|
|
||||||
dev->ctx_start = 0;
|
dev->ctx_start = 0;
|
||||||
dev->lck_start = 0;
|
dev->lck_start = 0;
|
||||||
|
|
||||||
dev->buf_rp = dev->buf;
|
dev->buf_rp = dev->buf;
|
||||||
dev->buf_wp = dev->buf;
|
dev->buf_wp = dev->buf;
|
||||||
dev->buf_end = dev->buf + DRM_BSZ;
|
dev->buf_end = dev->buf + DRM_BSZ;
|
||||||
|
|
@ -211,15 +211,15 @@ static int r128_setup(drm_device_t *dev)
|
||||||
init_waitqueue_head(&dev->buf_writers);
|
init_waitqueue_head(&dev->buf_writers);
|
||||||
|
|
||||||
r128_res_ctx.handle=-1;
|
r128_res_ctx.handle=-1;
|
||||||
|
|
||||||
DRM_DEBUG("\n");
|
DRM_DEBUG("\n");
|
||||||
|
|
||||||
/* The kernel's context could be created here, but is now created
|
/* The kernel's context could be created here, but is now created
|
||||||
in drm_dma_enqueue. This is more resource-efficient for
|
in drm_dma_enqueue. This is more resource-efficient for
|
||||||
hardware that does not do DMA, but may mean that
|
hardware that does not do DMA, but may mean that
|
||||||
drm_select_queue fails between the time the interrupt is
|
drm_select_queue fails between the time the interrupt is
|
||||||
initialized and the time the queues are initialized. */
|
initialized and the time the queues are initialized. */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -235,12 +235,12 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
|
|
||||||
down(&dev->struct_sem);
|
down(&dev->struct_sem);
|
||||||
del_timer(&dev->timer);
|
del_timer(&dev->timer);
|
||||||
|
|
||||||
if (dev->devname) {
|
if (dev->devname) {
|
||||||
drm_free(dev->devname, strlen(dev->devname)+1, DRM_MEM_DRIVER);
|
drm_free(dev->devname, strlen(dev->devname)+1, DRM_MEM_DRIVER);
|
||||||
dev->devname = NULL;
|
dev->devname = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->unique) {
|
if (dev->unique) {
|
||||||
drm_free(dev->unique, strlen(dev->unique)+1, DRM_MEM_DRIVER);
|
drm_free(dev->unique, strlen(dev->unique)+1, DRM_MEM_DRIVER);
|
||||||
dev->unique = NULL;
|
dev->unique = NULL;
|
||||||
|
|
@ -260,7 +260,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
if (dev->agp) {
|
if (dev->agp) {
|
||||||
drm_agp_mem_t *entry;
|
drm_agp_mem_t *entry;
|
||||||
drm_agp_mem_t *nexte;
|
drm_agp_mem_t *nexte;
|
||||||
|
|
||||||
/* Remove AGP resources, but leave dev->agp
|
/* Remove AGP resources, but leave dev->agp
|
||||||
intact until r128_cleanup is called. */
|
intact until r128_cleanup is called. */
|
||||||
for (entry = dev->agp->memory; entry; entry = nexte) {
|
for (entry = dev->agp->memory; entry; entry = nexte) {
|
||||||
|
|
@ -270,15 +270,15 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS);
|
drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS);
|
||||||
}
|
}
|
||||||
dev->agp->memory = NULL;
|
dev->agp->memory = NULL;
|
||||||
|
|
||||||
if (dev->agp->acquired && drm_agp.release)
|
if (dev->agp->acquired && drm_agp.release)
|
||||||
(*drm_agp.release)();
|
(*drm_agp.release)();
|
||||||
|
|
||||||
dev->agp->acquired = 0;
|
dev->agp->acquired = 0;
|
||||||
dev->agp->enabled = 0;
|
dev->agp->enabled = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Clear vma list (only built for debugging) */
|
/* Clear vma list (only built for debugging) */
|
||||||
if (dev->vmalist) {
|
if (dev->vmalist) {
|
||||||
for (vma = dev->vmalist; vma; vma = vma_next) {
|
for (vma = dev->vmalist; vma; vma = vma_next) {
|
||||||
|
|
@ -287,7 +287,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
}
|
}
|
||||||
dev->vmalist = NULL;
|
dev->vmalist = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear map area and mtrr information */
|
/* Clear map area and mtrr information */
|
||||||
if (dev->maplist) {
|
if (dev->maplist) {
|
||||||
for (i = 0; i < dev->map_count; i++) {
|
for (i = 0; i < dev->map_count; i++) {
|
||||||
|
|
@ -325,7 +325,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
dev->maplist = NULL;
|
dev->maplist = NULL;
|
||||||
dev->map_count = 0;
|
dev->map_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drm_dma_takedown(dev);
|
drm_dma_takedown(dev);
|
||||||
|
|
||||||
dev->queue_count = 0;
|
dev->queue_count = 0;
|
||||||
|
|
@ -335,7 +335,7 @@ static int r128_takedown(drm_device_t *dev)
|
||||||
wake_up_interruptible(&dev->lock.lock_queue);
|
wake_up_interruptible(&dev->lock.lock_queue);
|
||||||
}
|
}
|
||||||
up(&dev->struct_sem);
|
up(&dev->struct_sem);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -352,7 +352,7 @@ int r128_init(void)
|
||||||
memset((void *)dev, 0, sizeof(*dev));
|
memset((void *)dev, 0, sizeof(*dev));
|
||||||
dev->count_lock = SPIN_LOCK_UNLOCKED;
|
dev->count_lock = SPIN_LOCK_UNLOCKED;
|
||||||
sema_init(&dev->struct_sem, 1);
|
sema_init(&dev->struct_sem, 1);
|
||||||
|
|
||||||
#ifdef MODULE
|
#ifdef MODULE
|
||||||
drm_parse_options(r128);
|
drm_parse_options(r128);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -404,7 +404,7 @@ void r128_cleanup(void)
|
||||||
drm_device_t *dev = &r128_device;
|
drm_device_t *dev = &r128_device;
|
||||||
|
|
||||||
DRM_DEBUG("\n");
|
DRM_DEBUG("\n");
|
||||||
|
|
||||||
drm_proc_cleanup();
|
drm_proc_cleanup();
|
||||||
if (misc_deregister(&r128_misc)) {
|
if (misc_deregister(&r128_misc)) {
|
||||||
DRM_ERROR("Cannot unload module\n");
|
DRM_ERROR("Cannot unload module\n");
|
||||||
|
|
@ -460,7 +460,7 @@ int r128_open(struct inode *inode, struct file *filp)
|
||||||
{
|
{
|
||||||
drm_device_t *dev = &r128_device;
|
drm_device_t *dev = &r128_device;
|
||||||
int retcode = 0;
|
int retcode = 0;
|
||||||
|
|
||||||
DRM_DEBUG("open_count = %d\n", dev->open_count);
|
DRM_DEBUG("open_count = %d\n", dev->open_count);
|
||||||
if (!(retcode = drm_open_helper(inode, filp, dev))) {
|
if (!(retcode = drm_open_helper(inode, filp, dev))) {
|
||||||
MOD_INC_USE_COUNT;
|
MOD_INC_USE_COUNT;
|
||||||
|
|
@ -517,7 +517,7 @@ int r128_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
atomic_inc(&dev->ioctl_count);
|
atomic_inc(&dev->ioctl_count);
|
||||||
atomic_inc(&dev->total_ioctl);
|
atomic_inc(&dev->total_ioctl);
|
||||||
++priv->ioctl_count;
|
++priv->ioctl_count;
|
||||||
|
|
||||||
DRM_DEBUG("pid = %d, cmd = 0x%02x, nr = 0x%02x, dev 0x%x, auth = %d\n",
|
DRM_DEBUG("pid = %d, cmd = 0x%02x, nr = 0x%02x, dev 0x%x, auth = %d\n",
|
||||||
current->pid, cmd, nr, dev->device, priv->authenticated);
|
current->pid, cmd, nr, dev->device, priv->authenticated);
|
||||||
|
|
||||||
|
|
@ -537,7 +537,7 @@ int r128_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
retcode = (func)(inode, filp, cmd, arg);
|
retcode = (func)(inode, filp, cmd, arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_dec(&dev->ioctl_count);
|
atomic_dec(&dev->ioctl_count);
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
@ -574,7 +574,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
if (lock.context < 0 || lock.context >= dev->queue_count)
|
if (lock.context < 0 || lock.context >= dev->queue_count)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
#if 0
|
#if 0
|
||||||
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
|
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
|
||||||
|
|
@ -586,7 +586,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
/* Can't take lock if we just had it and
|
/* Can't take lock if we just had it and
|
||||||
there is contention. */
|
there is contention. */
|
||||||
DRM_DEBUG("%d (pid %d) delayed j=%d dev=%d jiffies=%d\n",
|
DRM_DEBUG("%d (pid %d) delayed j=%d dev=%d jiffies=%d\n",
|
||||||
lock.context, current->pid, j,
|
lock.context, current->pid, j,
|
||||||
dev->lock.lock_time, jiffies);
|
dev->lock.lock_time, jiffies);
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
current->policy |= SCHED_YIELD;
|
current->policy |= SCHED_YIELD;
|
||||||
|
|
@ -609,7 +609,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
atomic_inc(&dev->total_locks);
|
atomic_inc(&dev->total_locks);
|
||||||
break; /* Got lock */
|
break; /* Got lock */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Contention */
|
/* Contention */
|
||||||
atomic_inc(&dev->total_sleeps);
|
atomic_inc(&dev->total_sleeps);
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
|
|
@ -665,7 +665,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
DRM_ERROR("pid = %5d, old counter = %5ld\n",
|
DRM_ERROR("pid = %5d, old counter = %5ld\n",
|
||||||
current->pid, current->counter);
|
current->pid, current->counter);
|
||||||
#endif
|
#endif
|
||||||
if (lock.context != r128_res_ctx.handle) {
|
if (lock.context != r128_res_ctx.handle) {
|
||||||
|
|
@ -683,7 +683,7 @@ int r128_lock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
#if DRM_DMA_HISTOGRAM
|
#if DRM_DMA_HISTOGRAM
|
||||||
atomic_inc(&dev->histo.lacq[drm_histogram_slot(get_cycles() - start)]);
|
atomic_inc(&dev->histo.lacq[drm_histogram_slot(get_cycles() - start)]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -696,7 +696,7 @@ int r128_unlock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
drm_lock_t lock;
|
drm_lock_t lock;
|
||||||
|
|
||||||
copy_from_user_ret(&lock, (drm_lock_t *)arg, sizeof(lock), -EFAULT);
|
copy_from_user_ret(&lock, (drm_lock_t *)arg, sizeof(lock), -EFAULT);
|
||||||
|
|
||||||
if (lock.context == DRM_KERNEL_CONTEXT) {
|
if (lock.context == DRM_KERNEL_CONTEXT) {
|
||||||
DRM_ERROR("Process %d using kernel context %d\n",
|
DRM_ERROR("Process %d using kernel context %d\n",
|
||||||
current->pid, lock.context);
|
current->pid, lock.context);
|
||||||
|
|
@ -732,6 +732,6 @@ int r128_unlock(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||||
current->state = TASK_INTERRUPTIBLE;
|
current->state = TASK_INTERRUPTIBLE;
|
||||||
schedule_timeout(10);
|
schedule_timeout(10);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* tdfx_context.c -- IOCTLs for tdfx contexts -*- linux-c -*-
|
/* tdfx_context.c -- IOCTLs for tdfx contexts -*- linux-c -*-
|
||||||
* Created: Thu Oct 7 10:50:22 1999 by faith@precisioninsight.com
|
* Created: Thu Oct 7 10:50:22 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sat Oct 9 23:39:56 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,8 +24,10 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c,v 1.2 2000/02/23 04:47:30 martin Exp $
|
* Authors:
|
||||||
*
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
|
* Daryll Strauss <daryll@valinux.com>
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* tdfx.c -- tdfx driver -*- linux-c -*-
|
/* tdfx.c -- tdfx driver -*- linux-c -*-
|
||||||
* Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
|
* Created: Thu Oct 7 10:38:32 1999 by faith@precisioninsight.com
|
||||||
* Revised: Tue Oct 12 08:51:35 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,9 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.3 2000/02/23 04:47:31 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
|
* Daryll Strauss <daryll@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -37,9 +39,9 @@ EXPORT_SYMBOL(tdfx_cleanup);
|
||||||
#define TDFX_NAME "tdfx"
|
#define TDFX_NAME "tdfx"
|
||||||
#define TDFX_DESC "tdfx"
|
#define TDFX_DESC "tdfx"
|
||||||
#define TDFX_DATE "19991009"
|
#define TDFX_DATE "19991009"
|
||||||
#define TDFX_MAJOR 0
|
#define TDFX_MAJOR 1
|
||||||
#define TDFX_MINOR 0
|
#define TDFX_MINOR 0
|
||||||
#define TDFX_PATCHLEVEL 1
|
#define TDFX_PATCHLEVEL 0
|
||||||
|
|
||||||
static drm_device_t tdfx_device;
|
static drm_device_t tdfx_device;
|
||||||
drm_ctx_t tdfx_res_ctx;
|
drm_ctx_t tdfx_res_ctx;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* tdfx_drv.h -- Private header for tdfx driver -*- linux-c -*-
|
/* tdfx_drv.h -- Private header for tdfx driver -*- linux-c -*-
|
||||||
* Created: Thu Oct 7 10:40:04 1999 by faith@precisioninsight.com
|
* Created: Thu Oct 7 10:40:04 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sat Oct 9 23:38:19 1999 by faith@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,6 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h,v 1.2 2000/02/23 04:47:31 martin Exp $
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* vm.c -- Memory mapping for DRM -*- linux-c -*-
|
/* vm.c -- Memory mapping for DRM -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 08:58:31 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -23,7 +24,8 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.5 2000/02/23 04:47:31 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -10,11 +11,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,8 +23,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
* Acknowledgements:
|
* Acknowledgements:
|
||||||
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
||||||
|
|
@ -60,7 +62,7 @@ typedef unsigned int drm_context_t;
|
||||||
typedef unsigned int drm_drawable_t;
|
typedef unsigned int drm_drawable_t;
|
||||||
typedef unsigned int drm_magic_t;
|
typedef unsigned int drm_magic_t;
|
||||||
|
|
||||||
/* Warning: If you change this structure, make sure you change
|
/* Warning: If you change this structure, make sure you change
|
||||||
* XF86DRIClipRectRec in the server as well */
|
* XF86DRIClipRectRec in the server as well */
|
||||||
|
|
||||||
typedef struct drm_clip_rect {
|
typedef struct drm_clip_rect {
|
||||||
|
|
@ -356,7 +358,7 @@ typedef struct drm_agp_info {
|
||||||
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
||||||
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
||||||
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
||||||
#define DRM_IOCTL_R128_CCEIDL DRM_IO( 0x43)
|
#define DRM_IOCTL_R128_IDLE DRM_IO( 0x43)
|
||||||
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
||||||
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
||||||
|
|
||||||
|
|
|
||||||
16
shared/drm.h
16
shared/drm.h
|
|
@ -1,7 +1,8 @@
|
||||||
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
|
||||||
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
|
||||||
*
|
*
|
||||||
* Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -10,11 +11,11 @@
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice (including the next
|
* The above copyright notice and this permission notice (including the next
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
* Software.
|
* Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
@ -22,8 +23,9 @@
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
|
* Authors:
|
||||||
|
* Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
* Acknowledgements:
|
* Acknowledgements:
|
||||||
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
|
||||||
|
|
@ -60,7 +62,7 @@ typedef unsigned int drm_context_t;
|
||||||
typedef unsigned int drm_drawable_t;
|
typedef unsigned int drm_drawable_t;
|
||||||
typedef unsigned int drm_magic_t;
|
typedef unsigned int drm_magic_t;
|
||||||
|
|
||||||
/* Warning: If you change this structure, make sure you change
|
/* Warning: If you change this structure, make sure you change
|
||||||
* XF86DRIClipRectRec in the server as well */
|
* XF86DRIClipRectRec in the server as well */
|
||||||
|
|
||||||
typedef struct drm_clip_rect {
|
typedef struct drm_clip_rect {
|
||||||
|
|
@ -356,7 +358,7 @@ typedef struct drm_agp_info {
|
||||||
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t)
|
||||||
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
#define DRM_IOCTL_R128_RESET DRM_IO( 0x41)
|
||||||
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
#define DRM_IOCTL_R128_FLUSH DRM_IO( 0x42)
|
||||||
#define DRM_IOCTL_R128_CCEIDL DRM_IO( 0x43)
|
#define DRM_IOCTL_R128_IDLE DRM_IO( 0x43)
|
||||||
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
#define DRM_IOCTL_R128_PACKET DRM_IOW( 0x44, drm_r128_packet_t)
|
||||||
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x45, drm_r128_vertex_t)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* drmstat.c -- DRM device status and testing program
|
/* drmstat.c -- DRM device status and testing program
|
||||||
* Created: Tue Jan 5 08:19:24 1999 by faith@precisioninsight.com
|
* Created: Tue Jan 5 08:19:24 1999 by faith@precisioninsight.com
|
||||||
* Revised: Sun Feb 13 23:35:00 2000 by kevin@precisioninsight.com
|
|
||||||
*
|
*
|
||||||
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
|
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.6 2000/02/23 04:47:27 martin Exp $
|
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue