diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 6abb238b25c9..de0cf3315484 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -475,7 +475,7 @@ static int amdgpu_wb_init(struct amdgpu_device *adev)  	int r;  	if (adev->wb.wb_obj == NULL) { -		r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * 4, +		r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * sizeof(uint32_t),  					    PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT,  					    &adev->wb.wb_obj, &adev->wb.gpu_addr,  					    (void **)&adev->wb.wb); @@ -488,7 +488,7 @@ static int amdgpu_wb_init(struct amdgpu_device *adev)  		memset(&adev->wb.used, 0, sizeof(adev->wb.used));  		/* clear wb memory */ -		memset((char *)adev->wb.wb, 0, AMDGPU_GPU_PAGE_SIZE); +		memset((char *)adev->wb.wb, 0, AMDGPU_MAX_WB * sizeof(uint32_t));  	}  	return 0; @@ -2094,8 +2094,11 @@ int amdgpu_device_resume(struct drm_device *dev, bool resume, bool fbcon)  	}  	r = amdgpu_late_init(adev); -	if (r) +	if (r) { +		if (fbcon) +			console_unlock();  		return r; +	}  	/* pin cursors */  	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { @@ -2587,7 +2590,7 @@ static ssize_t amdgpu_debugfs_regs_read(struct file *f, char __user *buf,  		use_bank = 0;  	} -	*pos &= 0x3FFFF; +	*pos &= (1UL << 22) - 1;  	if (use_bank) {  		if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) || @@ -2663,7 +2666,7 @@ static ssize_t amdgpu_debugfs_regs_write(struct file *f, const char __user *buf,  		use_bank = 0;  	} -	*pos &= 0x3FFFF; +	*pos &= (1UL << 22) - 1;  	if (use_bank) {  		if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) ||  | 
