From 875fc17a0bc9611ca9dc3e9882cfa170d528ddde Mon Sep 17 00:00:00 2001 From: Guy Sotomayor Date: Wed, 30 Sep 2015 17:23:03 -0700 Subject: 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 Reviewed-on: http://git-master/r/807738 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Richard Wiley Reviewed-on: http://git-master/r/819751 Tested-by: Richard Wiley --- include/linux/platform/tegra/bridge_mca.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include/linux/platform') 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 { char *name; phys_addr_t bank; void __iomem *vaddr; + unsigned int (*error_status)(void __iomem *addr); + unsigned int (*error_fifo_count)(void __iomem *addr); struct bridge_mca_error *errors; + int seen_error; int max_error; }; struct tegra_bridge_data { char *name; - unsigned long offset; + unsigned int (*error_status)(void __iomem *addr); + unsigned int (*error_fifo_count)(void __iomem *addr); struct bridge_mca_error *errors; int max_error; }; -- cgit v1.2.2