aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch
new file mode 100644
index 00000000..b6bde2cc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2230-drm-amdgpu-discovery-stop-taking-psp-header-into-acc.patch
@@ -0,0 +1,71 @@
+From 8e5b3ba853e883104c335df17dffd40b53c0cdc7 Mon Sep 17 00:00:00 2001
+From: Xiaojie Yuan <xiaojie.yuan@amd.com>
+Date: Wed, 27 Mar 2019 12:21:40 +0800
+Subject: [PATCH 2230/2940] drm/amdgpu/discovery: stop taking psp header into
+ account
+
+psp will write a header to vram, but the value exposed in
+RCC_CONFIG_MEMSIZE does not include the memory that this header is
+written to. Therefore, the interpretation of the table does not need to
+take the psp header into account.
+
+Signed-off-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+index ec14fd1350e2..5f967ae8d4ed 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+@@ -189,7 +189,7 @@ int amdgpu_discovery_init(struct amdgpu_device *adev)
+ goto out;
+ }
+
+- bhdr = (struct binary_header *)(adev->discovery + PSP_HEADER_SIZE);
++ bhdr = (struct binary_header *)adev->discovery;
+
+ if (le32_to_cpu(bhdr->binary_signature) != BINARY_SIGNATURE) {
+ DRM_ERROR("invalid ip discovery binary signature\n");
+@@ -197,8 +197,7 @@ int amdgpu_discovery_init(struct amdgpu_device *adev)
+ goto out;
+ }
+
+- offset = PSP_HEADER_SIZE +
+- offsetof(struct binary_header, binary_checksum) +
++ offset = offsetof(struct binary_header, binary_checksum) +
+ sizeof(bhdr->binary_checksum);
+ size = bhdr->binary_size - offset;
+ checksum = bhdr->binary_checksum;
+@@ -275,7 +274,7 @@ int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
+ return -EINVAL;
+ }
+
+- bhdr = (struct binary_header *)(adev->discovery + PSP_HEADER_SIZE);
++ bhdr = (struct binary_header *)adev->discovery;
+ ihdr = (struct ip_discovery_header *)(adev->discovery +
+ le16_to_cpu(bhdr->table_list[IP_DISCOVERY].offset));
+ num_dies = le16_to_cpu(ihdr->num_dies);
+@@ -338,7 +337,7 @@ int amdgpu_discovery_get_ip_version(struct amdgpu_device *adev, int hw_id,
+ return -EINVAL;
+ }
+
+- bhdr = (struct binary_header *)(adev->discovery + PSP_HEADER_SIZE);
++ bhdr = (struct binary_header *)adev->discovery;
+ ihdr = (struct ip_discovery_header *)(adev->discovery +
+ le16_to_cpu(bhdr->table_list[IP_DISCOVERY].offset));
+ num_dies = le16_to_cpu(ihdr->num_dies);
+@@ -376,7 +375,7 @@ int amdgpu_discovery_get_gfx_info(struct amdgpu_device *adev)
+ return -EINVAL;
+ }
+
+- bhdr = (struct binary_header *)(adev->discovery + PSP_HEADER_SIZE);
++ bhdr = (struct binary_header *)adev->discovery;
+ gc_info = (struct gc_info_v1_0 *)(adev->discovery +
+ le16_to_cpu(bhdr->table_list[GC].offset));
+
+--
+2.17.1
+