diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 50 | 
1 files changed, 22 insertions, 28 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 548e2bb72d99..069cc28941ba 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -179,6 +179,7 @@ struct amdgpu_ring;  struct amdgpu_semaphore;  struct amdgpu_cs_parser;  struct amdgpu_irq_src; +struct amdgpu_fpriv;  enum amdgpu_cp_irq {  	AMDGPU_CP_IRQ_GFX_EOP = 0, @@ -984,27 +985,32 @@ struct amdgpu_vm_manager {   * context related structures   */ -struct amdgpu_ctx_state { -	uint64_t flags; -	uint32_t hangs; -}; -  struct amdgpu_ctx { -	/* call kref_get()before CS start and kref_put() after CS fence signaled */ -	struct kref refcount; -	struct amdgpu_fpriv *fpriv; -	struct amdgpu_ctx_state state; -	uint32_t id; -	unsigned reset_counter; +	struct kref		refcount; +	unsigned		reset_counter;  };  struct amdgpu_ctx_mgr { -	struct amdgpu_device *adev; -	struct idr ctx_handles; -	/* lock for IDR system */ -	struct mutex lock; +	struct amdgpu_device	*adev; +	struct mutex		lock; +	/* protected by lock */ +	struct idr		ctx_handles;  }; +int amdgpu_ctx_alloc(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv, +		     uint32_t *id); +int amdgpu_ctx_free(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv, +		    uint32_t id); + +void amdgpu_ctx_fini(struct amdgpu_fpriv *fpriv); + +struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id); +int amdgpu_ctx_put(struct amdgpu_ctx *ctx); + +int amdgpu_ctx_ioctl(struct drm_device *dev, void *data, +		     struct drm_file *filp); + +  /*   * file private structure   */ @@ -1013,7 +1019,7 @@ struct amdgpu_fpriv {  	struct amdgpu_vm	vm;  	struct mutex		bo_list_lock;  	struct idr		bo_list_handles; -	struct amdgpu_ctx_mgr ctx_mgr; +	struct amdgpu_ctx_mgr	ctx_mgr;  };  /* @@ -1850,18 +1856,6 @@ struct amdgpu_atcs {  	struct amdgpu_atcs_functions functions;  }; -int amdgpu_ctx_alloc(struct amdgpu_device *adev,struct amdgpu_fpriv *fpriv, -							uint32_t *id,uint32_t flags); -int amdgpu_ctx_free(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv, -						  uint32_t id); - -void amdgpu_ctx_fini(struct amdgpu_fpriv *fpriv); -struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id); -int amdgpu_ctx_put(struct amdgpu_ctx *ctx); - -extern int amdgpu_ctx_ioctl(struct drm_device *dev, void *data, -						 struct drm_file *filp); -  /*   * CGS   */  | 

