diff options
| author | Christian König <christian.koenig@amd.com> | 2015-05-27 04:22:47 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-06-03 21:03:58 -0400 |
| commit | e176fe176d3a02d9409e0f36502799083ae13e1b (patch) | |
| tree | c221f5518ed85fa89828a170aff55bdc80f0a221 /drivers | |
| parent | 8dacc127fcb3b60e6893ec74ee2f615d78dcbc4e (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.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 40 |
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 | ||
| 1559 | struct amdgpu_pm { | 1559 | struct 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 | ||
| 630 | done: | 629 | done: |
| 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 | ||
| 969 | static struct vm_operations_struct amdgpu_ttm_vm_ops; | ||
| 970 | static const struct vm_operations_struct *ttm_vm_ops = NULL; | ||
| 971 | |||
| 972 | static 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 | |||
| 989 | int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma) | 969 | int 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 | ||
| 1017 | int amdgpu_copy_buffer(struct amdgpu_ring *ring, | 985 | int amdgpu_copy_buffer(struct amdgpu_ring *ring, |
