Thread (20 messages) flat view 20 messages, 6 authors, 2020-11-26

Re: [PATCH] net: phy: fix auto-negotiation in case of 'down-shift'

From: Antonio Borneo <hidden>
Date: 2020-11-24 17:02:44
Also in: lkml, stable

On Tue, 2020-11-24 at 15:37 +0000, Russell King - ARM Linux admin wrote:
On Tue, Nov 24, 2020 at 04:17:42PM +0100, Antonio Borneo wrote:
quoted
On Tue, 2020-11-24 at 14:56 +0000, Russell King - ARM Linux admin wrote:
quoted
Userspace doesn't expect the advertising mask to change beneath it.
Since updates from userspace are done using a read-modify-write of
the ksettings, this can have the undesired effect of removing 1G
from the configured advertising mask.

We've had other PHYs have this behaviour; the correct solution is for
the PHY driver to implement reading the resolution from the PHY rather
than relying on the generic implementation if it can down-shift
If it's already upstream, could you please point to one of the phy driver
that already implements this properly?
Reading the resolved information is PHY specific as it isn't
standardised.
Digging in the info you have provided, I realized that another Realtek PHY
has some specific code already upstream to deal with downshift.
The PHY specific code is added by Heiner in d445dff2df60 ("net: phy:
realtek: read actual speed to detect downshift").
This code reads the actual speed from page 0xa43 address 0x12, that is not
reported in the datasheet of rtl8211f.
But I checked the register content in rtl8211f and it works at the same way
too!

I have added Willy in copy; maybe he can confirm that we can use page 0xa43
address 0x12 on rtl8211f to read the actual speed after negotiation.

In such case the fix for rtl8211f requires just adding the same custom
read_status().

Antonio

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help