drm: updated DRM map patch for 32/64 bit systems
[linux-2.6.git] / drivers / char / drm / i810_dma.c
index 24857cc6c23b3f37fbc57ce514c87f3d43ffbd4b..f9fd5abd774b97ce74ddad654e7a848b111233c0 100644 (file)
@@ -90,16 +90,7 @@ static int i810_freelist_put(drm_device_t *dev, drm_buf_t *buf)
        return 0;
 }
 
-static struct file_operations i810_buffer_fops = {
-       .open    = drm_open,
-       .flush   = drm_flush,
-       .release = drm_release,
-       .ioctl   = drm_ioctl,
-       .mmap    = i810_mmap_buffers,
-       .fasync  = drm_fasync,
-};
-
-int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma)
+static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma)
 {
        drm_file_t          *priv         = filp->private_data;
        drm_device_t        *dev;
@@ -126,6 +117,15 @@ int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma)
        return 0;
 }
 
+static struct file_operations i810_buffer_fops = {
+       .open    = drm_open,
+       .flush   = drm_flush,
+       .release = drm_release,
+       .ioctl   = drm_ioctl,
+       .mmap    = i810_mmap_buffers,
+       .fasync  = drm_fasync,
+};
+
 static int i810_map_buffer(drm_buf_t *buf, struct file *filp)
 {
        drm_file_t        *priv   = filp->private_data;
@@ -351,6 +351,7 @@ static int i810_dma_initialize(drm_device_t *dev,
                DRM_ERROR("can not find mmio map!\n");
                return -EINVAL;
        }
+       dev->agp_buffer_token = init->buffers_offset;
        dev->agp_buffer_map = drm_core_findmap(dev, init->buffers_offset);
        if (!dev->agp_buffer_map) {
                dev->dev_private = (void *)dev_priv;
@@ -1003,8 +1004,8 @@ void i810_reclaim_buffers(drm_device_t *dev, struct file *filp)
        }
 }
 
-int i810_flush_ioctl(struct inode *inode, struct file *filp,
-                    unsigned int cmd, unsigned long arg)
+static int i810_flush_ioctl(struct inode *inode, struct file *filp,
+                           unsigned int cmd, unsigned long arg)
 {
        drm_file_t        *priv   = filp->private_data;
        drm_device_t      *dev    = priv->head->dev;
@@ -1383,3 +1384,19 @@ drm_ioctl_desc_t i810_ioctls[] = {
 };
 
 int i810_max_ioctl = DRM_ARRAY_SIZE(i810_ioctls);
+
+/**
+ * Determine if the device really is AGP or not.
+ *
+ * All Intel graphics chipsets are treated as AGP, even if they are really
+ * PCI-e.
+ *
+ * \param dev   The device to be tested.
+ *
+ * \returns
+ * A value of 1 is always retured to indictate every i810 is AGP.
+ */
+int i810_driver_device_is_agp(drm_device_t * dev)
+{
+       return 1;
+}