* [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 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 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: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 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: [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: [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