There isn't ucode when executing INVOKE command, so current code can't
check the failure of INVOKE command.
Remove the ucode check.
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers
xGMI session id should get from response buffer, correct it.
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 8fab0d6..2f126ea7
PSP only support VMR ring for SRIOV vf since v45 and all commands will
be send to VMR ring for executing.
VMR ring use C2PMSG 101 ~ 103 instead of C2PMSG 64 ~ 71.
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 18 +--
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 1
PSP ring need to be destroy before starting reinit for vf.
This patche move it from hypervisor driver into guest.
Signed-off-by: Xiangliang Yu
Signed-off-by: Frank Min
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu
If PSP FW is running already, driver will not load PSP FW again and skip
it. So psp fw version is not correct if reading it from FW binary file,
need to get right version from register.
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 4 +++-
1 file changed, 3
From: Frank Min
Temporary disable UVD/VCE block if is virtual device
Signed-off-by: Frank Min
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/soc15.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c
b/drivers/gpu/drm
From: Frank Min
Add sriov capability detection for vega20, then can check if device is
virtual device.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang Yu
---
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 15 +--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers
Do ring clear before ring test, otherwise compute ring test will
fail after gpu resetting.
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git
After starting VNC server or running CTS test, kernel will hang and
can see below call trace:
[961816] INFO: task khugepaged:42 blocked for more than 120 seconds.
[968581] Tainted: G OE 4.13.0 #1
[973495] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables
this
SRIOV doesn't implement PMC capability of PCIe, so it can't update
power state by reading PMC register.
Currently, amdgpu driver doesn't disable pci device when removing
driver, the enable_cnt of pci device will not be decrease to 0.
When reloading driver, pci_enable_device will do nothing as
For SRIOV, the clearance has been moved to firmware. So don't need
it any more.
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 7 ---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
When hypervisor triggering FLR for one of VFs, need to enable sdma
wptr polling to avoid missing wptr update if enabling doorbell.
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 17 -
1 file changed, 16 insertions(+), 1
When fail to get needed page for pool, need to put allocated pages
into pool. But current code has a miscalculation of allocated pages,
correct it.
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/ttm/ttm_page_alloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Frank Min
Now uvd doorbell is from 0xf8-0xfb and vce doorbell is from 0xfc-0xff
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 18 +-
From: Frank Min
Interrupt enable is contained in vce init table and this register could
not be accessed in secure ASICs, so just remove it.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
Vega10 also support virtual display, remove the error message.
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
From: Frank Min
While doing flr on VFs, there is possibility to lost the doorbell
writing for sdma, so enable poll mem for sdma, then sdma fw would
check the pollmem holding wptr.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
From: Frank Min
Since rptr would not be accessed on later secure asics in sriov, remove
the ring test.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 ++--
From: Frank Min
1.Since in sriov there is no need of decoding, so skip the related code;
2.Vcpu boot up and umc enable need to take at the end of the init sequence;
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
From: Frank Min
Optimize init table sequence for sriov.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git
From: Frank Min
Add uvd and vce re-init after gpu reset.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 3 +--
From: Frank Min
MMSCH FW need to get the wptr from 0 after it get the mailbox request
from driver, since every time kick the mailbox, mmsch thinks that it
is the first time engine start to initialize.
Signed-off-by: Frank Min
Signed-off-by: Xiangliang.Yu
From: Xiangliang Yu <xiangliang...@amd.com>
Change ioremap mode from noncache to write combine and it will
reduce the read vbios time from 188ms to 8ms.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Xiangliang.Yu <xiangliang...@amd.com>
---
drivers/
amdgpu default clk value for SRIOV
and non-dpm cases.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
b/drivers/gpu/drm/amd/
If psp version doesn't match asd version, asd loading will be
failed. Add workaround to bypass it for sriov.
Signed-off-by: Daniel Wang <daniel.wa...@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 7 +++
1 fil
From: Frank Min <frank@amd.com>
According to HW design, need to clean doorbell after setup MMSCH
table.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 1 +
drivers/gpu/drm/amd
Change message to debug level as VI does.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
From: Pixel Ding <pixel.d...@amd.com>
Fix NULL pointer reference.
Signed-off-by: Pixel Ding <pixel.d...@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff -
From: Daniel Wang <daniel.wa...@amd.com>
Now GPU hypervisor will load SDMA and RLCG ucode, so skip it
in guest.
Signed-off-by: Daniel Wang <daniel.wa...@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 ++
From: Frank Min <frank@amd.com>
Add UVD hw init.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 92 ---
1 file changed, 54 insertions(+), 38
From: Daniel Wang <daniel.wa...@amd.com>
Fixed PSP loading issue for sriov.
Signed-off-by: Daniel Wang <daniel.wa...@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 18 +++---
1 file changed, 15 insertio
From: Frank Min <frank@amd.com>
Add UVD doorbell for SRIOV.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 19 +++
1 file changed, 19 insertions(+)
diff --git
From: Frank Min <frank@amd.com>
Enable UVD block for SRIOV.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/soc15.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/d
From: Frank Min <frank@amd.com>
Add UVD initialization for SRIOV.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 246 ++
1 file changed, 246 i
Used virt_alloc_mm_table function to allocate MM table memory.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 20 +++-
1 file changed, 3 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
b/d
Add two functions to allocate & free MM table memory.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 46
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 2 ++
2 files changed, 48 insertions(+)
diff --git
From: Frank Min <frank@amd.com>
Move mm table construction functions into mmsch header file so that
UVD can reuse it.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu
/soc15: enable UVD code path for sriov
drm/amdgpu/uvd7: add sriov uvd initialization sequences
drm/amdgpu/uvd7: add uvd doorbell initialization for sriov
drm/amdgpu/uvd7: add UVD hw init sequences for sriov
Xiangliang Yu (4):
drm/amdgpu/virt: bypass cg and pg setting for SRIOV
drm/amdgpu
GPU hypervisor cover all settings of CG and PG, so guest doesn't
need to do anything. Bypass it.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 2 ++
1 file changed, 2 insertions(+)
Change place of virt_init_setting function so that can cover the
cg and pg flags configuration.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/soc15.c | 10 +-
drivers/gpu/drm/amd/amdgpu/vi.c| 10 +-
2 files changed, 10 insertions(
For SRIOV doesn't need CG, so bypass it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
index 6
For SRIOV doesn't need clockgating, bypass it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index f
Add VCE ring test slow workaround for SRIOV.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/dr
Now VCE block can work for SRIOV, enable ring & ib test.
Signed-off-by: Frank Min
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 8
1 file changed, 8 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index
Update the initialization sequence of VCE to make VCE work.
Signed-off-by: Frank Min
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 9 ++---
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
Now VCE block can work for SRIOV, enable ring & ib test.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Frank Min <frank@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 8
1 file changed, 8 deletions(-)
diff --git a/drivers/gp
Add separate vmhub flush function so that other components can
reuse it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Frank Min <frank@amd.com>
---
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 77 +--
drivers/gpu/drm/amd/amdgp
For SRIOV, multi vce engine will hang when encoding. Add VMHUB
flush to workaround it, will continue to find the root cause later.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Frank Min <frank@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 11 +++
Add VCE ring test slow workaround for SRIOV.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Frank Min <frank@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/dr
SRIOV can support for loading ucode with PSP block, enable it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/soc15.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c
b/drivers/gpu/drm/amd/
Confirm if sys driver and sOS are already been loaded through sOS
sign register, skip loading sys driver and sOS if finding the sign.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 18 --
1 file changed, 16 insertions
Because different HWs have different definition for CE & DE meta
data, follow mqd design to move the structures to vi_structs.h.
And change the prefix from amdgpu to vi as the structures is only
for VI family.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/
Need to free mqd backup when destroying ring.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 2202f02..2
vi_mqd is only used by VI family but mqd_ptr is common for all
ASIC, so change the pointer to void.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c| 26 +-
2 files c
If start all VFs at same time, the GPU hypervisor need more time
to handle mailbox access. Set it to five seconds according to
test experience.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/mxgpu_vi.h | 2 +-
1 file changed, 1 insertion(+), 1 de
Virtual display doesn't allocate amdgpu_encoder when initializing,
so will get invaild pointer if try to free amdgpu_encoder when
unloading driver.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 5 +
1 file changed, 1 insertion
Reboot process will call HW fini functions of IP blocks. For virt,
need to send event three before hw fini and send event four after
hw fini.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++
1 file changed, 6 insertions(+)
For virt, freed mailbox irq should be handled in hw fini, not hw
init. Correct it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/g
Current amdgpu reset process only works on bare-metal and for
SRIOV many inside it need re-work to adapt to vf device.
This is a temporary workaround to skip gpu reset.
Signed-off-by: Monk Liu <monk@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/dr
Virtualization don't need the dc, disable it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
Virtual display is default setting for virtualization, enable it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
b/drivers/gpu/drm/amd/
For gpu vf device, first need to request full gpu access before
accessing gpu registers, and release full gpu access after the
access is done.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_
Call VI virtualization functions if device is Vf.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vi.c | 34 --
1 file changed, 32 insertions(+), 2 deletions(-)
diff --g
asic specific file to support specific asic;
3. not include KIQ patch as it has been merged into kernel;
4. not include CSA patch as monk will submit it;
Xiangliang Yu (11):
drm/amdgpu/ring: add two interfaces to support r/w registers with kiq
drm/amdgpu/gfx8: implement emit_rreg/wreg function
For virtualization, it is must for driver to use KIQ to access
registers when it is out of GPU full access mode.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/Makefile| 2 +-
drivers/gpu/dr
Add new flag to define gpu runtime that is out of full gpu access.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/dr
VI has asic specific virt support, which including mailbox and
golden registers init.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
Signed-off-by: shaoyunl <shaoyun@amd.com>
---
drivers/gpu/drm/amd/amdgpu/Makefile |
During virtual runtime, need to send command to kiq ring to
read/write GPU registers. Add two interface to support the two
actions.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Linu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
Add high level interfaces that is not relate to specific asic. So
asic files just need to implement the interfaces to support
virtualization.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu
Implement emit_rreg/wreg function for kiq ring.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 ++-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c| 37
2 f
For virtualization, it is must for driver to use KIQ to access
registers when it is out of GPU full access mode.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/Makefile| 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++
drivers/gpu/d
Call VI virtualization functions if device is Vf.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vi.c | 34 --
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/d
Current job timeout setting is not fit for virtualization, so it
will cause job timeout sometimes. Add workaround for this when
timeout happen.
Signed-off-by: Monk Liu <monk@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_
Virtualization don't need the dc, disable it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
Add new flag to define gpu runtime that is out of full gpu access.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
b/drivers/gpu/drm/amd/
For gpu vf device, first need to request full gpu access before
accessing gpu registers, and release full gpu access after the
access is done.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +
drivers/gpu/drm/amd/
Virtual display is default setting for virtualization, enable it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
b/drivers/gpu/drm/amd/
Implement emit_rreg/wreg function for kiq ring.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 ++-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c| 37
2 files changed, 39 insertions(+), 1 deletion(-)
diff
VI has asic specific virt support, which including mailbox and
golden registers init.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/Makefile | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 +
drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c
During virtual runtime, need to send command to kiq ring to
read/write GPU registers. Add two interface to support the two
actions.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 ++
2
as monk will submit it;
Xiangliang Yu (11):
drm/amdgpu/ring: add two interfaces to support r/w registers with kiq
drm/amdgpu/gfx8: implement emit_rreg/wreg function
drm/amdgpu/virt: add runtime flag
drm/amdgpu/virt: use kiq to access registers
drm/amdgpu/virt: add high level interfaces
Add high level interfaces that is not relate to specific asic. So
asic files just need to implement the interfaces to support
virtualization.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 57
drivers/g
Call detection function driectly, so remove the interface.
V2: ci and si also need to call the detec function.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 --
drivers/gpu/drm/amd/amdgpu/cik.c| 3 ++-
drivers/gpu/drm/amd/amdgp
Move the detection forward into vi_set_ip_blocks function, then
add ip blocks virtualization need if device is VF.
V2: add ip blocks according to asic type.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vi.c | 24 +---
1 file chang
Don't use the interface anymore, remove it.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 --
drivers/gpu/drm/amd/amdgpu/cik.c| 7 ---
drivers/gpu/drm/amd/amdgpu/si.c | 7 ---
3 files changed, 16 deletions(-)
diff
Use acronym to rename fields to make easy to spell out.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h| 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 14 +++---
drivers/g
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 13 +
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 643 +-
drivers/gpu/drm/amd/amdgpu/vid.h | 2 +
3 files changed, 656 insertions(+), 2 deletions(-)
diff --git a
KIQ is queue-memory based initialization method: setup KIQ queue
firstly, then send command to KIQ to setup other queues, without
accessing registers.
For virtualization, need KIQ to access virtual function registers
when running on guest mode.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.
Liu <monk@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 5 +
drivers/gpu/drm/amd/mxgpu/mxgpu_mb.c | 3 +++
3 files changed, 14 insertions(+)
diff --git a
CSA is need by world switch. This patch implement CSA feature and
bind it to each VM, so hardware can save the state into the area
and restore it when running again.
Signed-off-by: Monk Liu <monk@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/dr
FIJI/TONGA chips must enable KIQ feature to support virtualization.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 237 +-
1 file changed, 236 insertions(+)
KIQ is queue-memory based initialization method: setup KIQ queue
firstly, then send command to KIQ to setup other queues, without
accessing registers.
For virtualization, need KIQ to access virtual function registers
when running on guest mode.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.
KIQ need three memory spaces: interrupt, ring and buffer object. If
want to setup KIQ, must to allocate related memory firstly.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 ++
1 file changed, 10 insertions(+)
diff --git a/drive
GPU virtualization component need vim common ip block and the
block was also public before. Export it again.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/vi.c | 2 +-
drivers/gpu/drm/amd/amdgpu/vi.h | 2 +-
2 files changed, 2 insertions(+), 2 del
-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 +-
drivers/gpu/drm/amd/mxgpu/amd_mxgpu.c| 104 +++
drivers/gpu/drm/amd/mxgpu/amd_mxgpu.h| 37 +++
4
Export KIQ interfaces so that others components can use the
interfaces to setup queues.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 20
1 file changed, 20 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgp
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
If doesn't enable dpm, the powerplay will not allocate memory for
hw management. So, hw_init_power_state_table function will reference
NULL pointer when resetting.
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 4 ++--
1 file chan
For SR-IOV client, driver shouldn't touch the GFX hw during HW
fini, otherwise, gfx will fail to start after rebooting guest os.
Signed-off-by: shaoyunl <shaoyun@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4
1
For virtualization, FW size need to cut its digest part.
Signed-off-by: Frank Min <frank@amd.com>
Signed-off-by: Monk Liu <monk@amd.com>
Signed-off-by: Xiangliang Yu <xiangliang...@amd.com>
---
drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c | 4
1 file cha
1 - 100 of 107 matches
Mail list logo