This makes the i810/i830 use the drm_core_ioremap functions.
Signed-off-by: Dave Airlie <airlied@linux.ie>
                    (drm_i810_private_t *) dev->dev_private;
 
                if (dev_priv->ring.virtual_start) {
-                       drm_ioremapfree((void *)dev_priv->ring.virtual_start,
-                                       dev_priv->ring.Size, dev);
+                       drm_core_ioremapfree(&dev_priv->ring.map, dev);
                }
                if (dev_priv->hw_status_page) {
                        pci_free_consistent(dev->pdev, PAGE_SIZE,
                for (i = 0; i < dma->buf_count; i++) {
                        drm_buf_t *buf = dma->buflist[i];
                        drm_i810_buf_priv_t *buf_priv = buf->dev_private;
+
                        if (buf_priv->kernel_virtual && buf->total)
-                               drm_ioremapfree(buf_priv->kernel_virtual,
-                                               buf->total, dev);
+                               drm_core_ioremapfree(&buf_priv->map, dev);
                }
        }
        return 0;
 
                *buf_priv->in_use = I810_BUF_FREE;
 
-               buf_priv->kernel_virtual = drm_ioremap(buf->bus_address,
-                                                      buf->total, dev);
+               buf_priv->map.offset = buf->bus_address;
+               buf_priv->map.size = buf->total;
+               buf_priv->map.type = _DRM_AGP;
+               buf_priv->map.flags = 0;
+               buf_priv->map.mtrr = 0;
+
+               drm_core_ioremap(&buf_priv->map, dev);
+               buf_priv->kernel_virtual = buf_priv->map.handle;
+
        }
        return 0;
 }
        dev_priv->ring.End = init->ring_end;
        dev_priv->ring.Size = init->ring_size;
 
-       dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base +
-                                                  init->ring_start,
-                                                  init->ring_size, dev);
+       dev_priv->ring.map.offset = dev->agp->base + init->ring_start;
+       dev_priv->ring.map.size = init->ring_size;
+       dev_priv->ring.map.type = _DRM_AGP;
+       dev_priv->ring.map.flags = 0;
+       dev_priv->ring.map.mtrr = 0;
 
-       if (dev_priv->ring.virtual_start == NULL) {
+       drm_core_ioremap(&dev_priv->ring.map, dev);
+
+       if (dev_priv->ring.map.handle == NULL) {
                dev->dev_private = (void *)dev_priv;
                i810_dma_cleanup(dev);
                DRM_ERROR("can not ioremap virtual address for"
                          " ring buffer\n");
-               return -ENOMEM;
+               return DRM_ERR(ENOMEM);
        }
 
+       dev_priv->ring.virtual_start = dev_priv->ring.map.handle;
+
        dev_priv->ring.tail_mask = dev_priv->ring.Size - 1;
 
        dev_priv->w = init->w;
 
        int currently_mapped;
        void *virtual;
        void *kernel_virtual;
+       drm_local_map_t map;
 } drm_i810_buf_priv_t;
 
 typedef struct _drm_i810_ring_buffer {
        int head;
        int tail;
        int space;
+       drm_local_map_t map;
 } drm_i810_ring_buffer_t;
 
 typedef struct drm_i810_private {
 
                    (drm_i830_private_t *) dev->dev_private;
 
                if (dev_priv->ring.virtual_start) {
-                       drm_ioremapfree((void *)dev_priv->ring.virtual_start,
-                                       dev_priv->ring.Size, dev);
+                       drm_core_ioremapfree(&dev_priv->ring.map, dev);
                }
                if (dev_priv->hw_status_page) {
                        pci_free_consistent(dev->pdev, PAGE_SIZE,
                        drm_buf_t *buf = dma->buflist[i];
                        drm_i830_buf_priv_t *buf_priv = buf->dev_private;
                        if (buf_priv->kernel_virtual && buf->total)
-                               drm_ioremapfree(buf_priv->kernel_virtual,
-                                               buf->total, dev);
+                               drm_core_ioremapfree(&buf_priv->map, dev);
                }
        }
        return 0;
 
                *buf_priv->in_use = I830_BUF_FREE;
 
-               buf_priv->kernel_virtual = drm_ioremap(buf->bus_address,
-                                                      buf->total, dev);
+               buf_priv->map.offset = buf->bus_address;
+               buf_priv->map.size = buf->total;
+               buf_priv->map.type = _DRM_AGP;
+               buf_priv->map.flags = 0;
+               buf_priv->map.mtrr = 0;
+
+               drm_core_ioremap(&buf_priv->map, dev);
+               buf_priv->kernel_virtual = buf_priv->map.handle;
        }
        return 0;
 }
        dev_priv->ring.End = init->ring_end;
        dev_priv->ring.Size = init->ring_size;
 
-       dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base +
-                                                  init->ring_start,
-                                                  init->ring_size, dev);
+       dev_priv->ring.map.offset = dev->agp->base + init->ring_start;
+       dev_priv->ring.map.size = init->ring_size;
+       dev_priv->ring.map.type = _DRM_AGP;
+       dev_priv->ring.map.flags = 0;
+       dev_priv->ring.map.mtrr = 0;
+
+       drm_core_ioremap(&dev_priv->ring.map, dev);
 
-       if (dev_priv->ring.virtual_start == NULL) {
+       if (dev_priv->ring.map.handle == NULL) {
                dev->dev_private = (void *)dev_priv;
                i830_dma_cleanup(dev);
                DRM_ERROR("can not ioremap virtual address for"
                          " ring buffer\n");
-               return -ENOMEM;
+               return DRM_ERR(ENOMEM);
        }
 
+       dev_priv->ring.virtual_start = dev_priv->ring.map.handle;
+
        dev_priv->ring.tail_mask = dev_priv->ring.Size - 1;
 
        dev_priv->w = init->w;
 
        int currently_mapped;
        void __user *virtual;
        void *kernel_virtual;
+       drm_local_map_t map;
 } drm_i830_buf_priv_t;
 
 typedef struct _drm_i830_ring_buffer {
        int head;
        int tail;
        int space;
+       drm_local_map_t map;
 } drm_i830_ring_buffer_t;
 
 typedef struct drm_i830_private {