tools: dumpimage: Add help option and make error paths consistent

The utility dumpimage has error paths that display the usage and others
that exit without displaying usage. Add an explicit help option to
dumpimage to display the usage and remove it's use in error paths to make
the error messages more obvious and errors paths more consistent.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
diff --git a/tools/dumpimage.c b/tools/dumpimage.c
index e17e979..5c9ad36 100644
--- a/tools/dumpimage.c
+++ b/tools/dumpimage.c
@@ -65,7 +65,7 @@
 
 	params.cmdname = *argv;
 
-	while ((opt = getopt(argc, argv, "lo:T:p:V")) != -1) {
+	while ((opt = getopt(argc, argv, "hlo:T:p:V")) != -1) {
 		switch (opt) {
 		case 'l':
 			params.lflag = 1;
@@ -79,7 +79,7 @@
 			if (params.type < 0) {
 				fprintf(stderr, "%s: Invalid type\n",
 					params.cmdname);
-				usage();
+				exit(EXIT_FAILURE);
 			}
 			break;
 		case 'p':
@@ -94,15 +94,20 @@
 		case 'V':
 			printf("dumpimage version %s\n", PLAIN_VERSION);
 			exit(EXIT_SUCCESS);
+		case 'h':
+			usage();
 		default:
 			usage();
 			break;
 		}
 	}
 
+	if (argc < 2)
+		usage();
+
 	if (optind >= argc) {
 		fprintf(stderr, "%s: image file missing\n", params.cmdname);
-		usage();
+		exit(EXIT_FAILURE);
 	}
 
 	params.imagefile = argv[optind];
@@ -123,7 +128,7 @@
 		if (tparams->check_params(&params)) {
 			fprintf(stderr, "%s: Parameter check failed\n",
 				params.cmdname);
-			usage();
+			exit(EXIT_FAILURE);
 		}
 	}
 
@@ -196,8 +201,11 @@
 		"          -p ==> 'position' (starting at 0) of the component to extract from image\n",
 		params.cmdname);
 	fprintf(stderr,
+		"       %s -h ==> print usage information and exit\n",
+		params.cmdname);
+	fprintf(stderr,
 		"       %s -V ==> print version information and exit\n",
 		params.cmdname);
 
-	exit(EXIT_FAILURE);
+	exit(EXIT_SUCCESS);
 }