mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
cyclic: Introduce schedule() function
This patch introduces a schedule() function, which shall be used instead of the old WATCHDOG_RESET. Follow-up patches will make sure, that this new function is used. Signed-off-by: Stefan Roese <sr@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Tom Rini <trini@konsulko.com> [am335x_evm, mx6cuboxi, rpi_3,dra7xx_evm, pine64_plus, am65x_evm, j721e_evm]
This commit is contained in:
parent
c2fd0ca1a8
commit
881d410825
2 changed files with 28 additions and 0 deletions
|
@ -18,6 +18,8 @@
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
void hw_watchdog_reset(void);
|
||||||
|
|
||||||
struct list_head *cyclic_get_list(void)
|
struct list_head *cyclic_get_list(void)
|
||||||
{
|
{
|
||||||
return &gd->cyclic->cyclic_list;
|
return &gd->cyclic->cyclic_list;
|
||||||
|
@ -96,6 +98,20 @@ void cyclic_run(void)
|
||||||
gd->cyclic->cyclic_running = false;
|
gd->cyclic->cyclic_running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void schedule(void)
|
||||||
|
{
|
||||||
|
/* The HW watchdog is not integrated into the cyclic IF (yet) */
|
||||||
|
if (IS_ENABLED(CONFIG_HW_WATCHDOG))
|
||||||
|
hw_watchdog_reset();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* schedule() might get called very early before the cyclic IF is
|
||||||
|
* ready. Make sure to only call cyclic_run() when it's initalized.
|
||||||
|
*/
|
||||||
|
if (gd && gd->cyclic && gd->cyclic->cyclic_ready)
|
||||||
|
cyclic_run();
|
||||||
|
}
|
||||||
|
|
||||||
int cyclic_uninit(void)
|
int cyclic_uninit(void)
|
||||||
{
|
{
|
||||||
struct cyclic_info *cyclic, *tmp;
|
struct cyclic_info *cyclic, *tmp;
|
||||||
|
|
|
@ -106,6 +106,14 @@ struct list_head *cyclic_get_list(void);
|
||||||
* needs to be executed, then call into these registered functions.
|
* needs to be executed, then call into these registered functions.
|
||||||
*/
|
*/
|
||||||
void cyclic_run(void);
|
void cyclic_run(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* schedule() - Schedule all potentially waiting tasks
|
||||||
|
*
|
||||||
|
* Basically a wrapper for cyclic_run(), pontentially enhanced by some
|
||||||
|
* other parts, that need to get handled periodically.
|
||||||
|
*/
|
||||||
|
void schedule(void);
|
||||||
#else
|
#else
|
||||||
static inline struct cyclic_info *cyclic_register(cyclic_func_t func,
|
static inline struct cyclic_info *cyclic_register(cyclic_func_t func,
|
||||||
uint64_t delay_us,
|
uint64_t delay_us,
|
||||||
|
@ -124,6 +132,10 @@ static inline void cyclic_run(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void schedule(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static inline int cyclic_init(void)
|
static inline int cyclic_init(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue