From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Ioana Ciornei <ioana.ciornei@nxp.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"davem@davemloft.net" <davem@davemloft.net>,
Vladimir Oltean <vladimir.oltean@nxp.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Alexandru Marginean <alexandru.marginean@nxp.com>,
"michael@walle.cc" <michael@walle.cc>,
"andrew@lunn.ch" <andrew@lunn.ch>,
"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
"olteanv@gmail.com" <olteanv@gmail.com>
Subject: Re: [PATCH net-next v3 4/9] net: phy: add Lynx PCS module
Date: Tue, 23 Jun 2020 13:03:02 +0100 [thread overview]
Message-ID: <20200623120301.GU1551@shell.armlinux.org.uk> (raw)
In-Reply-To: <VI1PR0402MB387117BC6F2B53E521F6D7EBE0940@VI1PR0402MB3871.eurprd04.prod.outlook.com>
On Tue, Jun 23, 2020 at 11:49:28AM +0000, Ioana Ciornei wrote:
> > This should be added to phylink_mii_c45_pcs_get_state(). There is nothing that
> > is Lynx PCS specific here.
>
> The USXGMII standard only describes the auto-negotiation word, not the MMD
> where this can be found (MMD_VEND2 in this case).
> I would not add a generic phylink herper that reads the MMD and also
> decodes it.
> Maybe a helper that just decodes the USXGMII word read from the
> Lynx module - phylink_decode_usxgmii_word(state, lpa) ?
Yes, you're right - as they come from the vendor 2 MMD, there's no
standard. So yes, just a helper to decode the USXGMII word please.
> > > +static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs,
> > > + struct phylink_link_state *state) {
> > > + struct mii_bus *bus = pcs->bus;
> > > + int addr = pcs->addr;
> > > + int bmsr, lpa;
> > > +
> > > + bmsr = mdiobus_read(bus, addr, MII_BMSR);
> > > + lpa = mdiobus_read(bus, addr, MII_LPA);
> > > + if (bmsr < 0 || lpa < 0) {
> > > + state->link = false;
> > > + return;
> > > + }
> > > +
> > > + state->link = !!(bmsr & BMSR_LSTATUS);
> > > + state->an_complete = !!(bmsr & BMSR_ANEGCOMPLETE);
> > > + if (!state->link)
> > > + return;
> > > +
> > > + state->speed = SPEED_2500;
> > > + state->pause |= MLO_PAUSE_TX | MLO_PAUSE_RX;
> >
> > How do you know the other side is using pause frames, or is capable of dealing
> > with them?
>
> Isn't this done by also looking into the PHY's pause frame bits and
> enabling pause frames in the MAC only when both the PCS and the PHY
> have flow enabled?
You are assuming that there is a PHY to read that information from.
There may not be a PHY - I have 2500base-X fibre links here, there is
no PHY to read that from, there is only the PCS - but this runs with
the configuration word present, so is not supported by this code (at
least at the moment.)
If there is a PHY, these bits will not be used anyway, so there's no
point setting them.
> Yep, will remove. I've gone through the documentation and the register
> should be initialized to 0x0001 when in SGMII mode
> (as done by phylink_mii_c22_pcs_config()).
Yep, that was actually written referring to the LX2160A documentation.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2020-06-23 12:03 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-21 22:54 [PATCH net-next v3 0/9] net: phy: add Lynx PCS MDIO module Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 1/9] net: phylink: add interface to configure clause 22 PCS PHY Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 2/9] net: phylink: consider QSGMII interface mode in phylink_mii_c22_pcs_get_state Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 3/9] net: mdiobus: add clause 45 mdiobus write accessor Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 4/9] net: phy: add Lynx PCS module Ioana Ciornei
2020-06-22 10:12 ` Russell King - ARM Linux admin
2020-06-23 11:49 ` Ioana Ciornei
2020-06-23 12:03 ` Russell King - ARM Linux admin [this message]
2020-06-22 23:04 ` Russell King - ARM Linux admin
2020-06-21 22:54 ` [PATCH net-next v3 5/9] net: dsa: add support for phylink_pcs_ops Ioana Ciornei
2020-06-22 10:22 ` Russell King - ARM Linux admin
2020-06-22 11:10 ` Russell King - ARM Linux admin
2020-06-22 12:16 ` Russell King - ARM Linux admin
2020-06-22 12:35 ` Ioana Ciornei
2020-06-22 13:14 ` Russell King - ARM Linux admin
2020-06-22 13:51 ` Ioana Ciornei
2020-06-22 14:07 ` Russell King - ARM Linux admin
2020-06-21 22:54 ` [PATCH net-next v3 6/9] net: dsa: felix: unconditionally configure MAC speed to 1000Mbps Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 7/9] net: dsa: felix: set proper pause frame timers based on link speed Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 8/9] net: dsa: felix: use resolved link config in mac_link_up() Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 9/9] net: dsa: felix: use the Lynx PCS helpers Ioana Ciornei
2020-06-22 9:29 ` [PATCH net-next v3 0/9] net: phy: add Lynx PCS MDIO module Russell King - ARM Linux admin
2020-06-22 9:34 ` Vladimir Oltean
2020-06-30 6:01 ` Michael Walle
2020-07-01 13:37 ` Vladimir Oltean
2020-07-01 13:49 ` Michael Walle
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=20200623120301.GU1551@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=alexandru.marginean@nxp.com \
--cc=andrew@lunn.ch \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=ioana.ciornei@nxp.com \
--cc=michael@walle.cc \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=vladimir.oltean@nxp.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.