diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_drv.h')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.h | 23 | 
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index e7c5ea125d45..3be7a56b14f1 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -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, -		ktime_t *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);  | 
