#include <vsprintf.h>
#include <linux/errno.h>
-static int strtou32(const char *str, unsigned int base, u32 *result)
-{
- char *ep;
-
- *result = simple_strtoul(str, &ep, base);
- if (ep == str || *ep != '\0')
- return -EINVAL;
-
- return 0;
-}
-
static int confirm_prog(void)
{
puts("Warning: Programming fuses is an irreversible operation!\n"
argc -= 2 + confirmed;
argv += 2 + confirmed;
- if (argc < 2 || strtou32(argv[0], 0, &bank) ||
- strtou32(argv[1], 0, &word))
+ if (argc < 2)
return CMD_RET_USAGE;
+ bank = simple_strtoul(argv[0], NULL, 0);
+ word = simple_strtoul(argv[1], NULL, 0);
+
if (!strcmp(op, "read")) {
if (argc == 2)
cnt = 1;
- else if (argc != 3 || strtou32(argv[2], 0, &cnt))
+ else if (argc == 3)
+ cnt = simple_strtoul(argv[2], NULL, 0);
+ else
return CMD_RET_USAGE;
printf("Reading bank %u:\n", bank);
} else if (!strcmp(op, "readm")) {
if (argc == 3)
cnt = 1;
- else if (argc != 4 || strtou32(argv[3], 0, &cnt))
+ else if (argc == 4)
+ cnt = simple_strtoul(argv[3], NULL, 0);
+ else
return CMD_RET_USAGE;
addr = simple_strtoul(argv[2], NULL, 16);
unmap_sysmem(start);
} else if (!strcmp(op, "cmp")) {
- if (argc != 3 || strtou32(argv[2], 0, &cmp))
+ if (argc == 3)
+ cmp = simple_strtoul(argv[2], NULL, 0);
+ else
return CMD_RET_USAGE;
printf("Comparing bank %u:\n", bank);
} else if (!strcmp(op, "sense")) {
if (argc == 2)
cnt = 1;
- else if (argc != 3 || strtou32(argv[2], 0, &cnt))
+ else if (argc == 3)
+ cnt = simple_strtoul(argv[2], NULL, 0);
+ else
return CMD_RET_USAGE;
printf("Sensing bank %u:\n", bank);
return CMD_RET_USAGE;
for (i = 2; i < argc; i++, word++) {
- if (strtou32(argv[i], 16, &val))
- return CMD_RET_USAGE;
+ val = simple_strtoul(argv[i], NULL, 16);
printf("Programming bank %u word 0x%.8x to 0x%.8x...\n",
bank, word, val);
return CMD_RET_USAGE;
for (i = 2; i < argc; i++, word++) {
- if (strtou32(argv[i], 16, &val))
- return CMD_RET_USAGE;
+ val = simple_strtoul(argv[i], NULL, 16);
printf("Overriding bank %u word 0x%.8x with "
"0x%.8x...\n", bank, word, val);