Show parents, when given a clock name in dump mode
diff --git a/powerdebug.c b/powerdebug.c
index 72faa02..439f8f2 100644
--- a/powerdebug.c
+++ b/powerdebug.c
@@ -216,8 +216,9 @@
 {
 	int c, i;
 	int firsttime[TOTAL_FEATURE_WINS];
-	int enter_hit = 0;
-	int regulators = 0, sensors = 0, clocks = 0, verbose = 0;
+	int enter_hit = 0, verbose = 0;
+	int regulators = 0, sensors = 0, clocks = 0, findparent = 0;
+	char clkarg[64];
 
 	for (i = 0; i < TOTAL_FEATURE_WINS; i++)
 		firsttime[i] = 1;
@@ -227,6 +228,7 @@
 	 * -r, --regulator      : regulator
 	 * -s, --sensor	 : sensors
 	 * -c, --clock	  : clocks
+	 * -p, --findparents    : clockname whose parents have to be found
 	 * -t, --time		: ticktime
 	 * -d, --dump		: dump
 	 * -v, --verbose	: verbose
@@ -241,6 +243,7 @@
 			{"regulator", 0, 0, 'r'},
 			{"sensor", 0, 0, 's'},
 			{"clock", 0, 0, 'c'},
+			{"findparents", 0, 0, 'p'},
 			{"time", 0, 0, 't'},
 			{"dump", 0, 0, 'd'},
 			{"verbose", 0, 0, 'v'},
@@ -249,7 +252,7 @@
 			{0, 0, 0, 0}
 		};
 
-		c = getopt_long(argc, argv, "rsct:dvVh", long_options, &optindex);
+		c = getopt_long(argc, argv, "rscp:t:dvVh", long_options, &optindex);
 		if (c == -1)
 			break;
 
@@ -266,6 +269,10 @@
 			clocks = 1;
 			selectedwindow = CLOCK;
 			break;
+		case 'p':
+			findparent = 1;
+			strcpy(clkarg, optarg);
+			break;
 		case 't':
 			ticktime = strtod(optarg, NULL);
 			break;
@@ -296,6 +303,12 @@
 		usage(argv);
 	}
 
+	if (findparent && (!clocks || !dump)) {
+		fprintf(stderr, "-p option passed without -c and -d."
+			" Exiting...\n");
+		usage(argv);
+	}
+
 	if (!dump)
 		selectedwindow = REGULATOR;
 
@@ -341,8 +354,12 @@
 				highlighted_row = hrow;
 				enter_hit = 0;
 			}
-			if (!ret && dump)
-				read_and_dump_clock_info(verbose);
+			if (!ret && dump) {
+				if (findparent)
+					read_and_dump_clock_info_one(clkarg);
+				else
+					read_and_dump_clock_info(verbose);
+			}
 		}
 
 		if (selectedwindow == SENSOR) {