Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[firefly-linux-kernel-4.4.55.git] / drivers / phy / phy-qcom-ufs.c
index 44ee983d57fe5a2de86945606a4c63a64b88d11b..f9c618f0ab6e4fe120462616b2c84ba0d9fe30a6 100644 (file)
@@ -73,6 +73,7 @@ int ufs_qcom_phy_calibrate(struct ufs_qcom_phy *ufs_qcom_phy,
 out:
        return ret;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_calibrate);
 
 struct phy *ufs_qcom_phy_generic_probe(struct platform_device *pdev,
                                struct ufs_qcom_phy *common_cfg,
@@ -101,6 +102,7 @@ struct phy *ufs_qcom_phy_generic_probe(struct platform_device *pdev,
        if (IS_ERR(generic_phy)) {
                err =  PTR_ERR(generic_phy);
                dev_err(dev, "%s: failed to create phy %d\n", __func__, err);
+               generic_phy = NULL;
                goto out;
        }
 
@@ -110,6 +112,7 @@ struct phy *ufs_qcom_phy_generic_probe(struct platform_device *pdev,
 out:
        return generic_phy;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_generic_probe);
 
 /*
  * This assumes the embedded phy structure inside generic_phy is of type
@@ -121,6 +124,7 @@ struct ufs_qcom_phy *get_ufs_qcom_phy(struct phy *generic_phy)
 {
        return (struct ufs_qcom_phy *)phy_get_drvdata(generic_phy);
 }
+EXPORT_SYMBOL_GPL(get_ufs_qcom_phy);
 
 static
 int ufs_qcom_phy_base_init(struct platform_device *pdev,
@@ -131,40 +135,23 @@ int ufs_qcom_phy_base_init(struct platform_device *pdev,
        int err = 0;
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy_mem");
-       if (!res) {
-               dev_err(dev, "%s: phy_mem resource not found\n", __func__);
-               err = -ENOMEM;
-               goto out;
-       }
-
        phy_common->mmio = devm_ioremap_resource(dev, res);
        if (IS_ERR((void const *)phy_common->mmio)) {
                err = PTR_ERR((void const *)phy_common->mmio);
                phy_common->mmio = NULL;
                dev_err(dev, "%s: ioremap for phy_mem resource failed %d\n",
                        __func__, err);
-               goto out;
+               return err;
        }
 
        /* "dev_ref_clk_ctrl_mem" is optional resource */
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                                           "dev_ref_clk_ctrl_mem");
-       if (!res) {
-               dev_dbg(dev, "%s: dev_ref_clk_ctrl_mem resource not found\n",
-                       __func__);
-               goto out;
-       }
-
        phy_common->dev_ref_clk_ctrl_mmio = devm_ioremap_resource(dev, res);
-       if (IS_ERR((void const *)phy_common->dev_ref_clk_ctrl_mmio)) {
-               err = PTR_ERR((void const *)phy_common->dev_ref_clk_ctrl_mmio);
+       if (IS_ERR((void const *)phy_common->dev_ref_clk_ctrl_mmio))
                phy_common->dev_ref_clk_ctrl_mmio = NULL;
-               dev_err(dev, "%s: ioremap for dev_ref_clk_ctrl_mem resource failed %d\n",
-                       __func__, err);
-       }
 
-out:
-       return err;
+       return 0;
 }
 
 static int __ufs_qcom_phy_clk_get(struct phy *phy,
@@ -228,6 +215,7 @@ ufs_qcom_phy_init_clks(struct phy *generic_phy,
 out:
        return err;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_init_clks);
 
 int
 ufs_qcom_phy_init_vregulators(struct phy *generic_phy,
@@ -252,6 +240,7 @@ ufs_qcom_phy_init_vregulators(struct phy *generic_phy,
 out:
        return err;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_init_vregulators);
 
 static int __ufs_qcom_phy_init_vreg(struct phy *phy,
                struct ufs_qcom_phy_vreg *vreg, const char *name, bool optional)
@@ -346,10 +335,10 @@ int ufs_qcom_phy_cfg_vreg(struct phy *phy,
                        goto out;
                }
                uA_load = on ? vreg->max_uA : 0;
-               ret = regulator_set_optimum_mode(reg, uA_load);
+               ret = regulator_set_load(reg, uA_load);
                if (ret >= 0) {
                        /*
-                        * regulator_set_optimum_mode() returns new regulator
+                        * regulator_set_load() returns new regulator
                         * mode upon success.
                         */
                        ret = 0;
@@ -647,6 +636,7 @@ int ufs_qcom_phy_remove(struct phy *generic_phy,
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_remove);
 
 int ufs_qcom_phy_exit(struct phy *generic_phy)
 {
@@ -657,6 +647,7 @@ int ufs_qcom_phy_exit(struct phy *generic_phy)
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_exit);
 
 int ufs_qcom_phy_is_pcs_ready(struct phy *generic_phy)
 {
@@ -725,6 +716,7 @@ out_disable_phy:
 out:
        return err;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_power_on);
 
 int ufs_qcom_phy_power_off(struct phy *generic_phy)
 {
@@ -743,3 +735,4 @@ int ufs_qcom_phy_power_off(struct phy *generic_phy)
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(ufs_qcom_phy_power_off);