Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33f434d2 authored by Axel Lin's avatar Axel Lin Committed by Kishon Vijay Abraham I
Browse files

phy: core: Check requested PHY status in _of_phy_get()



This is a common checking in various drivers, so move the checking to
_of_phy_get().

Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
parent 5bea4968
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -367,13 +367,21 @@ static struct phy *_of_phy_get(struct device_node *np, int index)
	phy_provider = of_phy_provider_lookup(args.np);
	if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) {
		phy = ERR_PTR(-EPROBE_DEFER);
		goto err0;
		goto out_unlock;
	}

	if (!of_device_is_available(args.np)) {
		dev_warn(phy_provider->dev, "Requested PHY is disabled\n");
		phy = ERR_PTR(-ENODEV);
		goto out_put_module;
	}

	phy = phy_provider->of_xlate(phy_provider->dev, &args);

out_put_module:
	module_put(phy_provider->owner);

err0:
out_unlock:
	mutex_unlock(&phy_provider_mutex);
	of_node_put(args.np);

+0 −5
Original line number Diff line number Diff line
@@ -1107,11 +1107,6 @@ static struct phy *miphy28lp_xlate(struct device *dev,
	struct device_node *phynode = args->np;
	int ret, index = 0;

	if (!of_device_is_available(phynode)) {
		dev_warn(dev, "Requested PHY is disabled\n");
		return ERR_PTR(-ENODEV);
	}

	if (args->args_count != 1) {
		dev_err(dev, "Invalid number of cells in 'phy' property\n");
		return ERR_PTR(-EINVAL);
+0 −5
Original line number Diff line number Diff line
@@ -476,11 +476,6 @@ static struct phy *miphy365x_xlate(struct device *dev,
	struct device_node *phynode = args->np;
	int ret, index;

	if (!of_device_is_available(phynode)) {
		dev_warn(dev, "Requested PHY is disabled\n");
		return ERR_PTR(-ENODEV);
	}

	if (args->args_count != 1) {
		dev_err(dev, "Invalid number of cells in 'phy' property\n");
		return ERR_PTR(-EINVAL);
+0 −5
Original line number Diff line number Diff line
@@ -206,11 +206,6 @@ static struct phy *rcar_gen2_phy_xlate(struct device *dev,
	struct device_node *np = args->np;
	int i;

	if (!of_device_is_available(np)) {
		dev_warn(dev, "Requested PHY is disabled\n");
		return ERR_PTR(-ENODEV);
	}

	drv = dev_get_drvdata(dev);
	if (!drv)
		return ERR_PTR(-EINVAL);