usb: mtu3: get resources that cause deferred probe earlier
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Wed, 18 Jan 2017 06:08:22 +0000 (14:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2017 09:37:16 +0000 (10:37 +0100)
Some resources such as regulator, clock usually cause deferred
probe, get them earlier to avoid more ineffective processing.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/mtu3/mtu3_plat.c

index 783367805c99ffb1fe24e7ac9303e846e43e0ea6..63448595c209d62ba95b204ae0f7cf8989f4b973 100644 (file)
@@ -204,6 +204,18 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
        int i;
        int ret;
 
+       ssusb->vusb33 = devm_regulator_get(&pdev->dev, "vusb33");
+       if (IS_ERR(ssusb->vusb33)) {
+               dev_err(dev, "failed to get vusb33\n");
+               return PTR_ERR(ssusb->vusb33);
+       }
+
+       ssusb->sys_clk = devm_clk_get(dev, "sys_ck");
+       if (IS_ERR(ssusb->sys_clk)) {
+               dev_err(dev, "failed to get sys clock\n");
+               return PTR_ERR(ssusb->sys_clk);
+       }
+
        ssusb->num_phys = of_count_phandle_with_args(node,
                        "phys", "#phy-cells");
        if (ssusb->num_phys > 0) {
@@ -230,18 +242,6 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
                return PTR_ERR(ssusb->ippc_base);
        }
 
-       ssusb->vusb33 = devm_regulator_get(&pdev->dev, "vusb33");
-       if (IS_ERR(ssusb->vusb33)) {
-               dev_err(dev, "failed to get vusb33\n");
-               return PTR_ERR(ssusb->vusb33);
-       }
-
-       ssusb->sys_clk = devm_clk_get(dev, "sys_ck");
-       if (IS_ERR(ssusb->sys_clk)) {
-               dev_err(dev, "failed to get sys clock\n");
-               return PTR_ERR(ssusb->sys_clk);
-       }
-
        ssusb->dr_mode = usb_get_dr_mode(dev);
        if (ssusb->dr_mode == USB_DR_MODE_UNKNOWN) {
                dev_err(dev, "dr_mode is error\n");