]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/char/drm/drmP.h
drm: some minor cleanups and changes to make memory manager merging easier.
[linux-2.6-omap-h63xx.git] / drivers / char / drm / drmP.h
index 9dd0760dd87a7e89b405f2f83172cc26d803962c..110629653a87d81dc8a45d6a4df2af7648adb305 100644 (file)
@@ -292,7 +292,6 @@ struct drm_magic_entry {
        struct list_head head;
        struct drm_hash_item hash_item;
        struct drm_file *priv;
-       struct drm_magic_entry *next;
 };
 
 struct drm_vma_entry {
@@ -388,8 +387,8 @@ struct drm_file {
        struct drm_head *head;
        int remove_auth_on_close;
        unsigned long lock_count;
-       void *driver_priv;
        struct file *filp;
+       void *driver_priv;
 };
 
 /** Wait queue */
@@ -401,11 +400,9 @@ struct drm_queue {
        wait_queue_head_t read_queue;   /**< Processes waiting on block_read */
        atomic_t block_write;           /**< Queue blocked for writes */
        wait_queue_head_t write_queue;  /**< Processes waiting on block_write */
-#if 1
        atomic_t total_queued;          /**< Total queued statistic */
        atomic_t total_flushed;         /**< Total flushes statistic */
        atomic_t total_locks;           /**< Total locks statistics */
-#endif
        enum drm_ctx_flags flags;       /**< Context preserving and 2D-only */
        struct drm_waitlist waitlist;   /**< Pending buffers */
        wait_queue_head_t flush_queue;  /**< Processes waiting until flush */
@@ -416,7 +413,8 @@ struct drm_queue {
  */
 struct drm_lock_data {
        struct drm_hw_lock *hw_lock;    /**< Hardware lock */
-       struct drm_file *file_priv;     /**< File descr of lock holder (0=kernel) */
+       /** Private of lock holder's file (NULL=kernel) */
+       struct drm_file *file_priv;
        wait_queue_head_t lock_queue;   /**< Queue of blocked processes */
        unsigned long lock_time;        /**< Time of last lock in jiffies */
        spinlock_t spinlock;
@@ -491,6 +489,27 @@ struct drm_sigdata {
        struct drm_hw_lock *lock;
 };
 
+
+/*
+ * Generic memory manager structs
+ */
+
+struct drm_mm_node {
+       struct list_head fl_entry;
+       struct list_head ml_entry;
+       int free;
+       unsigned long start;
+       unsigned long size;
+       struct drm_mm *mm;
+       void *private;
+};
+
+struct drm_mm {
+       struct list_head fl_entry;
+       struct list_head ml_entry;
+};
+
+
 /**
  * Mappings list
  */
@@ -498,7 +517,7 @@ struct drm_map_list {
        struct list_head head;          /**< list head */
        struct drm_hash_item hash;
        struct drm_map *map;                    /**< mapping */
-       unsigned int user_token;
+       uint64_t user_token;
 };
 
 typedef struct drm_map drm_local_map_t;
@@ -536,31 +555,11 @@ struct drm_ati_pcigart_info {
        int table_size;
 };
 
-/*
- * Generic memory manager structs
- */
-struct drm_mm_node {
-       struct list_head fl_entry;
-       struct list_head ml_entry;
-       int free;
-       unsigned long start;
-       unsigned long size;
-       struct drm_mm *mm;
-       void *private;
-};
-
-struct drm_mm {
-       struct list_head fl_entry;
-       struct list_head ml_entry;
-};
-
 /**
  * DRM driver structure. This structure represent the common code for
  * a family of cards. There will one drm_device for each card present
  * in this family
  */
-struct drm_device;
-
 struct drm_driver {
        int (*load) (struct drm_device *, unsigned long flags);
        int (*firstopen) (struct drm_device *);
@@ -752,7 +751,6 @@ struct drm_device {
        struct pci_controller *hose;
 #endif
        struct drm_sg_mem *sg;  /**< Scatter gather memory */
-       unsigned long *ctx_bitmap;      /**< context bitmap */
        void *dev_private;              /**< device private data */
        struct drm_sigdata sigdata;        /**< For block_all_signals */
        sigset_t sigmask;
@@ -1075,7 +1073,7 @@ extern void drm_sysfs_device_remove(struct class_device *class_dev);
 extern struct drm_mm_node *drm_mm_get_block(struct drm_mm_node * parent,
                                       unsigned long size,
                                       unsigned alignment);
-void drm_mm_put_block(struct drm_mm_node * cur);
+extern void drm_mm_put_block(struct drm_mm_node * cur);
 extern struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm, unsigned long size,
                                         unsigned alignment, int best_match);
 extern int drm_mm_init(struct drm_mm *mm, unsigned long start, unsigned long size);