This patch series will enable AMD GPU virtualization and wires it into amdgpu modules. The code design is base on below ideas: 1. Make virtualization code independent; 2. Self-maintain related GPU virtualization codes; 3. Easy to maintain virtualization codes; 4. Reduce the influence on other amdgpu components; 5. Easy to support different chips; According to above ideas, make the following changes: 1. Create a new directory for virtualization and put all of related virtualization code into it; 2. Create new IP block to support different virtual features. 3. Create new file for each different hardware; In the end, the patch series is support serval virtualization features: 1. Support CSA feature; 2. Support Mailbox communication with GPU hypervisor; 3. Support KIQ feature; Xiangliang Yu (23): drm/amdgpu: add support kernel interface queue(KIQ) drm/amdgpu: add kiq into compiling drm/amdgpu: export KIQ interfaces drm/amdgpu: add new structure for KIQ memory allcation drm/amdgpu/gfx8: add support KIQ for FIJI/TONGA chips drm/amdgpu/gfx8: correct KIQ hdp flush drm/amdgpu: create new directory for GPU virtualization drm/amdgpu: add new flag for virtual function drm/amdgpu: enable virtualization feature for FIJI/TONGA drm/amdgpu: export gem va update interface drm/amdgpu: implement context save area(CSA) feature drm/amdgpu: Insert meta data during submitting IB drm/amdgpu/mxgpu: add support for mailbox communication drm/amdgpu: export two mailbox interface to amdgpu drm/amdgpu/mxgpu: implement register access function with KIQ drm/amdgpu: add flag to indicate VF runtime state drm/amdgpu: export vi common ip block drm/amdgpu: add new maroc to identify virtualization ip block drm/amdgpu/mxgpu: add implementation of GPU virtualization of VI drm/amdgpu/mxgpu: enable VI virtualization drm/amdgpu: change golden register program sequence of virtualization drm/amdgpu: do not reset gpu for virtualization drm/amdgpu/mxgpu: add Makefie and Kconfig for GPU virtualization drivers/gpu/drm/amd/amdgpu/Makefile | 9 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 35 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_kiq.c | 436 ++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 34 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 4 + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 240 ++++++++++++++- drivers/gpu/drm/amd/amdgpu/vi.c | 8 +- drivers/gpu/drm/amd/amdgpu/vi.h | 2 +- drivers/gpu/drm/amd/amdgpu/vid.h | 2 + drivers/gpu/drm/amd/include/amd_shared.h | 2 + drivers/gpu/drm/amd/mxgpu/Kconfig | 13 + drivers/gpu/drm/amd/mxgpu/Makefile | 11 + drivers/gpu/drm/amd/mxgpu/amd_mxgpu.c | 105 +++++++ drivers/gpu/drm/amd/mxgpu/amd_mxgpu.h | 93 ++++++ drivers/gpu/drm/amd/mxgpu/mxgpu_csa.c | 297 ++++++++++++++++++ drivers/gpu/drm/amd/mxgpu/mxgpu_kiq.c | 110 +++++++ drivers/gpu/drm/amd/mxgpu/mxgpu_mb.c | 159 ++++++++++ drivers/gpu/drm/amd/mxgpu/mxgpu_vi.c | 472 +++++++++++++++++++++++++++++ 24 files changed, 2058 insertions(+), 12 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_kiq.c create mode 100644 drivers/gpu/drm/amd/mxgpu/Kconfig create mode 100644 drivers/gpu/drm/amd/mxgpu/Makefile create mode 100644 drivers/gpu/drm/amd/mxgpu/amd_mxgpu.c create mode 100644 drivers/gpu/drm/amd/mxgpu/amd_mxgpu.h create mode 100644 drivers/gpu/drm/amd/mxgpu/mxgpu_csa.c create mode 100644 drivers/gpu/drm/amd/mxgpu/mxgpu_kiq.c create mode 100644 drivers/gpu/drm/amd/mxgpu/mxgpu_mb.c create mode 100644 drivers/gpu/drm/amd/mxgpu/mxgpu_vi.c -- 2.7.4