Skip to content

Commit

Permalink
cyclic: Introduce schedule() function
Browse files Browse the repository at this point in the history
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]
  • Loading branch information
stroese committed Sep 18, 2022
1 parent c2fd0ca commit 881d410
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
16 changes: 16 additions & 0 deletions common/cyclic.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

DECLARE_GLOBAL_DATA_PTR;

void hw_watchdog_reset(void);

struct list_head *cyclic_get_list(void)
{
return &gd->cyclic->cyclic_list;
Expand Down Expand Up @@ -96,6 +98,20 @@ void cyclic_run(void)
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)
{
struct cyclic_info *cyclic, *tmp;
Expand Down
12 changes: 12 additions & 0 deletions include/cyclic.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,14 @@ struct list_head *cyclic_get_list(void);
* needs to be executed, then call into these registered functions.
*/
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
static inline struct cyclic_info *cyclic_register(cyclic_func_t func,
uint64_t delay_us,
Expand All @@ -124,6 +132,10 @@ static inline void cyclic_run(void)
{
}

static inline void schedule(void)
{
}

static inline int cyclic_init(void)
{
return 0;
Expand Down

0 comments on commit 881d410

Please sign in to comment.