> -----Original Message----- > From: Alex Deucher [mailto:alexdeucher at gmail.com] > Sent: Tuesday, December 20, 2016 7:17 AM > To: Yu, Xiangliang <Xiangliang.Yu at amd.com> > Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>; > dl.SRDC_SW_GPUVirtualization <dl.SRDC_SW_GPUVirtualization at amd.com> > Subject: Re: [PATCH 09/23] drm/amdgpu: enable virtualization feature for > FIJI/TONGA > > On Sat, Dec 17, 2016 at 11:16 AM, Xiangliang Yu <Xiangliang.Yu at amd.com> > wrote: > > According to chip device id to set VF flag, and call virtual interface > > to setup all realted IP blocks. > > > > Signed-off-by: Xiangliang Yu <Xiangliang.Yu at amd.com> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 ++++- > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++-- > > 2 files changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > index c4075b7..ab8c8bb5 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > @@ -1285,7 +1285,10 @@ static int amdgpu_early_init(struct > amdgpu_device *adev) > > else > > adev->family = AMDGPU_FAMILY_VI; > > > > - r = vi_set_ip_blocks(adev); > > + if (adev->flags & AMD_IS_VF) > > + r = amd_xgpu_set_ip_blocks(adev); > > As far as I can see there's no need for a special > amd_xgpu_set_ip_blocks() function. Just handle the VF case directly in > vi_set_ip_blocks() and avoid all the extra indirection. My idea is that all virtualization chip share one common interface as a special chip family. It will bring some benefits: 1. Logic code is very clear; 2. Avoid to scatter virtualization code throughout all amdgpu components; 3. Easy to support next virtualization chip without change amdgpu code; > Alex > > > + else > > + r = vi_set_ip_blocks(adev); > > if (r) > > return r; > > break; > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > index 93c4704..5a18111 100755 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > @@ -385,13 +385,13 @@ static const struct pci_device_id pciidlist[] = { > > {0x1002, 0x6928, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > {0x1002, 0x6929, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > {0x1002, 0x692B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > - {0x1002, 0x692F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > + {0x1002, 0x692F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA | > > + AMD_IS_VF}, > > {0x1002, 0x6930, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > {0x1002, 0x6938, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > {0x1002, 0x6939, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TONGA}, > > /* fiji */ > > {0x1002, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_FIJI}, > > - {0x1002, 0x730F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_FIJI}, > > + {0x1002, 0x730F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_FIJI | > > + AMD_IS_VF}, > > /* carrizo */ > > {0x1002, 0x9870, PCI_ANY_ID, PCI_ANY_ID, 0, 0, > CHIP_CARRIZO|AMD_IS_APU}, > > {0x1002, 0x9874, PCI_ANY_ID, PCI_ANY_ID, 0, 0, > > CHIP_CARRIZO|AMD_IS_APU}, > > -- > > 2.7.4 > > > > _______________________________________________ > > amd-gfx mailing list > > amd-gfx at lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/amd-gfx