diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 24 | 
1 files changed, 12 insertions, 12 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index f60ff041c0e2..4dccadea220a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -2611,25 +2611,25 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)  	total = true;  	for (i = 0; i < adev->num_ip_blocks; i++) { +		ip_block = &adev->ip_blocks[i]; +  		if ((amdgpu_ip_block_mask & (1 << i)) == 0) {  			DRM_WARN("disabled ip block: %d <%s>\n",  				  i, adev->ip_blocks[i].version->funcs->name);  			adev->ip_blocks[i].status.valid = false; -		} else { -			if (adev->ip_blocks[i].version->funcs->early_init) { -				r = adev->ip_blocks[i].version->funcs->early_init((void *)adev); -				if (r == -ENOENT) { -					adev->ip_blocks[i].status.valid = false; -				} else if (r) { -					DRM_ERROR("early_init of IP block <%s> failed %d\n", -						  adev->ip_blocks[i].version->funcs->name, r); -					total = false; -				} else { -					adev->ip_blocks[i].status.valid = true; -				} +		} else if (ip_block->version->funcs->early_init) { +			r = ip_block->version->funcs->early_init(ip_block); +			if (r == -ENOENT) { +				adev->ip_blocks[i].status.valid = false; +			} else if (r) { +				DRM_ERROR("early_init of IP block <%s> failed %d\n", +					  adev->ip_blocks[i].version->funcs->name, r); +				total = false;  			} else {  				adev->ip_blocks[i].status.valid = true;  			} +		} else { +			adev->ip_blocks[i].status.valid = true;  		}  		/* get the vbios after the asic_funcs are set up */  		if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) { | 
