Merge tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / drivers / usb / chipidea / core.c
index 48b25d9..5b9825a 100644 (file)
@@ -410,7 +410,7 @@ static int hw_controller_reset(struct ci_hdrc *ci)
  *
  * This function returns an error code
  */
-int hw_device_reset(struct ci_hdrc *ci, u32 mode)
+int hw_device_reset(struct ci_hdrc *ci)
 {
        int ret;
 
@@ -440,12 +440,12 @@ int hw_device_reset(struct ci_hdrc *ci, u32 mode)
 
        /* USBMODE should be configured step by step */
        hw_write(ci, OP_USBMODE, USBMODE_CM, USBMODE_CM_IDLE);
-       hw_write(ci, OP_USBMODE, USBMODE_CM, mode);
+       hw_write(ci, OP_USBMODE, USBMODE_CM, USBMODE_CM_DC);
        /* HW >= 2.3 */
        hw_write(ci, OP_USBMODE, USBMODE_SLOM, USBMODE_SLOM);
 
-       if (hw_read(ci, OP_USBMODE, USBMODE_CM) != mode) {
-               pr_err("cannot enter in %s mode", ci_role(ci)->name);
+       if (hw_read(ci, OP_USBMODE, USBMODE_CM) != USBMODE_CM_DC) {
+               pr_err("cannot enter in %s device mode", ci_role(ci)->name);
                pr_err("lpm = %i", ci->hw_bank.lpm);
                return -ENODEV;
        }
@@ -549,7 +549,7 @@ static int ci_get_platdata(struct device *dev,
                if (PTR_ERR(platdata->reg_vbus) == -EPROBE_DEFER) {
                        return -EPROBE_DEFER;
                } else if (PTR_ERR(platdata->reg_vbus) == -ENODEV) {
-                       /* no vbus regualator is needed */
+                       /* no vbus regulator is needed */
                        platdata->reg_vbus = NULL;
                } else if (IS_ERR(platdata->reg_vbus)) {
                        dev_err(dev, "Getting regulator error: %ld\n",
@@ -669,6 +669,7 @@ static int ci_hdrc_probe(struct platform_device *pdev)
        if (!ci)
                return -ENOMEM;
 
+       platform_set_drvdata(pdev, ci);
        ci->dev = dev;
        ci->platdata = dev_get_platdata(dev);
        ci->imx28_write_fix = !!(ci->platdata->flags &
@@ -685,8 +686,8 @@ static int ci_hdrc_probe(struct platform_device *pdev)
        } else if (ci->platdata->usb_phy) {
                ci->usb_phy = ci->platdata->usb_phy;
        } else {
-               ci->phy = devm_phy_get(dev, "usb-phy");
-               ci->usb_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
+               ci->phy = devm_phy_get(dev->parent, "usb-phy");
+               ci->usb_phy = devm_usb_get_phy(dev->parent, USB_PHY_TYPE_USB2);
 
                /* if both generic PHY and USB PHY layers aren't enabled */
                if (PTR_ERR(ci->phy) == -ENOSYS &&
@@ -782,7 +783,6 @@ static int ci_hdrc_probe(struct platform_device *pdev)
                }
        }
 
-       platform_set_drvdata(pdev, ci);
        ret = devm_request_irq(dev, ci->irq, ci_irq, IRQF_SHARED,
                        ci->platdata->name, ci);
        if (ret)
@@ -868,7 +868,6 @@ static struct platform_driver ci_hdrc_driver = {
        .driver = {
                .name   = "ci_hdrc",
                .pm     = &ci_pm_ops,
-               .owner  = THIS_MODULE,
        },
 };