Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

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@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Guchun Chen and committed by
Alex Deucher
69650a87 38a268b3

+36
+36
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
··· 587 587 amdgpu_device_ip_block_add(adev, &nv_common_ip_block); 588 588 break; 589 589 default: 590 + dev_err(adev->dev, 591 + "Failed to add common ip block(GC_HWIP:0x%x)\n", 592 + adev->ip_versions[GC_HWIP][0]); 590 593 return -EINVAL; 591 594 } 592 595 return 0; ··· 622 619 amdgpu_device_ip_block_add(adev, &gmc_v10_0_ip_block); 623 620 break; 624 621 default: 622 + dev_err(adev->dev, 623 + "Failed to add gmc ip block(GC_HWIP:0x%x)\n", 624 + adev->ip_versions[GC_HWIP][0]); 625 625 return -EINVAL; 626 626 } 627 627 return 0; ··· 654 648 amdgpu_device_ip_block_add(adev, &navi10_ih_ip_block); 655 649 break; 656 650 default: 651 + dev_err(adev->dev, 652 + "Failed to add ih ip block(OSSSYS_HWIP:0x%x)\n", 653 + adev->ip_versions[OSSSYS_HWIP][0]); 657 654 return -EINVAL; 658 655 } 659 656 return 0; ··· 697 688 amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block); 698 689 break; 699 690 default: 691 + dev_err(adev->dev, 692 + "Failed to add psp ip block(MP0_HWIP:0x%x)\n", 693 + adev->ip_versions[MP0_HWIP][0]); 700 694 return -EINVAL; 701 695 } 702 696 return 0; ··· 738 726 amdgpu_device_ip_block_add(adev, &smu_v13_0_ip_block); 739 727 break; 740 728 default: 729 + dev_err(adev->dev, 730 + "Failed to add smu ip block(MP1_HWIP:0x%x)\n", 731 + adev->ip_versions[MP1_HWIP][0]); 741 732 return -EINVAL; 742 733 } 743 734 return 0; ··· 768 753 amdgpu_device_ip_block_add(adev, &dm_ip_block); 769 754 break; 770 755 default: 756 + dev_err(adev->dev, 757 + "Failed to add dm ip block(DCE_HWIP:0x%x)\n", 758 + adev->ip_versions[DCE_HWIP][0]); 771 759 return -EINVAL; 772 760 } 773 761 } else if (adev->ip_versions[DCI_HWIP][0]) { ··· 781 763 amdgpu_device_ip_block_add(adev, &dm_ip_block); 782 764 break; 783 765 default: 766 + dev_err(adev->dev, 767 + "Failed to add dm ip block(DCI_HWIP:0x%x)\n", 768 + adev->ip_versions[DCI_HWIP][0]); 784 769 return -EINVAL; 785 770 } 786 771 #endif ··· 817 796 amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block); 818 797 break; 819 798 default: 799 + dev_err(adev->dev, 800 + "Failed to add gfx ip block(GC_HWIP:0x%x)\n", 801 + adev->ip_versions[GC_HWIP][0]); 820 802 return -EINVAL; 821 803 } 822 804 return 0; ··· 853 829 amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block); 854 830 break; 855 831 default: 832 + dev_err(adev->dev, 833 + "Failed to add sdma ip block(SDMA0_HWIP:0x%x)\n", 834 + adev->ip_versions[SDMA0_HWIP][0]); 856 835 return -EINVAL; 857 836 } 858 837 return 0; ··· 872 845 amdgpu_device_ip_block_add(adev, &uvd_v7_0_ip_block); 873 846 break; 874 847 default: 848 + dev_err(adev->dev, 849 + "Failed to add uvd v7 ip block(UVD_HWIP:0x%x)\n", 850 + adev->ip_versions[UVD_HWIP][0]); 875 851 return -EINVAL; 876 852 } 877 853 switch (adev->ip_versions[VCE_HWIP][0]) { ··· 885 855 amdgpu_device_ip_block_add(adev, &vce_v4_0_ip_block); 886 856 break; 887 857 default: 858 + dev_err(adev->dev, 859 + "Failed to add VCE v4 ip block(VCE_HWIP:0x%x)\n", 860 + adev->ip_versions[VCE_HWIP][0]); 888 861 return -EINVAL; 889 862 } 890 863 } else { ··· 926 893 amdgpu_device_ip_block_add(adev, &vcn_v3_0_ip_block); 927 894 break; 928 895 default: 896 + dev_err(adev->dev, 897 + "Failed to add vcn/jpeg ip block(UVD_HWIP:0x%x)\n", 898 + adev->ip_versions[UVD_HWIP][0]); 929 899 return -EINVAL; 930 900 } 931 901 }