On Wed, May 17, 2023 at 11:12 PM Tong Liu01 <Tong.Liu01@xxxxxxx> wrote: > > [why] > Passthrough case is treated as root bus and pcie_gen_mask is set as > default value that does not support GEN 3 and GEN 4 for PCIe link > speed. So PCIe link speed will be downgraded at smu hw init in > passthrough condition > > [how] > Move get pci info after detect virtualization and check if it is > passthrough case when set pcie_gen_mask > > Signed-off-by: Tong Liu01 <Tong.Liu01@xxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index a9d9bbe8586b..18c6e9872247 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -3813,8 +3813,6 @@ int amdgpu_device_init(struct amdgpu_device *adev, > DRM_INFO("register mmio base: 0x%08X\n", (uint32_t)adev->rmmio_base); > DRM_INFO("register mmio size: %u\n", (unsigned)adev->rmmio_size); > > - amdgpu_device_get_pcie_info(adev); > - > if (amdgpu_mcbp) > DRM_INFO("MCBP is enabled\n"); > > @@ -3830,6 +3828,8 @@ int amdgpu_device_init(struct amdgpu_device *adev, > /* detect hw virtualization here */ > amdgpu_detect_virtualization(adev); > > + amdgpu_device_get_pcie_info(adev); > + > r = amdgpu_device_get_job_timeout_settings(adev); > if (r) { > dev_err(adev->dev, "invalid lockup_timeout parameter syntax\n"); > @@ -5589,7 +5589,7 @@ static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev) > adev->pm.pcie_mlw_mask = amdgpu_pcie_lane_cap; > > /* covers APUs as well */ > - if (pci_is_root_bus(adev->pdev->bus)) { > + if (pci_is_root_bus(adev->pdev->bus) && !amdgpu_passthrough(adev)) { > if (adev->pm.pcie_gen_mask == 0) > adev->pm.pcie_gen_mask = AMDGPU_DEFAULT_PCIE_GEN_MASK; > if (adev->pm.pcie_mlw_mask == 0) > -- > 2.34.1 >