diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c index 651c7abfde03..1ebb91db2274 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c @@ -206,6 +206,12 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags)  			adev->runpm = true;  			break;  		} +		/* XXX: disable runtime pm if we are the primary adapter +		 * to avoid displays being re-enabled after DPMS. +		 * This needs to be sorted out and fixed properly. +		 */ +		if (adev->is_fw_fb) +			adev->runpm = false;  		if (adev->runpm)  			dev_info(adev->dev, "Using BACO for runtime pm\n");  	} @@ -672,13 +678,13 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)  		ui64 = atomic64_read(&adev->num_vram_cpu_page_faults);  		return copy_to_user(out, &ui64, min(size, 8u)) ? -EFAULT : 0;  	case AMDGPU_INFO_VRAM_USAGE: -		ui64 = amdgpu_vram_mgr_usage(ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM)); +		ui64 = amdgpu_vram_mgr_usage(&adev->mman.vram_mgr);  		return copy_to_user(out, &ui64, min(size, 8u)) ? -EFAULT : 0;  	case AMDGPU_INFO_VIS_VRAM_USAGE: -		ui64 = amdgpu_vram_mgr_vis_usage(ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM)); +		ui64 = amdgpu_vram_mgr_vis_usage(&adev->mman.vram_mgr);  		return copy_to_user(out, &ui64, min(size, 8u)) ? -EFAULT : 0;  	case AMDGPU_INFO_GTT_USAGE: -		ui64 = amdgpu_gtt_mgr_usage(ttm_manager_type(&adev->mman.bdev, TTM_PL_TT)); +		ui64 = amdgpu_gtt_mgr_usage(&adev->mman.gtt_mgr);  		return copy_to_user(out, &ui64, min(size, 8u)) ? -EFAULT : 0;  	case AMDGPU_INFO_GDS_CONFIG: {  		struct drm_amdgpu_info_gds gds_info; @@ -709,8 +715,6 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)  	}  	case AMDGPU_INFO_MEMORY: {  		struct drm_amdgpu_memory_info mem; -		struct ttm_resource_manager *vram_man = -			ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM);  		struct ttm_resource_manager *gtt_man =  			ttm_manager_type(&adev->mman.bdev, TTM_PL_TT);  		memset(&mem, 0, sizeof(mem)); @@ -719,7 +723,7 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)  			atomic64_read(&adev->vram_pin_size) -  			AMDGPU_VM_RESERVED_VRAM;  		mem.vram.heap_usage = -			amdgpu_vram_mgr_usage(vram_man); +			amdgpu_vram_mgr_usage(&adev->mman.vram_mgr);  		mem.vram.max_allocation = mem.vram.usable_heap_size * 3 / 4;  		mem.cpu_accessible_vram.total_heap_size = @@ -729,7 +733,7 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)  			    atomic64_read(&adev->visible_pin_size),  			    mem.vram.usable_heap_size);  		mem.cpu_accessible_vram.heap_usage = -			amdgpu_vram_mgr_vis_usage(vram_man); +			amdgpu_vram_mgr_vis_usage(&adev->mman.vram_mgr);  		mem.cpu_accessible_vram.max_allocation =  			mem.cpu_accessible_vram.usable_heap_size * 3 / 4; @@ -738,7 +742,7 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)  		mem.gtt.usable_heap_size = mem.gtt.total_heap_size -  			atomic64_read(&adev->gart_pin_size);  		mem.gtt.heap_usage = -			amdgpu_gtt_mgr_usage(gtt_man); +			amdgpu_gtt_mgr_usage(&adev->mman.gtt_mgr);  		mem.gtt.max_allocation = mem.gtt.usable_heap_size * 3 / 4;  		return copy_to_user(out, &mem, |