summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2001-03-15 21:48:51 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2001-03-15 21:48:51 +0000
commit2bea25890bacfa0f1fdc18cda63105c07157cad8 (patch)
tree48671e7caa76dfc7abdeb680e9ef70271096ab69 /linux-core
parente4a4359e937c60e5011273c13c24a3df82f3a0b0 (diff)
downloaddrm-gamma-2-0-0-branch.tar.gz
commit kernel changes for agp (needs agpgart.diff - also added) updategamma-2-0-0-branch
gamma driver for changes.
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/drmP.h2
-rw-r--r--linux-core/drm_agpsupport.c16
-rw-r--r--linux-core/drm_drv.c3
3 files changed, 16 insertions, 5 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 694fcb73..a6faa6b3 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -897,6 +897,8 @@ extern int DRM(agp_acquire)(struct inode *inode, struct file *filp,
extern void DRM(agp_do_release)(void);
extern int DRM(agp_release)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
+extern int DRM(agp_enable_old)(struct inode *inode,struct file *filp,
+ unsigned int cmd, unsigned long arg);
extern int DRM(agp_enable)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
extern int DRM(agp_info)(struct inode *inode, struct file *filp,
diff --git a/linux-core/drm_agpsupport.c b/linux-core/drm_agpsupport.c
index dfd0d8fc..30940b05 100644
--- a/linux-core/drm_agpsupport.c
+++ b/linux-core/drm_agpsupport.c
@@ -101,20 +101,28 @@ void DRM(agp_do_release)(void)
if (drm_agp->release) drm_agp->release();
}
+int DRM(agp_enable_old)(struct inode *inode, struct file *filp,
+ unsigned int cmd, unsigned long arg)
+{
+ DRM_ERROR("Called deprecated agp_enable ioctl, not enabling AGP.\n");
+
+ return -ENOSYS;
+}
+
int DRM(agp_enable)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
- drm_agp_mode_t mode;
+ agp_setup setup;
if (!dev->agp->acquired || !drm_agp->enable) return -EINVAL;
- if (copy_from_user(&mode, (drm_agp_mode_t *)arg, sizeof(mode)))
+ if (copy_from_user(&setup, (drm_agp_setup_t *)arg, sizeof(setup)))
return -EFAULT;
- dev->agp->mode = mode.mode;
- drm_agp->enable(mode.mode);
+ dev->agp->mode = setup.agp_mode;
+ drm_agp->enable(&setup);
dev->agp->base = dev->agp->agp_info.aper_base;
dev->agp->enabled = 1;
return 0;
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index d8a7d992..ffb36a21 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -166,12 +166,13 @@ static drm_ioctl_desc_t DRM(ioctls)[] = {
#if __REALLY_HAVE_AGP
[DRM_IOCTL_NR(DRM_IOCTL_AGP_ACQUIRE)] = { DRM(agp_acquire), 1, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_RELEASE)] = { DRM(agp_release), 1, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_AGP_ENABLE)] = { DRM(agp_enable), 1, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_AGP_ENABLE_OLD)] = { DRM(agp_enable_old),1,1 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_INFO)] = { DRM(agp_info), 1, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_ALLOC)] = { DRM(agp_alloc), 1, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_FREE)] = { DRM(agp_free), 1, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_BIND)] = { DRM(agp_bind), 1, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_UNBIND)] = { DRM(agp_unbind), 1, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_AGP_ENABLE)] = { DRM(agp_enable), 1, 1 },
#endif
DRIVER_IOCTLS