Fix "usb part" command
authorChristian Eggers <christian@p2400.wgnetz.xx>
Fri, 27 Jun 2008 17:46:51 +0000 (19:46 +0200)
committerWolfgang Denk <wd@denx.de>
Thu, 10 Jul 2008 10:24:29 +0000 (12:24 +0200)
Only print partition for selected device if user supplied the <dev>
arg with the "usb part [dev]" command.

Signed-off-by: Christian Eggers <ceggers@gmx.de>
Acked-by: Markus Klotzbuecher <mk@denx.de>
common/cmd_usb.c

index f2795d3f4034a38c445e561803dfdd1eef513a29..30caa98ea738020832b78dcdd15c7595e4a03025 100644 (file)
@@ -554,13 +554,24 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
 
        if (strncmp(argv[1],"part",4) == 0) {
-               int devno, ok;
-               for (ok=0, devno=0; devno<USB_MAX_STOR_DEV; ++devno) {
+               int devno, ok = 0;
+               if (argc==2) {
+                       for (devno=0; devno<USB_MAX_STOR_DEV; ++devno) {
+                               stor_dev=usb_stor_get_dev(devno);
+                               if (stor_dev->type!=DEV_TYPE_UNKNOWN) {
+                                       ok++;
+                                       if (devno)
+                                               printf("\n");
+                                       printf("print_part of %x\n",devno);
+                                       print_part(stor_dev);
+                               }
+                       }
+               }
+               else {
+                       devno=simple_strtoul(argv[2], NULL, 16);
                        stor_dev=usb_stor_get_dev(devno);
                        if (stor_dev->type!=DEV_TYPE_UNKNOWN) {
                                ok++;
-                               if (devno)
-                                       printf("\n");
                                printf("print_part of %x\n",devno);
                                print_part(stor_dev);
                        }