usb: ohci: ohci-da8xx: Cleanup Error handling and fix flags
authorAdam Ford <aford173@gmail.com>
Tue, 7 May 2019 11:57:39 +0000 (06:57 -0500)
committerTom Rini <trini@konsulko.com>
Thu, 9 May 2019 23:52:55 +0000 (19:52 -0400)
Per feedback from Marek, he suggested better handling and
to enable DM_FLAG_OS_PREPARE, this patch re-orders some of
the error checking, and errors returns the error code right
away and also sets DM_FLAG_OS_PREPARE.

Signed-off-by: Adam Ford <aford173@gmail.com>
drivers/usb/host/ohci-da8xx.c

index e8a495fde598a56388b1dc56828f3db63773d603..233df57b4da465fc6ffeac00b3c58e44113644ae 100644 (file)
@@ -93,6 +93,10 @@ static int ohci_da8xx_probe(struct udevice *dev)
        err = 0;
        priv->clock_count = 0;
        clock_nb = dev_count_phandle_with_args(dev, "clocks", "#clock-cells");
+
+       if (clock_nb < 0)
+               return clock_nb;
+
        if (clock_nb > 0) {
                priv->clocks = devm_kcalloc(dev, clock_nb, sizeof(struct clk),
                                            GFP_KERNEL);
@@ -112,9 +116,6 @@ static int ohci_da8xx_probe(struct udevice *dev)
                        }
                        priv->clock_count++;
                }
-       } else if (clock_nb != -ENOENT) {
-               dev_err(dev, "failed to get clock phandle(%d)\n", clock_nb);
-               return clock_nb;
        }
 
        err = usb_cpu_init();
@@ -170,6 +171,6 @@ U_BOOT_DRIVER(ohci_generic) = {
        .remove = ohci_da8xx_remove,
        .ops    = &ohci_usb_ops,
        .priv_auto_alloc_size = sizeof(struct da8xx_ohci),
-       .flags  = DM_FLAG_ALLOC_PRIV_DMA,
+       .flags  = DM_FLAG_ALLOC_PRIV_DMA | DM_FLAG_OS_PREPARE,
 };
 #endif