Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Axel Lin and committed by
Kishon Vijay Abraham I
33f434d2 5bea4968

+10 -17
+10 -2
drivers/phy/phy-core.c
··· 367 367 phy_provider = of_phy_provider_lookup(args.np); 368 368 if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) { 369 369 phy = ERR_PTR(-EPROBE_DEFER); 370 - goto err0; 370 + goto out_unlock; 371 + } 372 + 373 + if (!of_device_is_available(args.np)) { 374 + dev_warn(phy_provider->dev, "Requested PHY is disabled\n"); 375 + phy = ERR_PTR(-ENODEV); 376 + goto out_put_module; 371 377 } 372 378 373 379 phy = phy_provider->of_xlate(phy_provider->dev, &args); 380 + 381 + out_put_module: 374 382 module_put(phy_provider->owner); 375 383 376 - err0: 384 + out_unlock: 377 385 mutex_unlock(&phy_provider_mutex); 378 386 of_node_put(args.np); 379 387
-5
drivers/phy/phy-miphy28lp.c
··· 1107 1107 struct device_node *phynode = args->np; 1108 1108 int ret, index = 0; 1109 1109 1110 - if (!of_device_is_available(phynode)) { 1111 - dev_warn(dev, "Requested PHY is disabled\n"); 1112 - return ERR_PTR(-ENODEV); 1113 - } 1114 - 1115 1110 if (args->args_count != 1) { 1116 1111 dev_err(dev, "Invalid number of cells in 'phy' property\n"); 1117 1112 return ERR_PTR(-EINVAL);
-5
drivers/phy/phy-miphy365x.c
··· 476 476 struct device_node *phynode = args->np; 477 477 int ret, index; 478 478 479 - if (!of_device_is_available(phynode)) { 480 - dev_warn(dev, "Requested PHY is disabled\n"); 481 - return ERR_PTR(-ENODEV); 482 - } 483 - 484 479 if (args->args_count != 1) { 485 480 dev_err(dev, "Invalid number of cells in 'phy' property\n"); 486 481 return ERR_PTR(-EINVAL);
-5
drivers/phy/phy-rcar-gen2.c
··· 206 206 struct device_node *np = args->np; 207 207 int i; 208 208 209 - if (!of_device_is_available(np)) { 210 - dev_warn(dev, "Requested PHY is disabled\n"); 211 - return ERR_PTR(-ENODEV); 212 - } 213 - 214 209 drv = dev_get_drvdata(dev); 215 210 if (!drv) 216 211 return ERR_PTR(-EINVAL);