diff options
author | Eric Anholt <anholt@freebsd.org> | 2005-06-28 20:58:34 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2005-06-28 20:58:34 +0000 |
commit | 5d96c74ff1fe9b2d37e22dbea9882791aae389bf (patch) | |
tree | 598019eecfc3d9c964a79d7b9841a1c86829d14b /linux-core/drmP.h | |
parent | 6397722f1990856a9ee268cadd65d78b44b24835 (diff) |
- Remove drm_initmap and replace its usage with drm_addmap. This reduces
code duplication, and it also hands you the map pointer so you don't
need to re-find it.
- Remove the permanent maps flag. Instead, for register and framebuffer
maps, we always check whether there's already a map of that type and
offset around. Move the Radeon map initialization into presetup (first
open) so it happens again after every takedown.
- Remove the split cleanup of maps between driver takedown (last close) and
cleanup (module unload). Instead, always tear down maps on takedown,
and drivers can recreate them on first open.
- Make MGA always use addmap, instead of allocating consistent memory in
the PCI case and then faking up a map for it, which accomplished nearly
the same thing, in a different order. Note that the maps are exposed to
the user again: we may want to expose a flag to avoid this, but it's
not a security concern, and saves us a lot of code.
- Remove rmmaps in the MGA driver. Since the function is only called during
takedown anyway, we can let them die a natural death.
- Make removal of maps happen in one function, which is called by both
drm_takedown and drm_rmmap_ioctl.
Reviewed by: idr (previous revision) Tested on: mga (old/new/pci dma),
radeon, savage
Diffstat (limited to 'linux-core/drmP.h')
-rw-r--r-- | linux-core/drmP.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 9c0e5b84..5ada94ef 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -572,7 +572,6 @@ struct drm_driver { /* variables */ u32 driver_features; int dev_priv_size; - int permanent_maps; drm_ioctl_desc_t *ioctls; int num_ioctls; struct file_operations fops; @@ -864,15 +863,13 @@ extern int drm_addbufs_pci(drm_device_t * dev, drm_buf_desc_t * request); extern int drm_addbufs_fb (drm_device_t * dev, drm_buf_desc_t * request); extern int drm_addmap(drm_device_t * dev, unsigned int offset, unsigned int size, drm_map_type_t type, - drm_map_flags_t flags, drm_map_t ** map_ptr); + drm_map_flags_t flags, drm_local_map_t ** map_ptr); extern int drm_addmap_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); -extern int drm_rmmap(drm_device_t *dev, void *handle); +extern int drm_rmmap(drm_device_t *dev, drm_local_map_t *map); +extern int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map); extern int drm_rmmap_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); -extern int drm_initmap(drm_device_t * dev, unsigned int offset, - unsigned int size, unsigned int resource, int type, - int flags); extern int drm_addbufs(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); extern int drm_infobufs(struct inode *inode, struct file *filp, |