[PATCH] drm/amdgpu: Re-enable FRU check for most models v4

Russell, Kent Kent.Russell at amd.com
Tue Apr 7 12:22:10 UTC 2020


[AMD Official Use Only - Internal Distribution Only]

Sorry for the double-send, this was the right one to send out.

 Kent

> -----Original Message-----
> From: Russell, Kent <Kent.Russell at amd.com>
> Sent: Monday, April 6, 2020 11:53 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Russell, Kent <Kent.Russell at amd.com>
> Subject: [PATCH] drm/amdgpu: Re-enable FRU check for most models v4
> 
> There is at least 1 VG20 DID that does not have an FRU, and trying to read that
> will cause a hang. For now, explicitly support reading the FRU for Arcturus and
> for the WKS VG20 DIDs, and skip for everything else.
> This re-enables serial number reporting for server cards
> 
> v2: Add ASIC check
> v3: Don't default to true for pre-VG20
> v4: Use DID instead of parsing the VBIOS
> 
> Signed-off-by: Kent Russell <kent.russell at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> index bfe4259f9508..9d17761721de 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> @@ -20,6 +20,8 @@
>   * OTHER DEALINGS IN THE SOFTWARE.
>   *
>   */
> +#include <linux/pci.h>
> +
>  #include "amdgpu.h"
>  #include "amdgpu_i2c.h"
>  #include "smu_v11_0_i2c.h"
> @@ -31,8 +33,16 @@
> 
>  bool is_fru_eeprom_supported(struct amdgpu_device *adev)  {
> -	/* TODO: Resolve supported ASIC type */
> -
> +	/* TODO: Gaming SKUs don't have the FRU EEPROM.
> +	 * Use this hack to address hangs on modprobe on gaming SKUs
> +	 * until a proper solution can be implemented by only supporting
> +	 * it on Arcturus, and the explicit chip IDs for VG20 Server cards
> +	 */
> +	if ((adev->asic_type == CHIP_ARCTURUS) ||
> +	    (adev->asic_type == CHIP_VEGA20 && adev->pdev->device ==
> 0x66a0) ||
> +	    (adev->asic_type == CHIP_VEGA20 && adev->pdev->device ==
> 0x66a1) ||
> +	    (adev->asic_type == CHIP_VEGA20 && adev->pdev->device ==
> 0x66a4))
> +		return true;
>  	return false;
>  }
> 
> --
> 2.17.1


More information about the amd-gfx mailing list