]> Git Repo - J-u-boot.git/blobdiff - cmd/cyclic.c
Merge patch series "Cumulative fixes and updates for MediaTek ethernet driver"
[J-u-boot.git] / cmd / cyclic.c
index c1bc556aade9fe86cd823340d23a63c5761c8310..339dd4a7bceb8552851ff8b42b1403c74572a544 100644 (file)
@@ -8,20 +8,23 @@
  * Copyright (C) 2022 Stefan Roese <[email protected]>
  */
 
-#include <common.h>
 #include <command.h>
 #include <cyclic.h>
 #include <div64.h>
 #include <malloc.h>
+#include <time.h>
+#include <vsprintf.h>
 #include <linux/delay.h>
+#include <linux/kernel.h>
 
 struct cyclic_demo_info {
+       struct cyclic_info cyclic;
        uint delay_us;
 };
 
-static void cyclic_demo(void *ctx)
+static void cyclic_demo(struct cyclic_info *c)
 {
-       struct cyclic_demo_info *info = ctx;
+       struct cyclic_demo_info *info = container_of(c, struct cyclic_demo_info, cyclic);
 
        /* Just a small dummy delay here */
        udelay(info->delay_us);
@@ -31,7 +34,6 @@ static int do_cyclic_demo(struct cmd_tbl *cmdtp, int flag, int argc,
                          char *const argv[])
 {
        struct cyclic_demo_info *info;
-       struct cyclic_info *cyclic;
        uint time_ms;
 
        if (argc < 3)
@@ -47,10 +49,7 @@ static int do_cyclic_demo(struct cmd_tbl *cmdtp, int flag, int argc,
        info->delay_us = simple_strtoul(argv[2], NULL, 0);
 
        /* Register demo cyclic function */
-       cyclic = cyclic_register(cyclic_demo, time_ms * 1000, "cyclic_demo",
-                                info);
-       if (!cyclic)
-               printf("Registering of cyclic_demo failed\n");
+       cyclic_register(&info->cyclic, cyclic_demo, time_ms * 1000, "cyclic_demo");
 
        printf("Registered function \"%s\" to be executed all %dms\n",
               "cyclic_demo", time_ms);
@@ -61,10 +60,11 @@ static int do_cyclic_demo(struct cmd_tbl *cmdtp, int flag, int argc,
 static int do_cyclic_list(struct cmd_tbl *cmdtp, int flag, int argc,
                          char *const argv[])
 {
-       struct cyclic_info *cyclic, *tmp;
+       struct cyclic_info *cyclic;
+       struct hlist_node *tmp;
        u64 cnt, freq;
 
-       list_for_each_entry_safe(cyclic, tmp, cyclic_get_list(), list) {
+       hlist_for_each_entry_safe(cyclic, tmp, cyclic_get_list(), list) {
                cnt = cyclic->run_cnt * 1000000ULL * 100ULL;
                freq = lldiv(cnt, timer_get_us() - cyclic->start_time_us);
                printf("function: %s, cpu-time: %lld us, frequency: %lld.%02d times/s\n",
@@ -75,9 +75,9 @@ static int do_cyclic_list(struct cmd_tbl *cmdtp, int flag, int argc,
        return 0;
 }
 
-static char cyclic_help_text[] =
-       "cyclic demo <cycletime_ms> <delay_us> - register cyclic demo function\n"
-       "cyclic list - list cyclic functions\n";
+U_BOOT_LONGHELP(cyclic,
+       "demo <cycletime_ms> <delay_us> - register cyclic demo function\n"
+       "cyclic list - list cyclic functions\n");
 
 U_BOOT_CMD_WITH_SUBCMDS(cyclic, "Cyclic", cyclic_help_text,
        U_BOOT_SUBCMD_MKENT(demo, 3, 1, do_cyclic_demo),
This page took 0.026603 seconds and 4 git commands to generate.