···4848}4949EXPORT_SYMBOL(drm_get_resource_len);50505151-static drm_local_map_t *drm_find_matching_map(drm_device_t *dev,5252- drm_local_map_t *map)5151+static drm_map_list_t *drm_find_matching_map(drm_device_t *dev,5252+ drm_local_map_t *map)5353{5454 struct list_head *list;5555···5757 drm_map_list_t *entry = list_entry(list, drm_map_list_t, head);5858 if (entry->map && map->type == entry->map->type &&5959 entry->map->offset == map->offset) {6060- return entry->map;6060+ return entry;6161 }6262 }6363···114114 * type. Adds the map to the map list drm_device::maplist. Adds MTRR's where115115 * applicable and if supported by the kernel.116116 */117117-int drm_addmap(drm_device_t * dev, unsigned int offset,118118- unsigned int size, drm_map_type_t type,119119- drm_map_flags_t flags, drm_local_map_t ** map_ptr)117117+int drm_addmap_core(drm_device_t * dev, unsigned int offset,118118+ unsigned int size, drm_map_type_t type,119119+ drm_map_flags_t flags, drm_map_list_t **maplist)120120{121121 drm_map_t *map;122122 drm_map_list_t *list;123123 drm_dma_handle_t *dmah;124124- drm_local_map_t *found_map;125124126125 map = drm_alloc( sizeof(*map), DRM_MEM_MAPS );127126 if ( !map )···165166 * needing to be aware of it. Therefore, we just return success166167 * when the server tries to create a duplicate map.167168 */168168- found_map = drm_find_matching_map(dev, map);169169- if (found_map != NULL) {170170- if (found_map->size != map->size) {169169+ list = drm_find_matching_map(dev, map);170170+ if (list != NULL) {171171+ if (list->map->size != map->size) {171172 DRM_DEBUG("Matching maps of type %d with "172173 "mismatched sizes, (%ld vs %ld)\n",173173- map->type, map->size, found_map->size);174174- found_map->size = map->size;174174+ map->type, map->size, list->map->size);175175+ list->map->size = map->size;175176 }176177177178 drm_free(map, sizeof(*map), DRM_MEM_MAPS);178178- *map_ptr = found_map;179179+ *maplist = list;179180 return 0;180181 }181182···263264 : map->offset, dev);264265 up(&dev->struct_sem);265266266266- *map_ptr = map;267267+ *maplist = list;267268 return 0;269269+}270270+271271+int drm_addmap(drm_device_t *dev, unsigned int offset,272272+ unsigned int size, drm_map_type_t type,273273+ drm_map_flags_t flags, drm_local_map_t **map_ptr)274274+{275275+ drm_map_list_t *list;276276+ int rc;277277+278278+ rc = drm_addmap_core(dev, offset, size, type, flags, &list);279279+ if (!rc)280280+ *map_ptr = list->map;281281+ return rc;268282}269283EXPORT_SYMBOL(drm_addmap);270284···287275 drm_file_t *priv = filp->private_data;288276 drm_device_t *dev = priv->head->dev;289277 drm_map_t map;290290- drm_map_t *map_ptr;278278+ drm_map_list_t *maplist;291279 drm_map_t __user *argp = (void __user *)arg;292280 int err;293293- unsigned long handle = 0;294281295282 if (!(filp->f_mode & 3))296283 return -EACCES; /* Require read/write */···298287 return -EFAULT;299288 }300289301301- err = drm_addmap(dev, map.offset, map.size, map.type, map.flags,302302- &map_ptr);290290+ err = drm_addmap_core(dev, map.offset, map.size, map.type, map.flags,291291+ &maplist);303292304304- if (err) {293293+ if (err) 305294 return err;306306- }307295308308- {309309- drm_map_list_t *_entry;310310- list_for_each_entry(_entry, &dev->maplist->head, head) {311311- if (_entry->map == map_ptr)312312- handle = _entry->user_token;313313- }314314- if (!handle)315315- return -EFAULT;316316- }317317-318318- if (copy_to_user(argp, map_ptr, sizeof(*map_ptr)))296296+ if (copy_to_user(argp, maplist->map, sizeof(drm_map_t)))319297 return -EFAULT;320320- if (put_user(handle, &argp->handle))298298+ if (put_user(maplist->user_token, &argp->handle))321299 return -EFAULT;322300 return 0;323301}···10411041 return 0;10421042}1043104310441044-int drm_addbufs_fb(drm_device_t *dev, drm_buf_desc_t *request)10441044+static int drm_addbufs_fb(drm_device_t *dev, drm_buf_desc_t *request)10451045{10461046 drm_device_dma_t *dma = dev->dma;10471047 drm_buf_entry_t *entry;
+1-1
drivers/char/drm/drm_context.c
···308308 *309309 * Attempt to set drm_device::context_flag.310310 */311311-int drm_context_switch( drm_device_t *dev, int old, int new )311311+static int drm_context_switch( drm_device_t *dev, int old, int new )312312{313313 if ( test_and_set_bit( 0, &dev->context_flag ) ) {314314 DRM_ERROR( "Reentering -- FIXME\n" );
···417417 return 0;418418}419419420420+#if __OS_HAS_AGP420421/**421422 * Bootstrap the driver for AGP DMA.422423 * ···561560 DRM_INFO("Initialized card for AGP DMA.\n");562561 return 0;563562}563563+#else564564+static int mga_do_agp_dma_bootstrap(drm_device_t * dev,565565+ drm_mga_dma_bootstrap_t * dma_bs)566566+{567567+ return -EINVAL;568568+}569569+#endif564570565571/**566572 * Bootstrap the driver for PCI DMA.···705697 * carve off portions of it for internal uses. The remaining memory706698 * is returned to user-mode to be used for AGP textures.707699 */708708-709700 if (is_agp) {710701 err = mga_do_agp_dma_bootstrap(dev, dma_bs);711702 }···939932 drm_core_ioremapfree(dev->agp_buffer_map, dev);940933941934 if (dev_priv->used_new_dma_init) {935935+#if __OS_HAS_AGP942936 if (dev_priv->agp_mem != NULL) {943937 dev_priv->agp_textures = NULL;944938 drm_unbind_agp(dev_priv->agp_mem);···952944 if ((dev->agp != NULL) && dev->agp->acquired) {953945 err = drm_agp_release(dev);954946 }955955-947947+#endif956948 dev_priv->used_new_dma_init = 0;957949 }958950···973965 }974966 }975967976976- return 0;968968+ return err;977969}978970979971int mga_dma_init( DRM_IOCTL_ARGS )