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: Axel Lin <axel.lin@ingics.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
This commit is contained in:
parent
5bea496820
commit
33f434d283
|
@ -367,13 +367,21 @@ static struct phy *_of_phy_get(struct device_node *np, int index)
|
||||||
phy_provider = of_phy_provider_lookup(args.np);
|
phy_provider = of_phy_provider_lookup(args.np);
|
||||||
if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) {
|
if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) {
|
||||||
phy = ERR_PTR(-EPROBE_DEFER);
|
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);
|
phy = phy_provider->of_xlate(phy_provider->dev, &args);
|
||||||
|
|
||||||
|
out_put_module:
|
||||||
module_put(phy_provider->owner);
|
module_put(phy_provider->owner);
|
||||||
|
|
||||||
err0:
|
out_unlock:
|
||||||
mutex_unlock(&phy_provider_mutex);
|
mutex_unlock(&phy_provider_mutex);
|
||||||
of_node_put(args.np);
|
of_node_put(args.np);
|
||||||
|
|
||||||
|
|
|
@ -1107,11 +1107,6 @@ static struct phy *miphy28lp_xlate(struct device *dev,
|
||||||
struct device_node *phynode = args->np;
|
struct device_node *phynode = args->np;
|
||||||
int ret, index = 0;
|
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) {
|
if (args->args_count != 1) {
|
||||||
dev_err(dev, "Invalid number of cells in 'phy' property\n");
|
dev_err(dev, "Invalid number of cells in 'phy' property\n");
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
|
@ -476,11 +476,6 @@ static struct phy *miphy365x_xlate(struct device *dev,
|
||||||
struct device_node *phynode = args->np;
|
struct device_node *phynode = args->np;
|
||||||
int ret, index;
|
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) {
|
if (args->args_count != 1) {
|
||||||
dev_err(dev, "Invalid number of cells in 'phy' property\n");
|
dev_err(dev, "Invalid number of cells in 'phy' property\n");
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
|
@ -206,11 +206,6 @@ static struct phy *rcar_gen2_phy_xlate(struct device *dev,
|
||||||
struct device_node *np = args->np;
|
struct device_node *np = args->np;
|
||||||
int i;
|
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);
|
drv = dev_get_drvdata(dev);
|
||||||
if (!drv)
|
if (!drv)
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
Loading…
Reference in New Issue