Remove size restriction on permanent addmap
authorJon Smirl <jonsmirl@yahoo.com>
Mon, 20 Sep 2004 19:23:27 +0000 (19:23 +0000)
committerJon Smirl <jonsmirl@yahoo.com>
Mon, 20 Sep 2004 19:23:27 +0000 (19:23 +0000)
linux-core/drm_bufs.c
linux-core/drm_drv.c
linux/drm_bufs.h
linux/drm_drv.h
shared-core/radeon_cp.c
shared/radeon_cp.c

index 84ca1f4..f48ef6f 100644 (file)
@@ -182,11 +182,14 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
 
                /* If permanent maps are implemented, maps must match */
                if (permanent_maps) {
+                       DRM_DEBUG( "Looking for: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
+                               map->offset, map->size, map->type );
                        list_for_each( _list, &dev->maplist->head ) {
                                drm_map_list_t *_entry = list_entry( _list, drm_map_list_t, head );
-                               if ( _entry->map && _entry->map->type == map->type &&
-                                               _entry->map->offset == map->offset &&
-                                               _entry->map->size >= map->size ) {
+                               DRM_DEBUG( "Checking: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
+                                       _entry->map->offset, _entry->map->size, _entry->map->type );
+                               if ( _entry->map && map->type == _entry->map->type  &&
+                                               map->offset == _entry->map->offset ) {
                                        DRM(free)( map, sizeof(*map), DRM_MEM_MAPS );
                                        map = _entry->map;
                                        DRM_DEBUG( "Found existing: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
index 0e5524f..dc3c96e 100644 (file)
@@ -979,6 +979,7 @@ int DRM(ioctl)( struct inode *inode, struct file *filp,
        }
 
        atomic_dec( &dev->ioctl_count );
+       if (retcode) DRM_DEBUG( "ret = %x\n", retcode);
        return retcode;
 }
 
index 84ca1f4..f48ef6f 100644 (file)
@@ -182,11 +182,14 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
 
                /* If permanent maps are implemented, maps must match */
                if (permanent_maps) {
+                       DRM_DEBUG( "Looking for: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
+                               map->offset, map->size, map->type );
                        list_for_each( _list, &dev->maplist->head ) {
                                drm_map_list_t *_entry = list_entry( _list, drm_map_list_t, head );
-                               if ( _entry->map && _entry->map->type == map->type &&
-                                               _entry->map->offset == map->offset &&
-                                               _entry->map->size >= map->size ) {
+                               DRM_DEBUG( "Checking: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
+                                       _entry->map->offset, _entry->map->size, _entry->map->type );
+                               if ( _entry->map && map->type == _entry->map->type  &&
+                                               map->offset == _entry->map->offset ) {
                                        DRM(free)( map, sizeof(*map), DRM_MEM_MAPS );
                                        map = _entry->map;
                                        DRM_DEBUG( "Found existing: offset = 0x%08lx, size = 0x%08lx, type = %d\n",
index 0e5524f..dc3c96e 100644 (file)
@@ -979,6 +979,7 @@ int DRM(ioctl)( struct inode *inode, struct file *filp,
        }
 
        atomic_dec( &dev->ioctl_count );
+       if (retcode) DRM_DEBUG( "ret = %x\n", retcode);
        return retcode;
 }
 
index 27a1beb..b1b9bf6 100644 (file)
@@ -1743,9 +1743,8 @@ int radeon_preinit( struct drm_device *dev, unsigned long flags )
        dev_priv->flags = flags;
 
        /* registers */
-       /* PCI space is twice the real size, so that you can have a RW and RO mapping */
        if( (ret = DRM(initmap)( dev, pci_resource_start( dev->pdev, 2 ),
-                       pci_resource_len( dev->pdev, 2 ) / 2, _DRM_REGISTERS, 0 )))
+                       pci_resource_len( dev->pdev, 2 ), _DRM_REGISTERS, 0 )))
                return ret;
 
        /* framebuffer */
index 27a1beb..b1b9bf6 100644 (file)
@@ -1743,9 +1743,8 @@ int radeon_preinit( struct drm_device *dev, unsigned long flags )
        dev_priv->flags = flags;
 
        /* registers */
-       /* PCI space is twice the real size, so that you can have a RW and RO mapping */
        if( (ret = DRM(initmap)( dev, pci_resource_start( dev->pdev, 2 ),
-                       pci_resource_len( dev->pdev, 2 ) / 2, _DRM_REGISTERS, 0 )))
+                       pci_resource_len( dev->pdev, 2 ), _DRM_REGISTERS, 0 )))
                return ret;
 
        /* framebuffer */