aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch179
1 files changed, 179 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch
new file mode 100644
index 00000000..8545efcc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3195-drm-amdgpu-move-some-ras-data-structure-to-amdgpu_ra.patch
@@ -0,0 +1,179 @@
+From d4fb3e00b06342beb8228a8c8142efcf32e37d3d Mon Sep 17 00:00:00 2001
+From: Hawking Zhang <Hawking.Zhang@amd.com>
+Date: Wed, 17 Jul 2019 17:34:46 +0800
+Subject: [PATCH 3195/4256] drm/amdgpu: move some ras data structure to
+ amdgpu_ras.h
+
+These are common structures that can be included by IP specific
+source files
+
+Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Reviewed-by: Dennis Li <dennis.li@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 68 ------------------------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 69 ++++++++++++++++++++++++-
+ 2 files changed, 68 insertions(+), 69 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+index b45aaf04a574..3be306bf1603 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+@@ -28,74 +28,6 @@
+ #include "amdgpu_ras.h"
+ #include "amdgpu_atomfirmware.h"
+
+-struct ras_ih_data {
+- /* interrupt bottom half */
+- struct work_struct ih_work;
+- int inuse;
+- /* IP callback */
+- ras_ih_cb cb;
+- /* full of entries */
+- unsigned char *ring;
+- unsigned int ring_size;
+- unsigned int element_size;
+- unsigned int aligned_element_size;
+- unsigned int rptr;
+- unsigned int wptr;
+-};
+-
+-struct ras_fs_data {
+- char sysfs_name[32];
+- char debugfs_name[32];
+-};
+-
+-struct ras_err_data {
+- unsigned long ue_count;
+- unsigned long ce_count;
+-};
+-
+-struct ras_err_handler_data {
+- /* point to bad pages array */
+- struct {
+- unsigned long bp;
+- struct amdgpu_bo *bo;
+- } *bps;
+- /* the count of entries */
+- int count;
+- /* the space can place new entries */
+- int space_left;
+- /* last reserved entry's index + 1 */
+- int last_reserved;
+-};
+-
+-struct ras_manager {
+- struct ras_common_if head;
+- /* reference count */
+- int use;
+- /* ras block link */
+- struct list_head node;
+- /* the device */
+- struct amdgpu_device *adev;
+- /* debugfs */
+- struct dentry *ent;
+- /* sysfs */
+- struct device_attribute sysfs_attr;
+- int attr_inuse;
+-
+- /* fs node name */
+- struct ras_fs_data fs_data;
+-
+- /* IH data */
+- struct ras_ih_data ih_data;
+-
+- struct ras_err_data err_data;
+-};
+-
+-struct ras_badpage {
+- unsigned int bp;
+- unsigned int size;
+- unsigned int flags;
+-};
+-
+ const char *ras_error_string[] = {
+ "none",
+ "parity",
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
+index b2841195bd3b..80e94d604a2e 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
+@@ -108,8 +108,75 @@ struct amdgpu_ras {
+ uint32_t flags;
+ };
+
+-/* interfaces for IP */
++struct ras_ih_data {
++ /* interrupt bottom half */
++ struct work_struct ih_work;
++ int inuse;
++ /* IP callback */
++ ras_ih_cb cb;
++ /* full of entries */
++ unsigned char *ring;
++ unsigned int ring_size;
++ unsigned int element_size;
++ unsigned int aligned_element_size;
++ unsigned int rptr;
++ unsigned int wptr;
++};
++
++struct ras_fs_data {
++ char sysfs_name[32];
++ char debugfs_name[32];
++};
++
++struct ras_err_data {
++ unsigned long ue_count;
++ unsigned long ce_count;
++};
++
++struct ras_err_handler_data {
++ /* point to bad pages array */
++ struct {
++ unsigned long bp;
++ struct amdgpu_bo *bo;
++ } *bps;
++ /* the count of entries */
++ int count;
++ /* the space can place new entries */
++ int space_left;
++ /* last reserved entry's index + 1 */
++ int last_reserved;
++};
+
++struct ras_manager {
++ struct ras_common_if head;
++ /* reference count */
++ int use;
++ /* ras block link */
++ struct list_head node;
++ /* the device */
++ struct amdgpu_device *adev;
++ /* debugfs */
++ struct dentry *ent;
++ /* sysfs */
++ struct device_attribute sysfs_attr;
++ int attr_inuse;
++
++ /* fs node name */
++ struct ras_fs_data fs_data;
++
++ /* IH data */
++ struct ras_ih_data ih_data;
++
++ struct ras_err_data err_data;
++};
++
++struct ras_badpage {
++ unsigned int bp;
++ unsigned int size;
++ unsigned int flags;
++};
++
++/* interfaces for IP */
+ struct ras_fs_if {
+ struct ras_common_if head;
+ char sysfs_name[32];
+--
+2.17.1
+