aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch
new file mode 100644
index 00000000..c0a1f10e
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2218-drm-amdgpu-enable-the-static-csa-when-mcbp-enabled.patch
@@ -0,0 +1,97 @@
+From e513598390aab04f87485ec7c992c072a978978d Mon Sep 17 00:00:00 2001
+From: Jack Xiao <Jack.Xiao@amd.com>
+Date: Thu, 10 Jan 2019 15:50:10 +0800
+Subject: [PATCH 2218/2940] drm/amdgpu: enable the static csa when mcbp enabled
+
+Acked-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 +++--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 1 +
+ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +++---
+ 4 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 97e881717672..4e3dc5dd295a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -873,7 +873,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
+ if (r)
+ return r;
+
+- if (amdgpu_sriov_vf(adev)) {
++ if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
+ struct dma_fence *f;
+
+ bo_va = fpriv->csa_va;
+@@ -962,7 +962,8 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,
+ if (chunk->chunk_id != AMDGPU_CHUNK_ID_IB)
+ continue;
+
+- if (chunk_ib->ip_type == AMDGPU_HW_IP_GFX && amdgpu_sriov_vf(adev)) {
++ if (chunk_ib->ip_type == AMDGPU_HW_IP_GFX &&
++ (amdgpu_mcbp || amdgpu_sriov_vf(adev))) {
+ if (chunk_ib->flags & AMDGPU_IB_FLAG_PREEMPT) {
+ if (chunk_ib->flags & AMDGPU_IB_FLAG_CE)
+ ce_preempt++;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index bf8d8adc0918..2acf005782bb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1709,7 +1709,7 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
+ adev->ip_blocks[i].status.hw = true;
+
+ /* right after GMC hw init, we create CSA */
+- if (amdgpu_sriov_vf(adev)) {
++ if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
+ r = amdgpu_allocate_static_csa(adev, &adev->virt.csa_obj,
+ AMDGPU_GEM_DOMAIN_VRAM,
+ AMDGPU_CSA_SIZE);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+index a3d30c65f01d..70fa9a48e1f8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+@@ -227,6 +227,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
+ if ((ib->flags & AMDGPU_IB_FLAG_PREAMBLE) &&
+ skip_preamble &&
+ !(status & AMDGPU_PREAMBLE_IB_PRESENT_FIRST) &&
++ !amdgpu_mcbp &&
+ !amdgpu_sriov_vf(adev)) /* for SRIOV preemption, Preamble CE ib must be inserted anyway */
+ continue;
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+index 2cdaacef0226..2e4d2b61573d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+@@ -723,7 +723,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
+ dev_info.ids_flags = 0;
+ if (adev->flags & AMD_IS_APU)
+ dev_info.ids_flags |= AMDGPU_IDS_FLAGS_FUSION;
+- if (amdgpu_sriov_vf(adev))
++ if (amdgpu_mcbp || amdgpu_sriov_vf(adev))
+ dev_info.ids_flags |= AMDGPU_IDS_FLAGS_PREEMPTION;
+
+ vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
+@@ -1032,7 +1032,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
+ goto error_vm;
+ }
+
+- if (amdgpu_sriov_vf(adev)) {
++ if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
+ uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_GMC_HOLE_MASK;
+
+ r = amdgpu_map_static_csa(adev, &fpriv->vm, adev->virt.csa_obj,
+@@ -1098,7 +1098,7 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
+
+ amdgpu_vm_bo_rmv(adev, fpriv->prt_va);
+
+- if (amdgpu_sriov_vf(adev)) {
++ if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
+ /* TODO: how to handle reserve failure */
+ BUG_ON(amdgpu_bo_reserve(adev->virt.csa_obj, true));
+ amdgpu_vm_bo_rmv(adev, fpriv->csa_va);
+--
+2.17.1
+