* [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode @ 2026-02-11 13:10 Meghana Malladi 2026-02-11 13:26 ` Russell King (Oracle) 2026-02-11 14:12 ` Andrew Lunn 0 siblings, 2 replies; 13+ messages in thread From: Meghana Malladi @ 2026-02-11 13:10 UTC (permalink / raw) To: pabeni, kuba, edumazet, davem, linux, hkallweit1, andrew Cc: linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar, m-malladi When using DP83869 in force 100Base-Tx mode, the PHY is required to have robust Auto-MDIX feature enabled from register 1Eh. Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf Signed-off-by: Meghana Malladi <m-malladi@ti.com> --- drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c index 1f381d7b13ff..70d759c45c6a 100644 --- a/drivers/net/phy/dp83869.c +++ b/drivers/net/phy/dp83869.c @@ -110,6 +110,7 @@ /* CFG4 bits */ #define DP83869_INT_OE BIT(7) +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) /* OP MODE */ #define DP83869_OP_MODE_MII BIT(5) @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) return dp83869_config_init(phydev); } +static void dp83869_link_change_notify(struct phy_device *phydev) +{ + int cfg4; + + /* When using DP83869 in force 100Base-Tx mode, the PHY is required + * to have robust Auto-MDIX feature enabled + */ + if (phydev->autoneg == AUTONEG_DISABLE && + phydev->speed == SPEED_100 && + phydev->duplex == DUPLEX_FULL) { + cfg4 = phy_read(phydev, DP83869_CFG4); + if (cfg4 >= 0) { + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; + phy_write(phydev, DP83869_CFG4, cfg4); + } + } +} #define DP83869_PHY_DRIVER(_id, _name) \ { \ @@ -918,6 +936,7 @@ static int dp83869_phy_reset(struct phy_device *phydev) .set_wol = dp83869_set_wol, \ .suspend = genphy_suspend, \ .resume = genphy_resume, \ + .link_change_notify = dp83869_link_change_notify, \ } static struct phy_driver dp83869_driver[] = { base-commit: e9a5073a98d940837cbb95e71eed1f28f48e7b30 -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 13:10 [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode Meghana Malladi @ 2026-02-11 13:26 ` Russell King (Oracle) 2026-02-11 13:53 ` Meghana Malladi 2026-02-11 14:12 ` Andrew Lunn 1 sibling, 1 reply; 13+ messages in thread From: Russell King (Oracle) @ 2026-02-11 13:26 UTC (permalink / raw) To: Meghana Malladi Cc: pabeni, kuba, edumazet, davem, hkallweit1, andrew, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: > When using DP83869 in force 100Base-Tx mode, the PHY is required > to have robust Auto-MDIX feature enabled from register 1Eh. > Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. > > [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf > Signed-off-by: Meghana Malladi <m-malladi@ti.com> > --- > drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c > index 1f381d7b13ff..70d759c45c6a 100644 > --- a/drivers/net/phy/dp83869.c > +++ b/drivers/net/phy/dp83869.c > @@ -110,6 +110,7 @@ > > /* CFG4 bits */ > #define DP83869_INT_OE BIT(7) > +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) > > /* OP MODE */ > #define DP83869_OP_MODE_MII BIT(5) > @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) > return dp83869_config_init(phydev); > } > > +static void dp83869_link_change_notify(struct phy_device *phydev) > +{ > + int cfg4; > + > + /* When using DP83869 in force 100Base-Tx mode, the PHY is required > + * to have robust Auto-MDIX feature enabled > + */ > + if (phydev->autoneg == AUTONEG_DISABLE && > + phydev->speed == SPEED_100 && > + phydev->duplex == DUPLEX_FULL) { > + cfg4 = phy_read(phydev, DP83869_CFG4); > + if (cfg4 >= 0) { > + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; > + phy_write(phydev, DP83869_CFG4, cfg4); > + } > + } Shouldn't this kind of configuration be done via .config_aneg() ? -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 13:26 ` Russell King (Oracle) @ 2026-02-11 13:53 ` Meghana Malladi 2026-02-11 14:04 ` Andrew Lunn 2026-02-11 14:04 ` Russell King (Oracle) 0 siblings, 2 replies; 13+ messages in thread From: Meghana Malladi @ 2026-02-11 13:53 UTC (permalink / raw) To: Russell King (Oracle) Cc: pabeni, kuba, edumazet, davem, hkallweit1, andrew, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar Hi Russell, On 2/11/26 18:56, Russell King (Oracle) wrote: > On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: >> When using DP83869 in force 100Base-Tx mode, the PHY is required >> to have robust Auto-MDIX feature enabled from register 1Eh. >> Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. >> >> [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf >> Signed-off-by: Meghana Malladi <m-malladi@ti.com> >> --- >> drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ >> 1 file changed, 19 insertions(+) >> >> diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c >> index 1f381d7b13ff..70d759c45c6a 100644 >> --- a/drivers/net/phy/dp83869.c >> +++ b/drivers/net/phy/dp83869.c >> @@ -110,6 +110,7 @@ >> >> /* CFG4 bits */ >> #define DP83869_INT_OE BIT(7) >> +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) >> >> /* OP MODE */ >> #define DP83869_OP_MODE_MII BIT(5) >> @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) >> return dp83869_config_init(phydev); >> } >> >> +static void dp83869_link_change_notify(struct phy_device *phydev) >> +{ >> + int cfg4; >> + >> + /* When using DP83869 in force 100Base-Tx mode, the PHY is required >> + * to have robust Auto-MDIX feature enabled >> + */ >> + if (phydev->autoneg == AUTONEG_DISABLE && >> + phydev->speed == SPEED_100 && >> + phydev->duplex == DUPLEX_FULL) { >> + cfg4 = phy_read(phydev, DP83869_CFG4); >> + if (cfg4 >= 0) { >> + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; >> + phy_write(phydev, DP83869_CFG4, cfg4); >> + } >> + } > > Shouldn't this kind of configuration be done via .config_aneg() ? > AFAIK, in case of fixed mode, auto-neg might not be triggered all the time. In the phy_ethtool_ksettings_set() function, auto-neg is initiated only if the PHY hasn't started. PHY drivers are new to me, please do correct me if I am wrong. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 13:53 ` Meghana Malladi @ 2026-02-11 14:04 ` Andrew Lunn 2026-02-11 14:09 ` Meghana Malladi 2026-02-11 14:04 ` Russell King (Oracle) 1 sibling, 1 reply; 13+ messages in thread From: Andrew Lunn @ 2026-02-11 14:04 UTC (permalink / raw) To: Meghana Malladi Cc: Russell King (Oracle), pabeni, kuba, edumazet, davem, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar On Wed, Feb 11, 2026 at 07:23:12PM +0530, Meghana Malladi wrote: > Hi Russell, > > On 2/11/26 18:56, Russell King (Oracle) wrote: > > On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: > > > When using DP83869 in force 100Base-Tx mode, the PHY is required > > > to have robust Auto-MDIX feature enabled from register 1Eh. > > > Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. > > > > > > [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf > > > Signed-off-by: Meghana Malladi <m-malladi@ti.com> > > > --- > > > drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c > > > index 1f381d7b13ff..70d759c45c6a 100644 > > > --- a/drivers/net/phy/dp83869.c > > > +++ b/drivers/net/phy/dp83869.c > > > @@ -110,6 +110,7 @@ > > > /* CFG4 bits */ > > > #define DP83869_INT_OE BIT(7) > > > +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) > > > /* OP MODE */ > > > #define DP83869_OP_MODE_MII BIT(5) > > > @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) > > > return dp83869_config_init(phydev); > > > } > > > +static void dp83869_link_change_notify(struct phy_device *phydev) > > > +{ > > > + int cfg4; > > > + > > > + /* When using DP83869 in force 100Base-Tx mode, the PHY is required > > > + * to have robust Auto-MDIX feature enabled > > > + */ > > > + if (phydev->autoneg == AUTONEG_DISABLE && > > > + phydev->speed == SPEED_100 && > > > + phydev->duplex == DUPLEX_FULL) { > > > + cfg4 = phy_read(phydev, DP83869_CFG4); > > > + if (cfg4 >= 0) { > > > + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; > > > + phy_write(phydev, DP83869_CFG4, cfg4); > > > + } > > > + } > > > > Shouldn't this kind of configuration be done via .config_aneg() ? > > > > AFAIK, in case of fixed mode, auto-neg might not be triggered all the time. > In the phy_ethtool_ksettings_set() function, auto-neg is initiated only if > the PHY hasn't started. PHY drivers are new to me, please do correct me if I > am wrong. .config_aneg() is badly named, since it is also used for forced mode. Just check phydev->autoneg == AUTONEG_DISABLE. Andrew ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 14:04 ` Andrew Lunn @ 2026-02-11 14:09 ` Meghana Malladi 0 siblings, 0 replies; 13+ messages in thread From: Meghana Malladi @ 2026-02-11 14:09 UTC (permalink / raw) To: Andrew Lunn Cc: Russell King (Oracle), pabeni, kuba, edumazet, davem, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar Hi Andrew, On 2/11/26 19:34, Andrew Lunn wrote: > On Wed, Feb 11, 2026 at 07:23:12PM +0530, Meghana Malladi wrote: >> Hi Russell, >> >> On 2/11/26 18:56, Russell King (Oracle) wrote: >>> On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: >>>> When using DP83869 in force 100Base-Tx mode, the PHY is required >>>> to have robust Auto-MDIX feature enabled from register 1Eh. >>>> Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. >>>> >>>> [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf >>>> Signed-off-by: Meghana Malladi <m-malladi@ti.com> >>>> --- >>>> drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ >>>> 1 file changed, 19 insertions(+) >>>> >>>> diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c >>>> index 1f381d7b13ff..70d759c45c6a 100644 >>>> --- a/drivers/net/phy/dp83869.c >>>> +++ b/drivers/net/phy/dp83869.c >>>> @@ -110,6 +110,7 @@ >>>> /* CFG4 bits */ >>>> #define DP83869_INT_OE BIT(7) >>>> +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) >>>> /* OP MODE */ >>>> #define DP83869_OP_MODE_MII BIT(5) >>>> @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) >>>> return dp83869_config_init(phydev); >>>> } >>>> +static void dp83869_link_change_notify(struct phy_device *phydev) >>>> +{ >>>> + int cfg4; >>>> + >>>> + /* When using DP83869 in force 100Base-Tx mode, the PHY is required >>>> + * to have robust Auto-MDIX feature enabled >>>> + */ >>>> + if (phydev->autoneg == AUTONEG_DISABLE && >>>> + phydev->speed == SPEED_100 && >>>> + phydev->duplex == DUPLEX_FULL) { >>>> + cfg4 = phy_read(phydev, DP83869_CFG4); >>>> + if (cfg4 >= 0) { >>>> + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; >>>> + phy_write(phydev, DP83869_CFG4, cfg4); >>>> + } >>>> + } >>> >>> Shouldn't this kind of configuration be done via .config_aneg() ? >>> >> >> AFAIK, in case of fixed mode, auto-neg might not be triggered all the time. >> In the phy_ethtool_ksettings_set() function, auto-neg is initiated only if >> the PHY hasn't started. PHY drivers are new to me, please do correct me if I >> am wrong. > > .config_aneg() is badly named, since it is also used for forced mode. Just check > phydev->autoneg == AUTONEG_DISABLE. Ok thanks, will fix this in v2 then. > > Andrew ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 13:53 ` Meghana Malladi 2026-02-11 14:04 ` Andrew Lunn @ 2026-02-11 14:04 ` Russell King (Oracle) 1 sibling, 0 replies; 13+ messages in thread From: Russell King (Oracle) @ 2026-02-11 14:04 UTC (permalink / raw) To: Meghana Malladi Cc: pabeni, kuba, edumazet, davem, hkallweit1, andrew, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar On Wed, Feb 11, 2026 at 07:23:12PM +0530, Meghana Malladi wrote: > Hi Russell, > > On 2/11/26 18:56, Russell King (Oracle) wrote: > > On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: > > > When using DP83869 in force 100Base-Tx mode, the PHY is required > > > to have robust Auto-MDIX feature enabled from register 1Eh. > > > Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. > > > > > > [1]: https://www.ti.com/lit/ds/symlink/dp83869hm.pdf > > > Signed-off-by: Meghana Malladi <m-malladi@ti.com> > > > --- > > > drivers/net/phy/dp83869.c | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c > > > index 1f381d7b13ff..70d759c45c6a 100644 > > > --- a/drivers/net/phy/dp83869.c > > > +++ b/drivers/net/phy/dp83869.c > > > @@ -110,6 +110,7 @@ > > > /* CFG4 bits */ > > > #define DP83869_INT_OE BIT(7) > > > +#define DP83869_CFG4_ENABLE_AUTO_MDIX_100FD BIT(9) > > > /* OP MODE */ > > > #define DP83869_OP_MODE_MII BIT(5) > > > @@ -900,6 +901,23 @@ static int dp83869_phy_reset(struct phy_device *phydev) > > > return dp83869_config_init(phydev); > > > } > > > +static void dp83869_link_change_notify(struct phy_device *phydev) > > > +{ > > > + int cfg4; > > > + > > > + /* When using DP83869 in force 100Base-Tx mode, the PHY is required > > > + * to have robust Auto-MDIX feature enabled > > > + */ > > > + if (phydev->autoneg == AUTONEG_DISABLE && > > > + phydev->speed == SPEED_100 && > > > + phydev->duplex == DUPLEX_FULL) { > > > + cfg4 = phy_read(phydev, DP83869_CFG4); > > > + if (cfg4 >= 0) { > > > + cfg4 |= DP83869_CFG4_ENABLE_AUTO_MDIX_100FD; > > > + phy_write(phydev, DP83869_CFG4, cfg4); > > > + } > > > + } > > > > Shouldn't this kind of configuration be done via .config_aneg() ? > > > > AFAIK, in case of fixed mode, auto-neg might not be triggered all the time. > In the phy_ethtool_ksettings_set() function, auto-neg is initiated only if > the PHY hasn't started. PHY drivers are new to me, please do correct me if I > am wrong. In phy_ethtool_ksettings_set(): /* Restart the PHY */ if (phy_is_started(phydev)) { phydev->state = PHY_UP; phy_trigger_machine(phydev); } else { _phy_start_aneg(phydev); } If the PHY is started, then the state machine is triggered. That will result in phy_state_machine() being called. This calls _phy_state_machine(), which, as phydev->state is set to PHY_UP, will set state_work = PHY_STATE_WORK_ANEG. This will then result in: if (state_work == PHY_STATE_WORK_ANEG) { err = _phy_start_aneg(phydev); func = &_phy_start_aneg; } which also results in _phy_start_aneg() being called, and thus the .config_aneg() method. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 13:10 [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode Meghana Malladi 2026-02-11 13:26 ` Russell King (Oracle) @ 2026-02-11 14:12 ` Andrew Lunn 2026-02-12 6:21 ` Meghana Malladi 1 sibling, 1 reply; 13+ messages in thread From: Andrew Lunn @ 2026-02-11 14:12 UTC (permalink / raw) To: Meghana Malladi Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: > When using DP83869 in force 100Base-Tx mode, the PHY is required > to have robust Auto-MDIX feature enabled from register 1Eh. > Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. What are the results of not enabling this? How would somebody know they need this patch? Is this a bug fix? Should this be back ported to stable? > +static void dp83869_link_change_notify(struct phy_device *phydev) > +{ > + int cfg4; > + > + /* When using DP83869 in force 100Base-Tx mode, the PHY is required > + * to have robust Auto-MDIX feature enabled > + */ > + if (phydev->autoneg == AUTONEG_DISABLE && > + phydev->speed == SPEED_100 && > + phydev->duplex == DUPLEX_FULL) { So forced 100Mbs half duplex does not require robust robust Auto-MDIX? What about when you change the configuration out of forced 100 Full? Shouldn't the configuration be returned to how the user wants auto-MDIX configured? Should you disable robust Auto-MDIX so that "unreliable Auto-MDIX" is used? Andrew ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-11 14:12 ` Andrew Lunn @ 2026-02-12 6:21 ` Meghana Malladi 2026-02-12 13:06 ` Andrew Lunn 2026-02-12 18:40 ` Maxime Chevallier 0 siblings, 2 replies; 13+ messages in thread From: Meghana Malladi @ 2026-02-12 6:21 UTC (permalink / raw) To: Andrew Lunn Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar Hi Andrew, On 2/11/26 19:42, Andrew Lunn wrote: > On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: >> When using DP83869 in force 100Base-Tx mode, the PHY is required >> to have robust Auto-MDIX feature enabled from register 1Eh. >> Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. > > What are the results of not enabling this? How would somebody know > they need this patch? This is the fix for 100M full duplex when auto-neg gets disabled, it fails to have a link up and this patch fixes it. I will add more description to the commit message. > > Is this a bug fix? Should this be back ported to stable? > >> +static void dp83869_link_change_notify(struct phy_device *phydev) >> +{ >> + int cfg4; >> + >> + /* When using DP83869 in force 100Base-Tx mode, the PHY is required >> + * to have robust Auto-MDIX feature enabled >> + */ >> + if (phydev->autoneg == AUTONEG_DISABLE && >> + phydev->speed == SPEED_100 && >> + phydev->duplex == DUPLEX_FULL) { > > So forced 100Mbs half duplex does not require robust robust Auto-MDIX? I haven't tested for half duplex as the issue was raised for full duplex. But based on the TRM seems like it is independent of the duplexity. Let me locally confirm this and fix it accordingly in v2. > > What about when you change the configuration out of forced 100 Full? > Shouldn't the configuration be returned to how the user wants > auto-MDIX configured? Should you disable robust Auto-MDIX so that > "unreliable Auto-MDIX" is used? This bit is only necessary if link partners are configured to operational modes that not supported by normal Auto MDI/MDIX mode (when one of that link partners are in Forced 100Base-TX), will fix it in v2. > > Andrew > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-12 6:21 ` Meghana Malladi @ 2026-02-12 13:06 ` Andrew Lunn 2026-02-15 14:56 ` Malladi, Meghana 2026-02-12 18:40 ` Maxime Chevallier 1 sibling, 1 reply; 13+ messages in thread From: Andrew Lunn @ 2026-02-12 13:06 UTC (permalink / raw) To: Meghana Malladi Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar > > What about when you change the configuration out of forced 100 Full? > > Shouldn't the configuration be returned to how the user wants > > auto-MDIX configured? Should you disable robust Auto-MDIX so that > > "unreliable Auto-MDIX" is used? > > This bit is only necessary if link partners are configured to operational > modes that not supported by normal Auto MDI/MDIX mode (when one of that link > partners are in Forced 100Base-TX), will fix it in v2. Does this bit have any effect on normal Auto MDI/MDIX mode? Can this bit be set once during probe, rather than for a specific link mode? Is there an errata for this behaviour/fix? If there is please reference the number/document etc. Since this is a fix, please add a Fixes: tag. Andrew ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-12 13:06 ` Andrew Lunn @ 2026-02-15 14:56 ` Malladi, Meghana 0 siblings, 0 replies; 13+ messages in thread From: Malladi, Meghana @ 2026-02-15 14:56 UTC (permalink / raw) To: Andrew Lunn Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar Hi Andrew, On 2/12/2026 6:36 PM, Andrew Lunn wrote: >>> What about when you change the configuration out of forced 100 Full? >>> Shouldn't the configuration be returned to how the user wants >>> auto-MDIX configured? Should you disable robust Auto-MDIX so that >>> "unreliable Auto-MDIX" is used? >> >> This bit is only necessary if link partners are configured to operational >> modes that not supported by normal Auto MDI/MDIX mode (when one of that link >> partners are in Forced 100Base-TX), will fix it in v2. > > Does this bit have any effect on normal Auto MDI/MDIX mode? Can this > bit be set once during probe, rather than for a specific link mode? > > Is there an errata for this behaviour/fix? If there is please > reference the number/document etc. > I checked with the PHY team and they pointed me to this section of the DP83867 datasheet[1]: 7.6.25 Configuration Register 3 (CFG3) and said something similar is needed for DP83869 as well. There are a lot of similar corner cases which they haven't tested and once done, more details w.r.t to the possible errata will be published in the next datasheet revision (aimed in the next quarter). I guess it makes more sense to post this fix later with the published errata. [1]: https://www.ti.com/lit/ds/symlink/dp83867ir.pdf > Since this is a fix, please add a Fixes: tag. > > Andrew -- Thanks, Meghana Malladi ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-12 6:21 ` Meghana Malladi 2026-02-12 13:06 ` Andrew Lunn @ 2026-02-12 18:40 ` Maxime Chevallier 2026-02-15 14:45 ` [EXTERNAL] " Malladi, Meghana 1 sibling, 1 reply; 13+ messages in thread From: Maxime Chevallier @ 2026-02-12 18:40 UTC (permalink / raw) To: Meghana Malladi, Andrew Lunn Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar Hi Meghana, On 12/02/2026 07:21, Meghana Malladi wrote: > Hi Andrew, > > On 2/11/26 19:42, Andrew Lunn wrote: >> On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: >>> When using DP83869 in force 100Base-Tx mode, the PHY is required >>> to have robust Auto-MDIX feature enabled from register 1Eh. >>> Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. >> >> What are the results of not enabling this? How would somebody know >> they need this patch? > > This is the fix for 100M full duplex when auto-neg gets disabled, it > fails to have a link up and this patch fixes it. I will add more > description to the commit message. I have a board here with a DP83869 + imx93's dwmac, but I couldn't trigger the bug locally. I forced speed, dpx and aneg settings with : ethtool -s eth0 speed 100 duplex full autoneg off I did the same on the link partner, but I was still able to get link-up. I'm not saying the bug isn't real, I mostly curious about the kind of circumstances that causes this prblem to show-up. Do you have any clarifications on that ? I'll be happy to give the fix a try, if I can manage to reproduce the issue :) Maxime ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [EXTERNAL] Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-12 18:40 ` Maxime Chevallier @ 2026-02-15 14:45 ` Malladi, Meghana 2026-02-15 17:23 ` Andrew Lunn 0 siblings, 1 reply; 13+ messages in thread From: Malladi, Meghana @ 2026-02-15 14:45 UTC (permalink / raw) To: Maxime Chevallier Cc: pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar, Andrew Lunn Hi Maxime, On 2/13/2026 12:10 AM, Maxime Chevallier wrote: > Hi Meghana, On 12/02/2026 07: 21, Meghana Malladi wrote: > Hi Andrew, > > > On 2/11/26 19: 42, Andrew Lunn wrote: >> On Wed, Feb 11, 2026 at 06: > 40: 32PM +0530, Meghana Malladi wrote: >>> When using DP83869 in force > 100Base-Tx > ZjQcmQRYFpfptBannerStart > This message was sent from outside of Texas Instruments. > Do not click links or open attachments unless you recognize the source > of this email and know the content is safe. > Report Suspicious > <https://us-phishalarm-ewt.proofpoint.com/EWT/v1/G3vK! > uvdqvDfOXMcx4EXE_POD_-6kkowIhAz8zXLHMFm81_iVEIIhL4AZYTCCg5LBLfOFsQIbaQidTlj5ZWaMhdH1sacfSO1-r-L7$> > ZjQcmQRYFpfptBannerEnd > > Hi Meghana, > > On 12/02/2026 07:21, Meghana Malladi wrote: >> Hi Andrew, >> >> On 2/11/26 19:42, Andrew Lunn wrote: >>> On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: >>>> When using DP83869 in force 100Base-Tx mode, the PHY is required >>>> to have robust Auto-MDIX feature enabled from register 1Eh. >>>> Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. >>> >>> What are the results of not enabling this? How would somebody know >>> they need this patch? >> >> This is the fix for 100M full duplex when auto-neg gets disabled, it >> fails to have a link up and this patch fixes it. I will add more >> description to the commit message. > > I have a board here with a DP83869 + imx93's dwmac, but I couldn't > trigger the bug locally. I forced speed, dpx and aneg settings with : > > ethtool -s eth0 speed 100 duplex full autoneg off > > I did the same on the link partner, but I was still able to get link-up. > Your steps so far are correct. But I didn't do the same settings on the link partner. With other speeds (10M, 1G) I was seeing a link up without the need to force speed on the link partner side. So I was expecting the same with 100M as well. > I'm not saying the bug isn't real, I mostly curious about the kind of > circumstances that causes this prblem to show-up. Do you have any > clarifications on that ? > Also when I tried the same between DP83869 PHYs of two AM64x (TI DUTs) I couldn't see this issue. When I tried between DP83869 PHY and an external switch or PC I was able to reproduce this issue. May be I missing lot of detail in this patch. Let me know if this helped you with reproducing the issue. Thanks a lot :) > I'll be happy to give the fix a try, if I can manage to reproduce the > issue :) > > Maxime > > -- Thanks, Meghana Malladi ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [EXTERNAL] Re: [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode 2026-02-15 14:45 ` [EXTERNAL] " Malladi, Meghana @ 2026-02-15 17:23 ` Andrew Lunn 0 siblings, 0 replies; 13+ messages in thread From: Andrew Lunn @ 2026-02-15 17:23 UTC (permalink / raw) To: Malladi, Meghana Cc: Maxime Chevallier, pabeni, kuba, edumazet, davem, linux, hkallweit1, linux-kernel, netdev, srk, Vignesh Raghavendra, Roger Quadros, danishanwar On Sun, Feb 15, 2026 at 08:15:23PM +0530, Malladi, Meghana wrote: > Hi Maxime, > > On 2/13/2026 12:10 AM, Maxime Chevallier wrote: > > Hi Meghana, On 12/02/2026 07: 21, Meghana Malladi wrote: > Hi Andrew, > > > > On 2/11/26 19: 42, Andrew Lunn wrote: >> On Wed, Feb 11, 2026 at 06: > > 40: 32PM +0530, Meghana Malladi wrote: >>> When using DP83869 in force > > 100Base-Tx > > ZjQcmQRYFpfptBannerStart > > This message was sent from outside of Texas Instruments. > > Do not click links or open attachments unless you recognize the source > > of this email and know the content is safe. > > Report Suspicious > > <https://us-phishalarm-ewt.proofpoint.com/EWT/v1/G3vK! uvdqvDfOXMcx4EXE_POD_-6kkowIhAz8zXLHMFm81_iVEIIhL4AZYTCCg5LBLfOFsQIbaQidTlj5ZWaMhdH1sacfSO1-r-L7$> > > ZjQcmQRYFpfptBannerEnd > > > > Hi Meghana, > > > > On 12/02/2026 07:21, Meghana Malladi wrote: > > > Hi Andrew, > > > > > > On 2/11/26 19:42, Andrew Lunn wrote: > > > > On Wed, Feb 11, 2026 at 06:40:32PM +0530, Meghana Malladi wrote: > > > > > When using DP83869 in force 100Base-Tx mode, the PHY is required > > > > > to have robust Auto-MDIX feature enabled from register 1Eh. > > > > > Refer to 7.4.1.2 100BASE-TX section in the TRM [1] for more details. > > > > > > > > What are the results of not enabling this? How would somebody know > > > > they need this patch? > > > > > > This is the fix for 100M full duplex when auto-neg gets disabled, it > > > fails to have a link up and this patch fixes it. I will add more > > > description to the commit message. > > > > I have a board here with a DP83869 + imx93's dwmac, but I couldn't > > trigger the bug locally. I forced speed, dpx and aneg settings with : > > > > ethtool -s eth0 speed 100 duplex full autoneg off > > > > I did the same on the link partner, but I was still able to get link-up. > > > > Your steps so far are correct. But I didn't do the same settings on the link > partner. With other speeds (10M, 1G) I was seeing a link up without the need > to force speed on the link partner side. So I was expecting the same with > 100M as well. This is not correct. If you turn autoneg off on one link partner, the other link partner also must be forced, because it should not be able to perform autoneg. Some PHYs will default to 10/Half when autoneg fails, but as far as i'm known, that it not part of 802.3. > > I'm not saying the bug isn't real, I mostly curious about the kind of > > circumstances that causes this prblem to show-up. Do you have any > > clarifications on that ? Given the testing you have done, it seems to need an invalid configuration? > Also when I tried the same between DP83869 PHYs of two AM64x (TI DUTs) I > couldn't see this issue. When I tried between DP83869 PHY and an external > switch or PC I was able to reproduce this issue. Did you force the switch to 100Full? Or was autoneg still enabled? Andrew ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-02-15 17:23 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-11 13:10 [PATCH net] net: phy: dp83869: Set auto mdix bit for forced 100Base-Tx mode Meghana Malladi 2026-02-11 13:26 ` Russell King (Oracle) 2026-02-11 13:53 ` Meghana Malladi 2026-02-11 14:04 ` Andrew Lunn 2026-02-11 14:09 ` Meghana Malladi 2026-02-11 14:04 ` Russell King (Oracle) 2026-02-11 14:12 ` Andrew Lunn 2026-02-12 6:21 ` Meghana Malladi 2026-02-12 13:06 ` Andrew Lunn 2026-02-15 14:56 ` Malladi, Meghana 2026-02-12 18:40 ` Maxime Chevallier 2026-02-15 14:45 ` [EXTERNAL] " Malladi, Meghana 2026-02-15 17:23 ` Andrew Lunn
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox