X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_misc.c;h=973b1c20826e64efddc9e848aa713ed8fe9560d8;hb=436da3cd233e7166b5ce9293dbd28092cf37bcc9;hp=76fe26733ad4d5a760b90e30e3d5dae53992a3cd;hpb=8bde7f776c77b343aca29b8c7b58464d915ac245;p=u-boot diff --git a/common/cmd_misc.c b/common/cmd_misc.c index 76fe26733a..973b1c2082 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -27,47 +27,29 @@ #include #include -#if (CONFIG_COMMANDS & CFG_CMD_MISC) - -int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { + ulong start = get_timer(0); ulong delay; - if (argc != 2) { - printf ("Usage:\n%s\n", cmdtp->usage); - return 1; - } + if (argc != 2) + return CMD_RET_USAGE; - delay = simple_strtoul(argv[1], NULL, 10); + delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ; - while (delay) { - int i; - for (i=0; i<1000; ++i) { - if (ctrlc ()) { - return (-1); - } - udelay (1000); - } - --delay; + while (get_timer(start) < delay) { + if (ctrlc ()) + return (-1); + + udelay (100); } + return 0; } -/* Implemented in $(CPU)/interrupts.c */ -#if (CONFIG_COMMANDS & CFG_CMD_IRQ) -int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); -cmd_tbl_t U_BOOT_CMD(IRQINFO) = MK_CMD_ENTRY( - "irqinfo", 1, 1, do_irqinfo, - "irqinfo - print information about IRQs\n", - NULL -); -#endif /* CONFIG_COMMANDS & CFG_CMD_IRQ */ - -cmd_tbl_t U_BOOT_CMD(MISC) = MK_CMD_ENTRY( - "sleep" , 2, 2, do_sleep, - "sleep - delay execution for some time\n", +U_BOOT_CMD( + sleep , 2, 1, do_sleep, + "delay execution for some time", "N\n" - " - delay execution for N seconds (N is _decimal_ !!!)\n" + " - delay execution for N seconds (N is _decimal_ !!!)" ); - -#endif /* CFG_CMD_MISC */