device: Stop and output time in `scan_bus()`

Output how long it took to scan a bus.

Note, that the function `scan_bus()` is called recursively.

Change-Id: I6335e10db783f092ea18d3a1c79f93135bee5826
Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: http://review.coreboot.org/12103
Tested-by: build bot (Jenkins)
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/device/device.c b/src/device/device.c
index cf418eb..55a5dfd 100644
--- a/src/device/device.c
+++ b/src/device/device.c
@@ -909,6 +909,9 @@
 static void scan_bus(struct device *busdev)
 {
 	int do_scan_bus;
+	struct stopwatch sw;
+
+	stopwatch_init(&sw);
 
 	if (!busdev->enabled)
 		return;
@@ -931,6 +934,9 @@
 			}
 		}
 	}
+
+	printk(BIOS_DEBUG, "%s: scanning of bus %s took %ld usecs\n",
+		__func__, dev_path(busdev), stopwatch_duration_usecs(&sw));
 }
 
 void scan_bridges(struct bus *bus)