diff options
author | Zijun Hu <quic_zijuhu@quicinc.com> | 2024-12-13 20:36:46 +0800 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2024-12-24 19:55:59 +0530 |
commit | e6625db662120572c32ac34c371f9deefb321411 (patch) | |
tree | e95bc3d6c0692dee3d1cd33e39c6dd1bb76039ff /drivers/phy | |
parent | b6096751a652a7e7526d4b3d59971a40c3287ef7 (diff) |
phy: core: Simplify API of_phy_simple_xlate() implementation
Simplify of_phy_simple_xlate() implementation by API
class_find_device_by_of_node().
Also correct comments to mark its parameter @dev as unused instead of
@args in passing.
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Cc: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20241213-phy_core_fix-v6-6-40ae28f5015a@quicinc.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/phy')
-rw-r--r-- | drivers/phy/phy-core.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index f053b525ccff..cee4be270810 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -744,8 +744,8 @@ EXPORT_SYMBOL_GPL(devm_phy_put); /** * of_phy_simple_xlate() - returns the phy instance from phy provider - * @dev: the PHY provider device - * @args: of_phandle_args (not used here) + * @dev: the PHY provider device (not used here) + * @args: of_phandle_args * * Intended to be used by phy provider for the common case where #phy-cells is * 0. For other cases where #phy-cells is greater than '0', the phy provider @@ -755,21 +755,14 @@ EXPORT_SYMBOL_GPL(devm_phy_put); struct phy *of_phy_simple_xlate(struct device *dev, const struct of_phandle_args *args) { - struct phy *phy; - struct class_dev_iter iter; - - class_dev_iter_init(&iter, &phy_class, NULL, NULL); - while ((dev = class_dev_iter_next(&iter))) { - phy = to_phy(dev); - if (args->np != phy->dev.of_node) - continue; + struct device *target_dev; - class_dev_iter_exit(&iter); - return phy; - } + target_dev = class_find_device_by_of_node(&phy_class, args->np); + if (!target_dev) + return ERR_PTR(-ENODEV); - class_dev_iter_exit(&iter); - return ERR_PTR(-ENODEV); + put_device(target_dev); + return to_phy(target_dev); } EXPORT_SYMBOL_GPL(of_phy_simple_xlate); |