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); | ||||
| 	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); | ||||
| 
 | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user