From: Andrew Lunn <andrew@lunn.ch>
To: Dimitris Michailidis <d.michailidis@fungible.com>
Cc: davem@davemloft.net, Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org
Subject: Re: [PATCH net-next v7 4/8] net/funeth: ethtool operations
Date: Fri, 25 Feb 2022 08:52:03 +0100 [thread overview]
Message-ID: <YhiKo8FBHZfeHNXw@lunn.ch> (raw)
In-Reply-To: <CAOkoqZmTc6y=qn8WeFmcupPOncCmSSEMgbXPUtR80zyRhn=qdA@mail.gmail.com>
On Thu, Feb 24, 2022 at 04:57:36PM -0800, Dimitris Michailidis wrote:
> On Thu, Feb 24, 2022 at 12:30 PM Andrew Lunn <andrew@lunn.ch> wrote:
> >
> > > +static void fun_link_modes_to_ethtool(u64 modes,
> > > + unsigned long *ethtool_modes_map)
> > > +{
> > > +#define ADD_LINK_MODE(mode) \
> > > + __set_bit(ETHTOOL_LINK_MODE_ ## mode ## _BIT, ethtool_modes_map)
> > > +
> > > + if (modes & FUN_PORT_CAP_AUTONEG)
> > > + ADD_LINK_MODE(Autoneg);
> > > + if (modes & FUN_PORT_CAP_1000_X)
> > > + ADD_LINK_MODE(1000baseX_Full);
> > > + if (modes & FUN_PORT_CAP_10G_R) {
> > > + ADD_LINK_MODE(10000baseCR_Full);
> > > + ADD_LINK_MODE(10000baseSR_Full);
> > > + ADD_LINK_MODE(10000baseLR_Full);
> > > + ADD_LINK_MODE(10000baseER_Full);
> > > + }
> >
> > > +static unsigned int fun_port_type(unsigned int xcvr)
> > > +{
> > > + if (!xcvr)
> > > + return PORT_NONE;
> > > +
> > > + switch (xcvr & 7) {
> > > + case FUN_XCVR_BASET:
> > > + return PORT_TP;
> >
> > You support twisted pair, so should you also have the BaseT_FULL link
> > modes above?
>
> I agree with that but FW currently doesn't report BASE-T speeds in its
> port capabilities and the link modes are based on them. Looks simple to fix
> but needs future FW.
Maybe you should drop PORT_TP until you do have the firmware fixed?
> > > +static int fun_set_pauseparam(struct net_device *netdev,
> > > + struct ethtool_pauseparam *pause)
> > > +{
> > > + struct funeth_priv *fp = netdev_priv(netdev);
> > > + u64 new_advert;
> > > +
> > > + if (fp->port_caps & FUN_PORT_CAP_VPORT)
> > > + return -EOPNOTSUPP;
> > > + /* Forcing PAUSE settings with AN enabled is unsupported. */
> > > + if (!pause->autoneg && (fp->advertising & FUN_PORT_CAP_AUTONEG))
> > > + return -EOPNOTSUPP;
> >
> > This seems wrong. You don't advertise you cannot advertise. You simply
> > don't advertise. It could just be you have a bad variable name here?
>
> advertising & FUN_PORT_CAP_AUTONEG means that AN is enabled, and
> when this bit is off AN is disabled.
So, i was correct, the name of the variable is not so good. Maybe
fp->advertising need splitting into two, fp->cap_enabled for
capabilities of the firmware that are enabled, and fp->advertising for
what is actually been advertised to the link partner?
Andrew
next prev parent reply other threads:[~2022-02-25 7:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-18 23:45 [PATCH net-next v7 0/8] new Fungible Ethernet driver Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 1/8] PCI: Add Fungible Vendor ID to pci_ids.h Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 2/8] net/fungible: Add service module for Fungible drivers Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 3/8] net/funeth: probing and netdev ops Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 4/8] net/funeth: ethtool operations Dimitris Michailidis
2022-02-24 20:30 ` Andrew Lunn
2022-02-25 0:57 ` Dimitris Michailidis
2022-02-25 7:52 ` Andrew Lunn [this message]
2022-02-25 9:28 ` Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 5/8] net/funeth: devlink support Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 6/8] net/funeth: add the data path Dimitris Michailidis
2022-02-24 4:55 ` Jakub Kicinski
2022-02-24 18:47 ` Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 7/8] net/funeth: add kTLS TX control part Dimitris Michailidis
2022-02-18 23:45 ` [PATCH net-next v7 8/8] net/fungible: Kconfig, Makefiles, and MAINTAINERS Dimitris Michailidis
2022-02-19 4:58 ` [PATCH net-next v7 0/8] new Fungible Ethernet driver Jakub Kicinski
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=YhiKo8FBHZfeHNXw@lunn.ch \
--to=andrew@lunn.ch \
--cc=d.michailidis@fungible.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
/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.