[Public] > -----Original Message----- > From: Lazar, Lijo <Lijo.Lazar@xxxxxxx> > Sent: Thursday, February 6, 2025 8:13 AM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Lazar, Lijo <Lijo.Lazar@xxxxxxx> > Cc: Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Kim, Jonathan > <Jonathan.Kim@xxxxxxx> > Subject: [PATCH 3/4] drm/amdgpu: Initialize xgmi info during discovery > > Initialize xgmi related static information during discovery. > > Signed-off-by: Lijo Lazar <lijo.lazar@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 20 +++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > index eca431e52038..d4eade2bd4d3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > @@ -2502,6 +2502,19 @@ static int amdgpu_discovery_set_isp_ip_blocks(struct > amdgpu_device *adev) > return 0; > } > > +static void amdgpu_discovery_set_xgmi_info(struct amdgpu_device *adev) > +{ > + if (amdgpu_ip_version(adev, XGMI_HWIP, 0) == IP_VERSION(4, 8, 0)) > + adev->gmc.xgmi.supported = true; > + > + if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) || > + amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4)) > + adev->ip_versions[XGMI_HWIP][0] = IP_VERSION(6, 4, 0); Can this stuff get rolled into xgm_init_info and called directly into amdgpu_discovery_set_ip_blocks? Breaking up discovery_set_xgmi_info and xgmi_init_info as 2 separate things seems a little confusing. > + > + if (amdgpu_ip_version(adev, XGMI_HWIP, 0)) Maybe roll this check into xgmi_init_info i.e. void early return if null. > + amdgpu_xgmi_init_info(adev); > +} > + > int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev) > { > int r; > @@ -2769,12 +2782,7 @@ int amdgpu_discovery_set_ip_blocks(struct > amdgpu_device *adev) > break; > } > > - if (amdgpu_ip_version(adev, XGMI_HWIP, 0) == IP_VERSION(4, 8, 0)) > - adev->gmc.xgmi.supported = true; > - > - if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) || > - amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4)) > - adev->ip_versions[XGMI_HWIP][0] = IP_VERSION(6, 4, 0); > + amdgpu_discovery_set_xgmi_info(adev); If you do the suggestions above, you can just call amdgpu_xgmi_init_info unconditionally. Jon > > /* set NBIO version */ > switch (amdgpu_ip_version(adev, NBIO_HWIP, 0)) { > -- > 2.25.1