summaryrefslogtreecommitdiffstats
path: root/drivers/net/phy/dp83869.c
diff options
context:
space:
mode:
authorMD Danish Anwar <danishanwar@ti.com>2024-04-23 10:48:28 +0200
committerDavid S. Miller <davem@davemloft.net>2024-04-25 12:25:07 +0200
commit6c9cd59dbcb09a2122b5ce0dfc07c74e6fc00dc0 (patch)
treedbf60f77df7f2fe04bc937e80bca8c80004a04a4 /drivers/net/phy/dp83869.c
parentMerge tag 'for-net-2024-04-24' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff)
downloadlinux-6c9cd59dbcb09a2122b5ce0dfc07c74e6fc00dc0.tar.xz
linux-6c9cd59dbcb09a2122b5ce0dfc07c74e6fc00dc0.zip
net: phy: dp83869: Fix MII mode failure
The DP83869 driver sets the MII bit (needed for PHY to work in MII mode) only if the op-mode is either DP83869_100M_MEDIA_CONVERT or DP83869_RGMII_100_BASE. Some drivers i.e. ICSSG support MII mode with op-mode as DP83869_RGMII_COPPER_ETHERNET for which the MII bit is not set in dp83869 driver. As a result MII mode on ICSSG doesn't work and below log is seen. TI DP83869 300b2400.mdio:0f: selected op-mode is not valid with MII mode icssg-prueth icssg1-eth: couldn't connect to phy ethernet-phy@0 icssg-prueth icssg1-eth: can't phy connect port MII0 Fix this by setting MII bit for DP83869_RGMII_COPPER_ETHERNET op-mode as well. Fixes: 94e86ef1b801 ("net: phy: dp83869: support mii mode when rgmii strap cfg is used") Signed-off-by: MD Danish Anwar <danishanwar@ti.com> Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/phy/dp83869.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
index fa8c6fdcf301..d7aaefb5226b 100644
--- a/drivers/net/phy/dp83869.c
+++ b/drivers/net/phy/dp83869.c
@@ -695,7 +695,8 @@ static int dp83869_configure_mode(struct phy_device *phydev,
phy_ctrl_val = dp83869->mode;
if (phydev->interface == PHY_INTERFACE_MODE_MII) {
if (dp83869->mode == DP83869_100M_MEDIA_CONVERT ||
- dp83869->mode == DP83869_RGMII_100_BASE) {
+ dp83869->mode == DP83869_RGMII_100_BASE ||
+ dp83869->mode == DP83869_RGMII_COPPER_ETHERNET) {
phy_ctrl_val |= DP83869_OP_MODE_MII;
} else {
phydev_err(phydev, "selected op-mode is not valid with MII mode\n");