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

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>

authored by

MD Danish Anwar and committed by
David S. Miller
6c9cd59d e6b21901

+2 -1
+2 -1
drivers/net/phy/dp83869.c
··· 695 695 phy_ctrl_val = dp83869->mode; 696 696 if (phydev->interface == PHY_INTERFACE_MODE_MII) { 697 697 if (dp83869->mode == DP83869_100M_MEDIA_CONVERT || 698 - dp83869->mode == DP83869_RGMII_100_BASE) { 698 + dp83869->mode == DP83869_RGMII_100_BASE || 699 + dp83869->mode == DP83869_RGMII_COPPER_ETHERNET) { 699 700 phy_ctrl_val |= DP83869_OP_MODE_MII; 700 701 } else { 701 702 phydev_err(phydev, "selected op-mode is not valid with MII mode\n");