diff options
| author | Ian Romanick <idr@us.ibm.com> | 2007-08-31 10:54:55 -0700 |
|---|---|---|
| committer | Ian Romanick <idr@us.ibm.com> | 2007-08-31 10:54:55 -0700 |
| commit | fee49e2071f2f528d7041bf1f14c640fff7478cc (patch) | |
| tree | 6e41210d9f98e02b6ef2129c1be105104334bef7 /bsd-core/drm_bufs.c | |
| parent | bb3da88601749cd647632eed86fb57dfd7cb81ee (diff) | |
| parent | bac3f49daa54bf34ea21854be23061d10a0d0d1b (diff) | |
Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2
Diffstat (limited to 'bsd-core/drm_bufs.c')
| -rw-r--r-- | bsd-core/drm_bufs.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/bsd-core/drm_bufs.c b/bsd-core/drm_bufs.c index a0a3fc73..9b58c593 100644 --- a/bsd-core/drm_bufs.c +++ b/bsd-core/drm_bufs.c @@ -1,6 +1,3 @@ -/* drm_bufs.h -- Generic buffer template -*- linux-c -*- - * Created: Thu Nov 23 03:10:50 2000 by gareth@valinux.com - */ /*- * Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas. * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. @@ -31,6 +28,10 @@ * */ +/** @file drm_bufs.c + * Implementation of the ioctls for setup of DRM mappings and DMA buffers. + */ + #include "dev/pci/pcireg.h" #include "drmP.h" @@ -190,7 +191,17 @@ int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, break; case _DRM_AGP: /*valid = 0;*/ - map->offset += dev->agp->base; + /* In some cases (i810 driver), user space may have already + * added the AGP base itself, because dev->agp->base previously + * only got set during AGP enable. So, only add the base + * address if the map's offset isn't already within the + * aperture. + */ + if (map->offset < dev->agp->base || + map->offset > dev->agp->base + + dev->agp->info.ai_aperture_size - 1) { + map->offset += dev->agp->base; + } map->mtrr = dev->agp->mtrr; /* for getmap */ /*for (entry = dev->agp->memory; entry; entry = entry->next) { if ((map->offset >= entry->bound) && |
