[PATCH 1/3] net: ksz9477: remove unnecessary dsa_set_tagging call

packet tagging is not used for this driver so we do not need to call dsa_set_tagging.
Signed-off-by: Tim Harvey tharvey@gateworks.com --- drivers/net/ksz9477.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index fb5c76c600be..fecc394e0277 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -501,8 +501,6 @@ static int ksz_i2c_probe(struct udevice *dev) ksz_pwrite8(priv->dev, i, REG_PORT_MSTP_STATE, data8); }
- dsa_set_tagging(dev, 0, 0); - return 0; };

We don't do anything useful with the master dev, so remove the variable.
Signed-off-by: Tim Harvey tharvey@gateworks.com --- drivers/net/ksz9477.c | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index fecc394e0277..5b0ef78ab93b 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -443,15 +443,10 @@ static int ksz_i2c_probe(struct udevice *dev) { struct dsa_pdata *pdata = dev_get_uclass_plat(dev); struct ksz_dsa_priv *priv = dev_get_priv(dev); - struct udevice *master = dsa_get_master(dev); int i, ret; u8 data8; u32 id;
- if (!master) - return -ENODEV; - - dev_dbg(dev, "%s %s master:%s\n", __func__, dev->name, master->name); dev_set_parent_priv(dev, priv);
ret = i2c_set_chip_offset_len(dev, 2);

On Wed, Feb 8, 2023 at 1:37 AM Tim Harvey tharvey@gateworks.com wrote:
We don't do anything useful with the master dev, so remove the variable.
Signed-off-by: Tim Harvey tharvey@gateworks.com
drivers/net/ksz9477.c | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index fecc394e0277..5b0ef78ab93b 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -443,15 +443,10 @@ static int ksz_i2c_probe(struct udevice *dev) { struct dsa_pdata *pdata = dev_get_uclass_plat(dev); struct ksz_dsa_priv *priv = dev_get_priv(dev);
struct udevice *master = dsa_get_master(dev); int i, ret; u8 data8; u32 id;
if (!master)
return -ENODEV;
dev_dbg(dev, "%s %s master:%s\n", __func__, dev->name, master->name); dev_set_parent_priv(dev, priv); ret = i2c_set_chip_offset_len(dev, 2);
-- 2.25.1
Reviewed-by: Ramon Fried rfried.dev@gmail.com

Add a port_probe function to configure the phy. This leads to earlier link negotiation so the port is more likely to be ready when used.
Signed-off-by: Tim Harvey tharvey@gateworks.com --- drivers/net/ksz9477.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index 5b0ef78ab93b..6b59b5fcd265 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -337,11 +337,21 @@ static int ksz_port_setup(struct udevice *dev, int port, return 0; }
+static int ksz_port_probe(struct udevice *dev, int port, struct phy_device *phy) +{ + int supported = PHY_GBIT_FEATURES; + + /* configure phy */ + phy->supported &= supported; + phy->advertising &= supported; + + return phy_config(phy); +} + static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy) { struct dsa_pdata *pdata = dev_get_uclass_plat(dev); struct ksz_dsa_priv *priv = dev_get_priv(dev); - int supported = PHY_GBIT_FEATURES; u8 data8; int ret;
@@ -365,23 +375,12 @@ static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy if (port == pdata->cpu_port) return 0;
- /* configure phy */ - phy->supported &= supported; - phy->advertising &= supported; - ret = phy_config(phy); - if (ret) - return ret; - - ret = phy_startup(phy); - if (ret) - return ret; - /* start switch */ ksz_read8(priv->dev, REG_SW_OPERATION, &data8); data8 |= SW_START; ksz_write8(priv->dev, REG_SW_OPERATION, data8);
- return 0; + return phy_startup(phy); }
static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *phy) @@ -410,6 +409,7 @@ static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *p }
static const struct dsa_ops ksz_dsa_ops = { + .port_probe = ksz_port_probe, .port_enable = ksz_port_enable, .port_disable = ksz_port_disable, };

On Wed, Feb 8, 2023 at 1:37 AM Tim Harvey tharvey@gateworks.com wrote:
Add a port_probe function to configure the phy. This leads to earlier link negotiation so the port is more likely to be ready when used.
Signed-off-by: Tim Harvey tharvey@gateworks.com
drivers/net/ksz9477.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index 5b0ef78ab93b..6b59b5fcd265 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -337,11 +337,21 @@ static int ksz_port_setup(struct udevice *dev, int port, return 0; }
+static int ksz_port_probe(struct udevice *dev, int port, struct phy_device *phy) +{
int supported = PHY_GBIT_FEATURES;
/* configure phy */
phy->supported &= supported;
phy->advertising &= supported;
return phy_config(phy);
+}
static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy) { struct dsa_pdata *pdata = dev_get_uclass_plat(dev); struct ksz_dsa_priv *priv = dev_get_priv(dev);
int supported = PHY_GBIT_FEATURES; u8 data8; int ret;
@@ -365,23 +375,12 @@ static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy if (port == pdata->cpu_port) return 0;
/* configure phy */
phy->supported &= supported;
phy->advertising &= supported;
ret = phy_config(phy);
if (ret)
return ret;
ret = phy_startup(phy);
if (ret)
return ret;
/* start switch */ ksz_read8(priv->dev, REG_SW_OPERATION, &data8); data8 |= SW_START; ksz_write8(priv->dev, REG_SW_OPERATION, data8);
return 0;
return phy_startup(phy);
}
static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *phy) @@ -410,6 +409,7 @@ static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *p }
static const struct dsa_ops ksz_dsa_ops = {
.port_probe = ksz_port_probe, .port_enable = ksz_port_enable, .port_disable = ksz_port_disable,
};
2.25.1
Reviewed-by: Ramon Fried rfried.dev@gmail.com

On Wed, Feb 8, 2023 at 1:37 AM Tim Harvey tharvey@gateworks.com wrote:
packet tagging is not used for this driver so we do not need to call dsa_set_tagging.
Signed-off-by: Tim Harvey tharvey@gateworks.com
drivers/net/ksz9477.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c index fb5c76c600be..fecc394e0277 100644 --- a/drivers/net/ksz9477.c +++ b/drivers/net/ksz9477.c @@ -501,8 +501,6 @@ static int ksz_i2c_probe(struct udevice *dev) ksz_pwrite8(priv->dev, i, REG_PORT_MSTP_STATE, data8); }
dsa_set_tagging(dev, 0, 0);
return 0;
};
-- 2.25.1
Reviewed-by: Ramon Fried rfried.dev@gmail.com

On Tue, Feb 07, 2023 at 03:37:16PM -0800, Tim Harvey wrote:
packet tagging is not used for this driver so we do not need to call dsa_set_tagging.
Signed-off-by: Tim Harvey tharvey@gateworks.com Reviewed-by: Ramon Fried rfried.dev@gmail.com
For the series, applied to u-boot/master, thanks!
participants (3)
-
Ramon Fried
-
Tim Harvey
-
Tom Rini