On Thu, Jul 21, 2022 at 5:52 AM Horace Chen <horace.chen@xxxxxxx> wrote: > > For further chips we will use CHIP_IP_DISCOVERY, so add this > support for virtualization All current and future chips will use CHIP_IP_DISCOVERY. If we plan to keep the register the same for all new aics, this should be fine. If we might need to have it per asic I think you might want something more like this: diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 9be57389301b..0bdd71f9a8fb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -709,6 +709,16 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) case CHIP_ALDEBARAN: reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER); break; + case CHIP_IP_DISCOVERY: + switch (adev->ip_versions[GC_HWIP][0]) { + case IP_VERSION(11, 0, 0): + reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER); + break; + default: + reg = 0; + break; + } + break; default: /* other chip doesn't support SRIOV */ reg = 0; break; Alex > > Signed-off-by: Horace Chen <horace.chen@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > index 7d7044e9de2f..ab55602ff534 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > @@ -705,6 +705,7 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) > case CHIP_SIENNA_CICHLID: > case CHIP_ARCTURUS: > case CHIP_ALDEBARAN: > + case CHIP_IP_DISCOVERY: > reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER); > break; > default: /* other chip doesn't support SRIOV */ > @@ -748,6 +749,7 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) > case CHIP_NAVI10: > case CHIP_NAVI12: > case CHIP_SIENNA_CICHLID: > + case CHIP_IP_DISCOVERY: > nv_set_virt_ops(adev); > /* try send GPU_INIT_DATA request to host */ > amdgpu_virt_request_init_data(adev); > -- > 2.25.1 >