From: Simon Glass Date: Sat, 29 Jul 2017 17:34:57 +0000 (-0600) Subject: dm: ide: Adjust the 'ide' command to use blk_common_cmd() X-Git-Tag: v2017.09-rc3~69^2~36 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=09ed0d616d62f87bf854532e4e01950fbcd0bb42;p=u-boot dm: ide: Adjust the 'ide' command to use blk_common_cmd() Instead of having separate code in the 'ide' command, adjust it to use the common function. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- diff --git a/cmd/ide.c b/cmd/ide.c index 10fb2f95a7..e3c32420cf 100644 --- a/cmd/ide.c +++ b/cmd/ide.c @@ -34,116 +34,15 @@ static int curr_device = -1; int do_ide(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { - int rcode = 0; - - switch (argc) { - case 0: - case 1: - return CMD_RET_USAGE; - case 2: + if (argc == 2) { if (strncmp(argv[1], "res", 3) == 0) { puts("\nReset IDE: "); ide_init(); return 0; - } else if (strncmp(argv[1], "inf", 3) == 0) { - blk_list_devices(IF_TYPE_IDE); - return 0; - - } else if (strncmp(argv[1], "dev", 3) == 0) { - if (blk_print_device_num(IF_TYPE_IDE, curr_device)) { - printf("\nno IDE devices available\n"); - return CMD_RET_FAILURE; - } - - return 0; - } else if (strncmp(argv[1], "part", 4) == 0) { - if (blk_list_part(IF_TYPE_IDE)) - printf("\nno IDE devices available\n"); - return 1; } - return CMD_RET_USAGE; - case 3: - if (strncmp(argv[1], "dev", 3) == 0) { - int dev = (int)simple_strtoul(argv[2], NULL, 10); - - if (!blk_show_device(IF_TYPE_IDE, dev)) { - curr_device = dev; - printf("... is now current device\n"); - } else { - return CMD_RET_FAILURE; - } - return 0; - } else if (strncmp(argv[1], "part", 4) == 0) { - int dev = (int)simple_strtoul(argv[2], NULL, 10); - - if (blk_print_part_devnum(IF_TYPE_IDE, dev)) { - printf("\nIDE device %d not available\n", dev); - return CMD_RET_FAILURE; - } - return 1; - } - - return CMD_RET_USAGE; - default: - /* at least 4 args */ - - if (strcmp(argv[1], "read") == 0) { - ulong addr = simple_strtoul(argv[2], NULL, 16); - ulong cnt = simple_strtoul(argv[4], NULL, 16); - ulong n; - -#ifdef CONFIG_SYS_64BIT_LBA - lbaint_t blk = simple_strtoull(argv[3], NULL, 16); - - printf("\nIDE read: device %d block # %lld, count %ld...", - curr_device, blk, cnt); -#else - lbaint_t blk = simple_strtoul(argv[3], NULL, 16); - - printf("\nIDE read: device %d block # %ld, count %ld...", - curr_device, blk, cnt); -#endif - - n = blk_read_devnum(IF_TYPE_IDE, curr_device, blk, cnt, - (ulong *)addr); - - printf("%ld blocks read: %s\n", - n, (n == cnt) ? "OK" : "ERROR"); - if (n == cnt) - return 0; - else - return 1; - } else if (strcmp(argv[1], "write") == 0) { - ulong addr = simple_strtoul(argv[2], NULL, 16); - ulong cnt = simple_strtoul(argv[4], NULL, 16); - ulong n; - -#ifdef CONFIG_SYS_64BIT_LBA - lbaint_t blk = simple_strtoull(argv[3], NULL, 16); - - printf("\nIDE write: device %d block # %lld, count %ld...", - curr_device, blk, cnt); -#else - lbaint_t blk = simple_strtoul(argv[3], NULL, 16); - - printf("\nIDE write: device %d block # %ld, count %ld...", - curr_device, blk, cnt); -#endif - n = blk_write_devnum(IF_TYPE_IDE, curr_device, blk, cnt, - (ulong *)addr); - - printf("%ld blocks written: %s\n", n, - n == cnt ? "OK" : "ERROR"); - if (n == cnt) - return 0; - else - return 1; - } else { - return CMD_RET_USAGE; - } - - return rcode; } + + return blk_common_cmd(argc, argv, IF_TYPE_IDE, &curr_device); } int do_diskboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])