summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorGuy Sotomayor <gsotomayor@nvidia.com>2015-09-30 20:23:03 -0400
committerRichard Wiley <rwiley@nvidia.com>2015-10-20 12:52:53 -0400
commit875fc17a0bc9611ca9dc3e9882cfa170d528ddde (patch)
tree8e3ed468c92e63ef26d0b2e62e63965d56c25368 /include/linux
parent0cd84389a52914b617169cde986076f26f2f15c3 (diff)
arm64: refined machine check handling for bridges
Fixed the protocol to the bridge for determining that there is an error being reported by a bridge and capturing the information from the bridge's error FIFO. Changed the data structure representing the bridges to allow for different bridges to have different functions for capturing the error information since the locations of the registers and the bits within those registers are different for different bridges. Change-Id: Ic4caa1910319689987e7f8d79b5d910d1038c2cf Signed-off-by: Guy Sotomayor <gsotomayor@nvidia.com> Reviewed-on: http://git-master/r/807738 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Richard Wiley <rwiley@nvidia.com> Reviewed-on: http://git-master/r/819751 Tested-by: Richard Wiley <rwiley@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/platform/tegra/bridge_mca.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/platform/tegra/bridge_mca.h b/include/linux/platform/tegra/bridge_mca.h
index 26661d1e0..e523ec6a5 100644
--- a/include/linux/platform/tegra/bridge_mca.h
+++ b/include/linux/platform/tegra/bridge_mca.h
@@ -23,13 +23,17 @@ struct bridge_mca_bank {
23 char *name; 23 char *name;
24 phys_addr_t bank; 24 phys_addr_t bank;
25 void __iomem *vaddr; 25 void __iomem *vaddr;
26 unsigned int (*error_status)(void __iomem *addr);
27 unsigned int (*error_fifo_count)(void __iomem *addr);
26 struct bridge_mca_error *errors; 28 struct bridge_mca_error *errors;
29 int seen_error;
27 int max_error; 30 int max_error;
28}; 31};
29 32
30struct tegra_bridge_data { 33struct tegra_bridge_data {
31 char *name; 34 char *name;
32 unsigned long offset; 35 unsigned int (*error_status)(void __iomem *addr);
36 unsigned int (*error_fifo_count)(void __iomem *addr);
33 struct bridge_mca_error *errors; 37 struct bridge_mca_error *errors;
34 int max_error; 38 int max_error;
35}; 39};