There are 2 VG20 SKUs that do not have the FRU on there, and trying to read that will cause a hang. For now, check for the gaming SKU until a proper fix can be implemented. This re-enables serial number reporting for server cards v2: Add ASIC check v3: Don't default to true for pre-VG10 Signed-off-by: Kent Russell <kent.russell@xxxxxxx> --- .../gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 22 +++++++++++++++++-- 1 file changed, 20 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..508906177cad 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c @@ -31,9 +31,27 @@ bool is_fru_eeprom_supported(struct amdgpu_device *adev) { - /* TODO: Resolve supported ASIC type */ + struct atom_context *atom_ctx = adev->mode_info.atom_context; - return false; + if (!atom_ctx) + return false; + + /* TODO: Gaming SKUs don't have the FRU EEPROM. + * Use this to address hangs on modprobe on gaming SKUs + * until a proper solution can be implemented + */ + switch (adev->asic_type) { + case CHIP_VEGA20: + if (strnstr(atom_ctx->vbios_version, "D360", + sizeof(atom_ctx->vbios_version))) + return false; + return true; + case CHIP_ARCTURUS: + /* There are no gaming Arcturus SKUs */ + return true; + default: + return false; + } } int amdgpu_fru_read_eeprom(struct amdgpu_device *adev, uint32_t addrptr, -- 2.17.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx