aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2014-09-18 15:32:10 -0400
committerFlorian Fainelli <f.fainelli@gmail.com>2014-10-20 15:44:42 -0400
commitf1bee783dd37d088a8a7924205476ba1cf675378 (patch)
tree0c92e232fcd90be3cf369213d5633146e8232ab4
parent1aaaad3ffaec839929cc69992f419d656e18dc55 (diff)
bus: brcmstb_gisb: register the fault code hook
Commit 44127b771d9c31 ("bus: add Broadcom GISB bus arbiter timeout/error handler") added everything that is required to register an ARM fault handler for imprecise external aborts, except that there is nothing calling this currently. We do not need to export that specific function and have to update arch/arm/mach-bcm/brcmstb.c to call it, simply, register the fault handler during the probe() function of the driver. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-rw-r--r--drivers/bus/brcmstb_gisb.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/bus/brcmstb_gisb.c b/drivers/bus/brcmstb_gisb.c
index f2cd6a2d40b4..41b09418f515 100644
--- a/drivers/bus/brcmstb_gisb.c
+++ b/drivers/bus/brcmstb_gisb.c
@@ -160,12 +160,6 @@ static int brcmstb_bus_error_handler(unsigned long addr, unsigned int fsr,
160 return ret; 160 return ret;
161} 161}
162 162
163void __init brcmstb_hook_fault_code(void)
164{
165 hook_fault_code(22, brcmstb_bus_error_handler, SIGBUS, 0,
166 "imprecise external abort");
167}
168
169static irqreturn_t brcmstb_gisb_timeout_handler(int irq, void *dev_id) 163static irqreturn_t brcmstb_gisb_timeout_handler(int irq, void *dev_id)
170{ 164{
171 brcmstb_gisb_arb_decode_addr(dev_id, "timeout"); 165 brcmstb_gisb_arb_decode_addr(dev_id, "timeout");
@@ -261,6 +255,9 @@ static int brcmstb_gisb_arb_probe(struct platform_device *pdev)
261 255
262 list_add_tail(&gdev->next, &brcmstb_gisb_arb_device_list); 256 list_add_tail(&gdev->next, &brcmstb_gisb_arb_device_list);
263 257
258 hook_fault_code(22, brcmstb_bus_error_handler, SIGBUS, 0,
259 "imprecise external abort");
260
264 dev_info(&pdev->dev, "registered mem: %p, irqs: %d, %d\n", 261 dev_info(&pdev->dev, "registered mem: %p, irqs: %d, %d\n",
265 gdev->base, timeout_irq, tea_irq); 262 gdev->base, timeout_irq, tea_irq);
266 263