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

Alex Deucher alexdeucher at gmail.com
Fri Apr 3 16:47:41 UTC 2020


On Fri, Apr 3, 2020 at 12:41 PM Russell, Kent <Kent.Russell at amd.com> wrote:
>
> [AMD Official Use Only - Internal Distribution Only]
>
>
> > -----Original Message-----
> > From: Alex Deucher <alexdeucher at gmail.com>
> > Sent: Friday, April 3, 2020 12:36 PM
> > To: Russell, Kent <Kent.Russell at amd.com>
> > Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
> > Subject: Re: [PATCH] drm/amdgpu: Re-enable FRU check for most models
> >
> > On Fri, Apr 3, 2020 at 12:30 PM Kent Russell <kent.russell at amd.com> wrote:
> > >
> > > 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
> > >
> > > Signed-off-by: Kent Russell <kent.russell at amd.com>
> > > ---
> > >  drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 16
> > ++++++++++++++--
> > >  1 file changed, 14 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..9582469a70cb 100644
> > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
> > > @@ -31,9 +31,21 @@
> > >
> > >  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
> > > +        */
> > > +       if (adev->asic_type == CHIP_VEGA20)
> > > +               if (strnstr(atom_ctx->vbios_version, "D360",
> > > +                               sizeof(atom_ctx->vbios_version)))
> > > +                       return false;
> > > +
> > > +       return true;
> >
> > I think you want to default to false and only return true if it's a
> > vega20 and it's the right vbios version otherwise we'll try to fetch
> > the info on all asics.
>
> I was trying to go for the smallest list. There are 2 SKUs in all of VG20 that don't work, and none in Arcturus (and the FRU check is only for VG20+) , so I assumed that I could just cover the 2 bad cases. It's supported on Arcturus, and it's supported on server VG20, and we don't touch it at all on VG10-and-older.

Right, but if you return true by default, then the driver will try and
fetch the FRU stuff from every asic right?

I would do something like:

if ((adev->asic_type == CHIP_VEGA20) ||
   (adev->asic_type == CHIP_ARCTURUS) {
  /* do whatever logic makes sense here to sort out these asics */
    if (...)
        return false;
    else
        return true;
}

/* return false for everything else */
return false;

>
>  Kent
>
>
> >
> > Alex
> >
> > >  }
> > >
> > >  int amdgpu_fru_read_eeprom(struct amdgpu_device *adev, uint32_t
> > addrptr,
> > > --
> > > 2.17.1
> > >
> > > _______________________________________________
> > > amd-gfx mailing list
> > > amd-gfx at lists.freedesktop.org
> > >
> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.fr
> > eedesktop.org%2Fmailman%2Flistinfo%2Famd-
> > gfx&data=02%7C01%7Ckent.russell%40amd.com%7C0f2e5090b21b4807b
> > 66808d7d7ed28f1%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6
> > 37215285907421019&sdata=yBc0%2FrNnnWgRBiJcAvav4JtvmoG0Tyhd6p
> > X6gfFeW%2FU%3D&reserved=0


More information about the amd-gfx mailing list