These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / msm / msm_drv.h
index 04db4bd..3be7a56 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/list.h>
 #include <linux/iommu.h>
 #include <linux/types.h>
+#include <linux/of_graph.h>
 #include <asm/sizes.h>
 
 #ifndef CONFIG_OF
@@ -64,6 +65,19 @@ struct msm_file_private {
        int dummy;
 };
 
+enum msm_mdp_plane_property {
+       PLANE_PROP_ZPOS,
+       PLANE_PROP_ALPHA,
+       PLANE_PROP_PREMULTIPLIED,
+       PLANE_PROP_MAX_NUM
+};
+
+struct msm_vblank_ctrl {
+       struct work_struct work;
+       struct list_head event_list;
+       spinlock_t lock;
+};
+
 struct msm_drm_private {
 
        struct msm_kms *kms;
@@ -128,6 +142,9 @@ struct msm_drm_private {
        unsigned int num_connectors;
        struct drm_connector *connectors[8];
 
+       /* Properties */
+       struct drm_property *plane_property[PLANE_PROP_MAX_NUM];
+
        /* VRAM carveout, used when no IOMMU: */
        struct {
                unsigned long size;
@@ -137,6 +154,8 @@ struct msm_drm_private {
                 */
                struct drm_mm mm;
        } vram;
+
+       struct msm_vblank_ctrl vblank_ctrl;
 };
 
 struct msm_format {
@@ -164,8 +183,8 @@ int msm_atomic_commit(struct drm_device *dev,
 
 int msm_register_mmu(struct drm_device *dev, struct msm_mmu *mmu);
 
-int msm_wait_fence_interruptable(struct drm_device *dev, uint32_t fence,
-               struct timespec *timeout);
+int msm_wait_fence(struct drm_device *dev, uint32_t fence,
+               ktime_t *timeout, bool interruptible);
 int msm_queue_fence_cb(struct drm_device *dev,
                struct msm_fence_cb *cb, uint32_t fence);
 void msm_update_fence(struct drm_device *dev, uint32_t fence);
@@ -205,7 +224,7 @@ void msm_gem_move_to_active(struct drm_gem_object *obj,
                struct msm_gpu *gpu, bool write, uint32_t fence);
 void msm_gem_move_to_inactive(struct drm_gem_object *obj);
 int msm_gem_cpu_prep(struct drm_gem_object *obj, uint32_t op,
-               struct timespec *timeout);
+               ktime_t *timeout);
 int msm_gem_cpu_fini(struct drm_gem_object *obj);
 void msm_gem_free_object(struct drm_gem_object *obj);
 int msm_gem_new_handle(struct drm_device *dev, struct drm_file *file,