aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2015-05-27 04:22:47 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-06-03 21:03:58 -0400
commite176fe176d3a02d9409e0f36502799083ae13e1b (patch)
treec221f5518ed85fa89828a170aff55bdc80f0a221 /drivers
parent8dacc127fcb3b60e6893ec74ee2f615d78dcbc4e (diff)
drm/amdgpu: remove mclk_lock
Not needed any more. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_object.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c40
5 files changed, 4 insertions, 43 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 6c8c24ba463d..4300e3d4b1cd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1558,8 +1558,6 @@ struct amdgpu_dpm {
1558 1558
1559struct amdgpu_pm { 1559struct amdgpu_pm {
1560 struct mutex mutex; 1560 struct mutex mutex;
1561 /* write locked while reprogramming mclk */
1562 struct rw_semaphore mclk_lock;
1563 u32 current_sclk; 1561 u32 current_sclk;
1564 u32 current_mclk; 1562 u32 current_mclk;
1565 u32 default_sclk; 1563 u32 default_sclk;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 175dc67130c3..36be03ce76c2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1401,7 +1401,6 @@ int amdgpu_device_init(struct amdgpu_device *adev,
1401 mutex_init(&adev->gfx.gpu_clock_mutex); 1401 mutex_init(&adev->gfx.gpu_clock_mutex);
1402 mutex_init(&adev->srbm_mutex); 1402 mutex_init(&adev->srbm_mutex);
1403 mutex_init(&adev->grbm_idx_mutex); 1403 mutex_init(&adev->grbm_idx_mutex);
1404 init_rwsem(&adev->pm.mclk_lock);
1405 init_rwsem(&adev->exclusive_lock); 1404 init_rwsem(&adev->exclusive_lock);
1406 mutex_init(&adev->mn_lock); 1405 mutex_init(&adev->mn_lock);
1407 hash_init(adev->mn_hash); 1406 hash_init(adev->mn_hash);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 62cabfb5dff8..7d801e016e31 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -272,11 +272,9 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
272 bo->flags = flags; 272 bo->flags = flags;
273 amdgpu_fill_placement_to_bo(bo, placement); 273 amdgpu_fill_placement_to_bo(bo, placement);
274 /* Kernel allocation are uninterruptible */ 274 /* Kernel allocation are uninterruptible */
275 down_read(&adev->pm.mclk_lock);
276 r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type, 275 r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type,
277 &bo->placement, page_align, !kernel, NULL, 276 &bo->placement, page_align, !kernel, NULL,
278 acc_size, sg, NULL, &amdgpu_ttm_bo_destroy); 277 acc_size, sg, NULL, &amdgpu_ttm_bo_destroy);
279 up_read(&adev->pm.mclk_lock);
280 if (unlikely(r != 0)) { 278 if (unlikely(r != 0)) {
281 return r; 279 return r;
282 } 280 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index 89782543f854..605a9e42f943 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -581,7 +581,6 @@ force:
581 } 581 }
582 582
583 mutex_lock(&adev->ddev->struct_mutex); 583 mutex_lock(&adev->ddev->struct_mutex);
584 down_write(&adev->pm.mclk_lock);
585 mutex_lock(&adev->ring_lock); 584 mutex_lock(&adev->ring_lock);
586 585
587 /* update whether vce is active */ 586 /* update whether vce is active */
@@ -629,7 +628,6 @@ force:
629 628
630done: 629done:
631 mutex_unlock(&adev->ring_lock); 630 mutex_unlock(&adev->ring_lock);
632 up_write(&adev->pm.mclk_lock);
633 mutex_unlock(&adev->ddev->struct_mutex); 631 mutex_unlock(&adev->ddev->struct_mutex);
634} 632}
635 633
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 729e0bb3070f..d3706a498293 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -966,52 +966,20 @@ void amdgpu_ttm_set_active_vram_size(struct amdgpu_device *adev, u64 size)
966 man->size = size >> PAGE_SHIFT; 966 man->size = size >> PAGE_SHIFT;
967} 967}
968 968
969static struct vm_operations_struct amdgpu_ttm_vm_ops;
970static const struct vm_operations_struct *ttm_vm_ops = NULL;
971
972static int amdgpu_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
973{
974 struct ttm_buffer_object *bo;
975 struct amdgpu_device *adev;
976 int r;
977
978 bo = (struct ttm_buffer_object *)vma->vm_private_data;
979 if (bo == NULL) {
980 return VM_FAULT_NOPAGE;
981 }
982 adev = amdgpu_get_adev(bo->bdev);
983 down_read(&adev->pm.mclk_lock);
984 r = ttm_vm_ops->fault(vma, vmf);
985 up_read(&adev->pm.mclk_lock);
986 return r;
987}
988
989int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma) 969int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma)
990{ 970{
991 struct drm_file *file_priv; 971 struct drm_file *file_priv;
992 struct amdgpu_device *adev; 972 struct amdgpu_device *adev;
993 int r;
994 973
995 if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) { 974 if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
996 return -EINVAL; 975 return -EINVAL;
997 }
998 976
999 file_priv = filp->private_data; 977 file_priv = filp->private_data;
1000 adev = file_priv->minor->dev->dev_private; 978 adev = file_priv->minor->dev->dev_private;
1001 if (adev == NULL) { 979 if (adev == NULL)
1002 return -EINVAL; 980 return -EINVAL;
1003 } 981
1004 r = ttm_bo_mmap(filp, vma, &adev->mman.bdev); 982 return ttm_bo_mmap(filp, vma, &adev->mman.bdev);
1005 if (unlikely(r != 0)) {
1006 return r;
1007 }
1008 if (unlikely(ttm_vm_ops == NULL)) {
1009 ttm_vm_ops = vma->vm_ops;
1010 amdgpu_ttm_vm_ops = *ttm_vm_ops;
1011 amdgpu_ttm_vm_ops.fault = &amdgpu_ttm_fault;
1012 }
1013 vma->vm_ops = &amdgpu_ttm_vm_ops;
1014 return 0;
1015} 983}
1016 984
1017int amdgpu_copy_buffer(struct amdgpu_ring *ring, 985int amdgpu_copy_buffer(struct amdgpu_ring *ring,