summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2013-10-16 09:06:32 +0200
committerTom Rini <trini@ti.com>2013-10-16 09:24:38 -0400
commit8c4dba1a5e5ff67380ae8d54fd5756e44dc2da59 (patch)
tree3d6eb0b2ff42179bad5e5d9da3127d855c22726b
parent100ea07e331b7898dc774aeba108d66bdd5a5cf5 (diff)
downloadu-boot-imx-8c4dba1a5e5ff67380ae8d54fd5756e44dc2da59.zip
u-boot-imx-8c4dba1a5e5ff67380ae8d54fd5756e44dc2da59.tar.gz
u-boot-imx-8c4dba1a5e5ff67380ae8d54fd5756e44dc2da59.tar.bz2
microblaze: Fix watchdog initialization
The patch: "blackfin: Move blackfin watchdog driver out of the blackfin arch folder." (sha1: e9a389a18477c1c57a0b30e9ea8f4d38c6e26e63) changed hw_watchdog_init() prototype which didn't match with Microblaze one. This patch fixes the driver and Microblaze initialization. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-rw-r--r--arch/microblaze/include/asm/processor.h1
-rw-r--r--arch/microblaze/lib/board.c6
-rw-r--r--drivers/watchdog/xilinx_tb_wdt.c6
3 files changed, 5 insertions, 8 deletions
diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
index a2a5811..5afc8f9 100644
--- a/arch/microblaze/include/asm/processor.h
+++ b/arch/microblaze/include/asm/processor.h
@@ -16,7 +16,6 @@ extern char __text_start[];
void board_init(void);
/* Watchdog functions */
-extern int hw_watchdog_init(void);
extern void hw_watchdog_disable(void);
#endif /* __ASM_MICROBLAZE_PROCESSOR_H */
diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
index f7182f2..896e73a 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -46,9 +46,6 @@ init_fnc_t *init_sequence[] = {
serial_init,
console_init_f,
interrupts_init,
-#ifdef CONFIG_XILINX_TB_WATCHDOG
- hw_watchdog_init,
-#endif
timer_init,
NULL,
};
@@ -97,6 +94,9 @@ void board_init_f(ulong not_used)
serial_initialize();
+#ifdef CONFIG_XILINX_TB_WATCHDOG
+ hw_watchdog_init();
+#endif
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
WATCHDOG_RESET();
if ((*init_fnc_ptr) () != 0)
diff --git a/drivers/watchdog/xilinx_tb_wdt.c b/drivers/watchdog/xilinx_tb_wdt.c
index 4e46e4c..6336c94 100644
--- a/drivers/watchdog/xilinx_tb_wdt.c
+++ b/drivers/watchdog/xilinx_tb_wdt.c
@@ -54,7 +54,7 @@ static void hw_watchdog_isr(void *arg)
hw_watchdog_reset();
}
-int hw_watchdog_init(void)
+void hw_watchdog_init(void)
{
int ret;
@@ -65,7 +65,5 @@ int hw_watchdog_init(void)
ret = install_interrupt_handler(CONFIG_WATCHDOG_IRQ,
hw_watchdog_isr, NULL);
if (ret)
- return 1;
-
- return 0;
+ puts("Watchdog IRQ registration failed.");
}