cyclic: Integrate cyclic infrastructure into WATCHDOG_RESET
This patch integrates the main function responsible for calling all registered cyclic functions cyclic_run() into the common WATCHDOG_RESET macro. This guarantees that cyclic_run() is executed very often, which is necessary for the cyclic functions to get scheduled and executed at their configured periods. If CONFIG_WATCHDOG is not enabled, only cyclic_run() without calling watchdog_reset(). This guarantees that the cyclic functionality does not rely on CONFIG_WATCHDOG being enabled. Signed-off-by: Stefan Roese <sr@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
c2c6971888
commit
661cdaa79d
@ -62,7 +62,7 @@ int cramfs_uncompress_init (void)
|
|||||||
stream.avail_in = 0;
|
stream.avail_in = 0;
|
||||||
|
|
||||||
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
||||||
stream.outcb = (cb_func) WATCHDOG_RESET;
|
stream.outcb = (cb_func)watchdog_reset_func;
|
||||||
#else
|
#else
|
||||||
stream.outcb = Z_NULL;
|
stream.outcb = Z_NULL;
|
||||||
#endif /* CONFIG_HW_WATCHDOG */
|
#endif /* CONFIG_HW_WATCHDOG */
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
#define _WATCHDOG_H_
|
#define _WATCHDOG_H_
|
||||||
|
|
||||||
#if !defined(__ASSEMBLY__)
|
#if !defined(__ASSEMBLY__)
|
||||||
|
#include <cyclic.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reset the watchdog timer, always returns 0
|
* Reset the watchdog timer, always returns 0
|
||||||
*
|
*
|
||||||
@ -60,11 +62,16 @@ int init_func_watchdog_reset(void);
|
|||||||
/* Don't require the watchdog to be enabled in SPL */
|
/* Don't require the watchdog to be enabled in SPL */
|
||||||
#if defined(CONFIG_SPL_BUILD) && \
|
#if defined(CONFIG_SPL_BUILD) && \
|
||||||
!defined(CONFIG_SPL_WATCHDOG)
|
!defined(CONFIG_SPL_WATCHDOG)
|
||||||
#define WATCHDOG_RESET() {}
|
#define WATCHDOG_RESET() { \
|
||||||
|
cyclic_run(); \
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
extern void watchdog_reset(void);
|
extern void watchdog_reset(void);
|
||||||
|
|
||||||
#define WATCHDOG_RESET watchdog_reset
|
#define WATCHDOG_RESET() { \
|
||||||
|
watchdog_reset(); \
|
||||||
|
cyclic_run(); \
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
@ -74,11 +81,21 @@ int init_func_watchdog_reset(void);
|
|||||||
#if defined(__ASSEMBLY__)
|
#if defined(__ASSEMBLY__)
|
||||||
#define WATCHDOG_RESET /*XXX DO_NOT_DEL_THIS_COMMENT*/
|
#define WATCHDOG_RESET /*XXX DO_NOT_DEL_THIS_COMMENT*/
|
||||||
#else
|
#else
|
||||||
#define WATCHDOG_RESET() {}
|
#define WATCHDOG_RESET() { \
|
||||||
|
cyclic_run(); \
|
||||||
|
}
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
#endif /* CONFIG_WATCHDOG && !__ASSEMBLY__ */
|
#endif /* CONFIG_WATCHDOG && !__ASSEMBLY__ */
|
||||||
#endif /* CONFIG_HW_WATCHDOG */
|
#endif /* CONFIG_HW_WATCHDOG */
|
||||||
|
|
||||||
|
#if !defined(__ASSEMBLY__)
|
||||||
|
/* Currently only needed for fs/cramfs/uncompress.c */
|
||||||
|
static inline void watchdog_reset_func(void)
|
||||||
|
{
|
||||||
|
WATCHDOG_RESET();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prototypes from $(CPU)/cpu.c.
|
* Prototypes from $(CPU)/cpu.c.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user