On Thu, Sep 26, 2024 at 7:18 AM Lazar, Lijo <lijo.lazar@xxxxxxx> wrote: > > > > On 9/25/2024 11:50 PM, Alex Deucher wrote: > > SR-IOV fetches the vbios from VRAM in some cases. > > Re-enable the VRAM path for dGPUs and rename the function > > to make it clear that it is not IGP specific. > > > > Fixes: 042658d17a54 ("drm/amdgpu: clean up vbios fetching code") > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c > > index 46bf623919d7c..45affc02548c1 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c > > @@ -87,8 +87,9 @@ static bool check_atom_bios(uint8_t *bios, size_t size) > > * part of the system bios. On boot, the system bios puts a > > * copy of the igp rom at the start of vram if a discrete card is > > * present. > > + * For SR-IOV, the vbios image is also put in VRAM in the VF. > > */ > > -static bool igp_read_bios_from_vram(struct amdgpu_device *adev) > > +static bool amdgpu_read_bios_from_vram(struct amdgpu_device *adev) > > { > > uint8_t __iomem *bios; > > resource_size_t vram_base; > > @@ -414,7 +415,7 @@ static bool amdgpu_get_bios_apu(struct amdgpu_device *adev) > > goto success; > > } > > > > - if (igp_read_bios_from_vram(adev)) { > > + if (amdgpu_read_bios_from_vram(adev)) { > > dev_info(adev->dev, "Fetched VBIOS from VRAM BAR\n"); > > goto success; > > } > > @@ -448,6 +449,12 @@ static bool amdgpu_get_bios_dgpu(struct amdgpu_device *adev) > > goto success; > > } > > > > + /* this is required for SR-IOV */ > > + if (amdgpu_read_bios_from_vram(adev)) { > > If this is only expected for VFs, then it's better to add > amdgpu_sriov_vf(adev) check for this call. I think that is the case, but I'm not 100% sure. I can ask the vbios team. Alex > > Thanks, > Lijo > > > + dev_info(adev->dev, "Fetched VBIOS from VRAM BAR\n"); > > + goto success; > > + } > > + > > if (amdgpu_read_platform_bios(adev)) { > > dev_info(adev->dev, "Fetched VBIOS from platform\n"); > > goto success;