All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: "Bjørn Mork" <bjorn@mork.no>
Cc: netdev@vger.kernel.org, Felix Fietkau <nbd@nbd.name>,
	John Crispin <john@phrozen.org>,
	Sean Wang <sean.wang@mediatek.com>,
	Mark Lee <Mark-MC.Lee@mediatek.com>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	Daniel Golle <daniel@makrotopia.org>,
	Alexander Couzens <lynxis@fe80.eu>
Subject: Re: [PATCH net 2/3] net: mediatek: sgmii: autonegotiation is required
Date: Thu, 19 Jan 2023 21:53:40 +0000	[thread overview]
Message-ID: <Y8m75N5//L+PHo8f@shell.armlinux.org.uk> (raw)
In-Reply-To: <87v8l2uxoi.fsf@miraculix.mork.no>

On Thu, Jan 19, 2023 at 08:33:17PM +0100, Bjørn Mork wrote:
> "Russell King (Oracle)" <linux@armlinux.org.uk> writes:
> > On Thu, Jan 19, 2023 at 06:12:47PM +0100, Bjørn Mork wrote:
> >> sgmii mode fails if autonegotiation is disabled.
> >> 
> >> Signed-off-by: Bjørn Mork <bjorn@mork.no>
> >> ---
> >>  drivers/net/ethernet/mediatek/mtk_sgmii.c | 11 +++--------
> >>  1 file changed, 3 insertions(+), 8 deletions(-)
> >> 
> >> diff --git a/drivers/net/ethernet/mediatek/mtk_sgmii.c b/drivers/net/ethernet/mediatek/mtk_sgmii.c
> >> index 481f2f1e39f5..d1f2bcb21242 100644
> >> --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c
> >> +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c
> >> @@ -62,14 +62,9 @@ static int mtk_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
> >>  	 * other words, 1000Mbps or 2500Mbps).
> >>  	 */
> >>  	if (interface == PHY_INTERFACE_MODE_SGMII) {
> >> -		sgm_mode = SGMII_IF_MODE_SGMII;
> >> -		if (phylink_autoneg_inband(mode)) {
> >> -			sgm_mode |= SGMII_REMOTE_FAULT_DIS |
> >> -				    SGMII_SPEED_DUPLEX_AN;
> >> -			use_an = true;
> >> -		} else {
> >> -			use_an = false;
> >> -		}
> >> +		sgm_mode = SGMII_IF_MODE_SGMII | SGMII_REMOTE_FAULT_DIS |
> >> +			   SGMII_SPEED_DUPLEX_AN;
> >> +		use_an = true;
> >
> > I wasn't actually suggesting in our discussion that this is something
> > which should be changed.
> >
> > The reference implementation for the expected behaviour is
> > phylink_mii_c22_pcs_config(), and it only enables in-band if "mode"
> > says so. If we have a PHY which has in-band disabled (yes, they do
> > exist) then having SGMII in-band unconditionally enabled breaks them,
> > and yes, those PHYs appear on SFP modules.
> >
> > The proper answer is to use 'managed = "in-band-status";' in your DT
> > to have in-band used with SGMII.
> 
> Well, yeah, I'd love to.  But then I'm back to the drawing board without
> a link.  That just doesn't work for me.

If you have 'managed = "in-band-status";' in your DT, that will set
"mode" to be MLO_AN_INBAND, and phylink_autoneg_inband(mode) will be
true - which should result in the link being programmed for in-band
mode. You should also find that mtk_pcs_get_state() gets called.

Hmm, it looks like setting ss->pcs[i].pcs.poll to true was missed
when support for inband was properly added, so that might be the
issue there - as the mtk ethernet driver doesn't make use of
phylink_mac_change().

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2023-01-19 22:14 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-19 17:12 [PATCH net 0/3] fixes for mtk_eth_soc Bjørn Mork
2023-01-19 17:12 ` [PATCH net 1/3] net: mediatek: sgmii: ensure the SGMII PHY is powered down on configuration Bjørn Mork
2023-01-19 17:17   ` Russell King (Oracle)
2023-01-19 19:03     ` Bjørn Mork
2023-01-19 17:12 ` [PATCH net 2/3] net: mediatek: sgmii: autonegotiation is required Bjørn Mork
2023-01-19 17:21   ` Russell King (Oracle)
2023-01-19 19:33     ` Bjørn Mork
2023-01-19 21:53       ` Russell King (Oracle) [this message]
2023-01-20  7:56         ` Bjørn Mork
2023-01-19 17:12 ` [PATCH net 3/3] net: mediatek: sgmii: fix duplex configuration Bjørn Mork
2023-01-19 17:14   ` Russell King (Oracle)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y8m75N5//L+PHo8f@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=Mark-MC.Lee@mediatek.com \
    --cc=bjorn@mork.no \
    --cc=daniel@makrotopia.org \
    --cc=john@phrozen.org \
    --cc=lorenzo@kernel.org \
    --cc=lynxis@fe80.eu \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=sean.wang@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.