Merge git://git.denx.de/u-boot-dm
authorTom Rini <trini@konsulko.com>
Thu, 8 Oct 2015 07:03:41 +0000 (03:03 -0400)
committerTom Rini <trini@konsulko.com>
Thu, 8 Oct 2015 07:03:41 +0000 (03:03 -0400)
arch/sandbox/dts/sandbox.dts
drivers/core/device.c
drivers/misc/reset_sandbox.c
test/dm/core.c

index 65b9125..08f72ac 100644 (file)
                };
        };
 
+       reset@1 {
+               compatible = "sandbox,reset";
+       };
+
        spi@0 {
                #address-cells = <1>;
                #size-cells = <0>;
index 0bc04d4..833a803 100644 (file)
@@ -289,8 +289,12 @@ int device_probe_child(struct udevice *dev, void *parent_priv)
 
        dev->flags |= DM_FLAG_ACTIVATED;
 
-       /* continue regardless of the result of pinctrl */
-       pinctrl_select_state(dev, "default");
+       /*
+        * Process pinctrl for everything except the root device, and
+        * continue regardless of the result of pinctrl.
+        */
+       if (dev->parent)
+               pinctrl_select_state(dev, "default");
 
        ret = uclass_pre_probe_device(dev);
        if (ret)
index 917121b..2691bb0 100644 (file)
@@ -40,7 +40,7 @@ static int sandbox_reset_request(struct udevice *dev, enum reset_t type)
         * (see the U_BOOT_DEVICE() declaration below) should not do anything.
         * If we are that device, return an error.
         */
-       if (gd->fdt_blob && dev->of_offset == -1)
+       if (state->fdt_fname && dev->of_offset == -1)
                return -ENODEV;
 
        switch (type) {
index 976a706..9fbc70d 100644 (file)
@@ -77,7 +77,7 @@ void dm_leak_check_start(struct unit_test_state *uts)
 int dm_leak_check_end(struct unit_test_state *uts)
 {
        struct mallinfo end;
-       int id;
+       int id, diff;
 
        /* Don't delete the root class, since we started with that */
        for (id = UCLASS_ROOT + 1; id < UCLASS_COUNT; id++) {
@@ -90,6 +90,11 @@ int dm_leak_check_end(struct unit_test_state *uts)
        }
 
        end = mallinfo();
+       diff = end.uordblks - uts->start.uordblks;
+       if (diff > 0)
+               printf("Leak: lost %#xd bytes\n", diff);
+       else if (diff < 0)
+               printf("Leak: gained %#xd bytes\n", -diff);
        ut_asserteq(uts->start.uordblks, end.uordblks);
 
        return 0;