diff options
Diffstat (limited to 'drivers/gpu/drm/v3d/v3d_drv.h')
| -rw-r--r-- | drivers/gpu/drm/v3d/v3d_drv.h | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/v3d/v3d_drv.h b/drivers/gpu/drm/v3d/v3d_drv.h index a043ac3aae98..e6fed696ad86 100644 --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h @@ -2,6 +2,7 @@  /* Copyright (C) 2015-2018 Broadcom */  #include <linux/reservation.h> +#include <linux/mm_types.h>  #include <drm/drmP.h>  #include <drm/drm_encoder.h>  #include <drm/drm_gem.h> @@ -25,7 +26,6 @@ struct v3d_queue_state {  	u64 fence_context;  	u64 emit_seqno; -	u64 finished_seqno;  };  struct v3d_dev { @@ -85,6 +85,11 @@ struct v3d_dev {  	 */  	struct mutex reset_lock; +	/* Lock taken when creating and pushing the GPU scheduler +	 * jobs, to keep the sched-fence seqnos in order. +	 */ +	struct mutex sched_lock; +  	struct {  		u32 num_allocated;  		u32 pages_allocated; @@ -179,6 +184,8 @@ struct v3d_job {  	/* GPU virtual addresses of the start/end of the CL job. */  	u32 start, end; + +	u32 timedout_ctca, timedout_ctra;  };  struct v3d_exec_info { @@ -248,7 +255,7 @@ int v3d_mmap_bo_ioctl(struct drm_device *dev, void *data,  		      struct drm_file *file_priv);  int v3d_get_bo_offset_ioctl(struct drm_device *dev, void *data,  			    struct drm_file *file_priv); -int v3d_gem_fault(struct vm_fault *vmf); +vm_fault_t v3d_gem_fault(struct vm_fault *vmf);  int v3d_mmap(struct file *filp, struct vm_area_struct *vma);  struct reservation_object *v3d_prime_res_obj(struct drm_gem_object *obj);  int v3d_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); |