Merge tag 'topic/drm-fixes-2015-07-04' of git://anongit.freedesktop.org/drm-intel
[cascardo/linux.git] / include / drm / drmP.h
index 62c4077..48db6a5 100644 (file)
@@ -326,6 +326,10 @@ struct drm_file {
        struct list_head fbs;
        struct mutex fbs_lock;
 
+       /** User-created blob properties; this retains a reference on the
+        *  property. */
+       struct list_head blobs;
+
        wait_queue_head_t event_wait;
        struct list_head event_list;
        int event_space;
@@ -355,8 +359,7 @@ struct drm_lock_data {
  * @minor: Link back to minor char device we are master for. Immutable.
  * @unique: Unique identifier: e.g. busid. Protected by drm_global_mutex.
  * @unique_len: Length of unique field. Protected by drm_global_mutex.
- * @magiclist: Hash of used authentication tokens. Protected by struct_mutex.
- * @magicfree: List of used authentication tokens. Protected by struct_mutex.
+ * @magic_map: Map of used authentication tokens. Protected by struct_mutex.
  * @lock: DRI lock information.
  * @driver_priv: Pointer to driver-private information.
  */
@@ -365,8 +368,7 @@ struct drm_master {
        struct drm_minor *minor;
        char *unique;
        int unique_len;
-       struct drm_open_hash magiclist;
-       struct list_head magicfree;
+       struct idr magic_map;
        struct drm_lock_data lock;
        void *driver_priv;
 };
@@ -686,9 +688,13 @@ struct drm_pending_vblank_event {
 struct drm_vblank_crtc {
        struct drm_device *dev;         /* pointer to the drm_device */
        wait_queue_head_t queue;        /**< VBLANK wait queue */
-       struct timeval time[DRM_VBLANKTIME_RBSIZE];     /**< timestamp of current count */
        struct timer_list disable_timer;                /* delayed disable timer */
-       atomic_t count;                 /**< number of VBLANK interrupts */
+
+       /* vblank counter, protected by dev->vblank_time_lock for writes */
+       unsigned long count;
+       /* vblank timestamps, protected by dev->vblank_time_lock for writes */
+       struct timeval time[DRM_VBLANKTIME_RBSIZE];
+
        atomic_t refcount;              /* number of users of vblank interruptsper crtc */
        u32 last;                       /* protected by dev->vbl_lock, used */
                                        /* for wraparound handling */
@@ -812,6 +818,7 @@ struct drm_device {
 #endif
 
        struct platform_device *platformdev; /**< Platform device struture */
+       struct virtio_device *virtdev;
 
        struct drm_sg_mem *sg;  /**< Scatter gather memory */
        unsigned int num_crtcs;                  /**< Number of CRTCs on this device */