123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- From 3be0d950b62852a693182cb678948f481de02825 Mon Sep 17 00:00:00 2001
- From: Robert Marko <[email protected]>
- Date: Mon, 12 Feb 2024 12:49:34 +0100
- Subject: [PATCH] net: phy: qca807x: move interface mode check to
- .config_init_once
- Currently, we are checking whether the PHY package mode matches the
- individual PHY interface modes at PHY package probe time, but at that time
- we only know the PHY package mode and not the individual PHY interface
- modes as of_get_phy_mode() that populates it will only get called once the
- netdev to which PHY-s are attached to is being probed and thus this check
- will always fail and return -EINVAL.
- So, lets move this check to .config_init_once as at that point individual
- PHY interface modes should be populated.
- Fixes: d1cb613efbd3 ("net: phy: qcom: add support for QCA807x PHY Family")
- Signed-off-by: Robert Marko <[email protected]>
- Reviewed-by: Andrew Lunn <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Paolo Abeni <[email protected]>
- ---
- drivers/net/phy/qcom/qca807x.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
- --- a/drivers/net/phy/qcom/qca807x.c
- +++ b/drivers/net/phy/qcom/qca807x.c
- @@ -562,6 +562,11 @@ static int qca807x_phy_package_config_in
- struct qca807x_shared_priv *priv = shared->priv;
- int val, ret;
-
- + /* Make sure PHY follow PHY package mode if enforced */
- + if (priv->package_mode != PHY_INTERFACE_MODE_NA &&
- + phydev->interface != priv->package_mode)
- + return -EINVAL;
- +
- phy_lock_mdio_bus(phydev);
-
- /* Set correct PHY package mode */
- @@ -718,11 +723,6 @@ static int qca807x_probe(struct phy_devi
- shared = phydev->shared;
- shared_priv = shared->priv;
-
- - /* Make sure PHY follow PHY package mode if enforced */
- - if (shared_priv->package_mode != PHY_INTERFACE_MODE_NA &&
- - phydev->interface != shared_priv->package_mode)
- - return -EINVAL;
- -
- priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
- if (!priv)
- return -ENOMEM;
|