[PATCH] drm/amdgpu: add error print when failing to add IP block(v2)

Lazar, Lijo lijo.lazar at amd.com
Thu Nov 11 07:21:47 UTC 2021



On 11/11/2021 9:41 AM, Guchun Chen wrote:
> Driver initialization is driven by IP version from IP
> discovery table. So add error print when failing to add
> ip block during driver initialization, this will be more
> friendly to user to know which IP version is not correct.
> 
> [   40.467361] [drm] host supports REQ_INIT_DATA handshake
> [   40.474076] [drm] add ip block number 0 <nv_common>
> [   40.474090] [drm] add ip block number 1 <gmc_v10_0>
> [   40.474101] [drm] add ip block number 2 <psp>
> [   40.474103] [drm] add ip block number 3 <navi10_ih>
> [   40.474114] [drm] add ip block number 4 <smu>
> [   40.474119] [drm] add ip block number 5 <amdgpu_vkms>
> [   40.474134] [drm] add ip block number 6 <gfx_v10_0>
> [   40.474143] [drm] add ip block number 7 <sdma_v5_2>
> [   40.474147] amdgpu 0000:00:08.0: amdgpu: Fatal error during GPU init
> [   40.474545] amdgpu 0000:00:08.0: amdgpu: amdgpu: finishing device.
> 
> v2: use dev_err to multi-GPU system
> 
> Signed-off-by: Guchun Chen <guchun.chen at amd.com>
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 36 +++++++++++++++++++
>   1 file changed, 36 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> index ff70bc233489..4e3669407518 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> @@ -587,6 +587,9 @@ static int amdgpu_discovery_set_common_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &nv_common_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add common ip block(GC_HWIP:0x%x)\n",
> +			adev->ip_versions[GC_HWIP][0]);

If not submitted, a minor modification to message (if that sounds 
appropriate)- "Found unsupported IP version" or "IP version is not 
supported yet". No need for v3.

Thanks,
Lijo

>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -619,6 +622,9 @@ static int amdgpu_discovery_set_gmc_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &gmc_v10_0_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add gmc ip block(GC_HWIP:0x%x)\n",
> +			adev->ip_versions[GC_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -648,6 +654,9 @@ static int amdgpu_discovery_set_ih_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &navi10_ih_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add ih ip block(OSSSYS_HWIP:0x%x)\n",
> +			adev->ip_versions[OSSSYS_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -688,6 +697,9 @@ static int amdgpu_discovery_set_psp_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add psp ip block(MP0_HWIP:0x%x)\n",
> +			adev->ip_versions[MP0_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -726,6 +738,9 @@ static int amdgpu_discovery_set_smu_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &smu_v13_0_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add smu ip block(MP1_HWIP:0x%x)\n",
> +			adev->ip_versions[MP1_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -753,6 +768,9 @@ static int amdgpu_discovery_set_display_ip_blocks(struct amdgpu_device *adev)
>   			amdgpu_device_ip_block_add(adev, &dm_ip_block);
>   			break;
>   		default:
> +			dev_err(adev->dev,
> +				"Failed to add dm ip block(DCE_HWIP:0x%x)\n",
> +				adev->ip_versions[DCE_HWIP][0]);
>   			return -EINVAL;
>   		}
>   	} else if (adev->ip_versions[DCI_HWIP][0]) {
> @@ -763,6 +781,9 @@ static int amdgpu_discovery_set_display_ip_blocks(struct amdgpu_device *adev)
>   			amdgpu_device_ip_block_add(adev, &dm_ip_block);
>   			break;
>   		default:
> +			dev_err(adev->dev,
> +				"Failed to add dm ip block(DCI_HWIP:0x%x)\n",
> +				adev->ip_versions[DCI_HWIP][0]);
>   			return -EINVAL;
>   		}
>   #endif
> @@ -796,6 +817,9 @@ static int amdgpu_discovery_set_gc_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add gfx ip block(GC_HWIP:0x%x)\n",
> +			adev->ip_versions[GC_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -829,6 +853,9 @@ static int amdgpu_discovery_set_sdma_ip_blocks(struct amdgpu_device *adev)
>   		amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block);
>   		break;
>   	default:
> +		dev_err(adev->dev,
> +			"Failed to add sdma ip block(SDMA0_HWIP:0x%x)\n",
> +			adev->ip_versions[SDMA0_HWIP][0]);
>   		return -EINVAL;
>   	}
>   	return 0;
> @@ -845,6 +872,9 @@ static int amdgpu_discovery_set_mm_ip_blocks(struct amdgpu_device *adev)
>   				amdgpu_device_ip_block_add(adev, &uvd_v7_0_ip_block);
>   			break;
>   		default:
> +			dev_err(adev->dev,
> +				"Failed to add uvd v7 ip block(UVD_HWIP:0x%x)\n",
> +				adev->ip_versions[UVD_HWIP][0]);
>   			return -EINVAL;
>   		}
>   		switch (adev->ip_versions[VCE_HWIP][0]) {
> @@ -855,6 +885,9 @@ static int amdgpu_discovery_set_mm_ip_blocks(struct amdgpu_device *adev)
>   				amdgpu_device_ip_block_add(adev, &vce_v4_0_ip_block);
>   			break;
>   		default:
> +			dev_err(adev->dev,
> +				"Failed to add VCE v4 ip block(VCE_HWIP:0x%x)\n",
> +				adev->ip_versions[VCE_HWIP][0]);
>   			return -EINVAL;
>   		}
>   	} else {
> @@ -893,6 +926,9 @@ static int amdgpu_discovery_set_mm_ip_blocks(struct amdgpu_device *adev)
>   			amdgpu_device_ip_block_add(adev, &vcn_v3_0_ip_block);
>   			break;
>   		default:
> +			dev_err(adev->dev,
> +				"Failed to add vcn/jpeg ip block(UVD_HWIP:0x%x)\n",
> +				adev->ip_versions[UVD_HWIP][0]);
>   			return -EINVAL;
>   		}
>   	}
> 


More information about the amd-gfx mailing list