All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Sean Anderson <sean.anderson@seco.com>,
	netdev@vger.kernel.org, Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>
Cc: kbuild-all@lists.01.org, "David S . Miller" <davem@davemloft.net>,
	Paolo Abeni <pabeni@redhat.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	linux-kernel@vger.kernel.org, Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Alexandru Marginean <alexandru.marginean@nxp.com>,
	Sean Anderson <sean.anderson@seco.com>
Subject: Re: [PATCH net-next v4 08/10] net: phylink: Adjust advertisement based on rate adaptation
Date: Fri, 19 Aug 2022 03:00:33 +0800	[thread overview]
Message-ID: <202208190223.zfo3KG9D-lkp@intel.com> (raw)
In-Reply-To: <20220818164616.2064242-9-sean.anderson@seco.com>

Hi Sean,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/intel-lab-lkp/linux/commits/Sean-Anderson/net-phy-Add-support-for-rate-adaptation/20220819-005121
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git e34cfee65ec891a319ce79797dda18083af33a76
config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20220819/202208190223.zfo3KG9D-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/f4857d8d4f852b1cc3ae278785c209a7a0da0f67
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Sean-Anderson/net-phy-Add-support-for-rate-adaptation/20220819-005121
        git checkout f4857d8d4f852b1cc3ae278785c209a7a0da0f67
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/net/phy/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/net/phy/phylink.c: In function 'phylink_get_capabilities':
>> drivers/net/phy/phylink.c:543:21: error: implicit declaration of function 'phylink_cap_from_speed_duplex' [-Werror=implicit-function-declaration]
     543 |                     phylink_cap_from_speed_duplex(max_speed, DUPLEX_FULL)) {
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/phylink_cap_from_speed_duplex +543 drivers/net/phy/phylink.c

   431	
   432	/**
   433	 * phylink_get_capabilities() - get capabilities for a given MAC
   434	 * @interface: phy interface mode defined by &typedef phy_interface_t
   435	 * @mac_capabilities: bitmask of MAC capabilities
   436	 * @rate_adaptation: type of rate adaptation being performed
   437	 *
   438	 * Get the MAC capabilities that are supported by the @interface mode and
   439	 * @mac_capabilities.
   440	 */
   441	unsigned long phylink_get_capabilities(phy_interface_t interface,
   442					       unsigned long mac_capabilities,
   443					       int rate_adaptation)
   444	{
   445		int max_speed = phylink_interface_max_speed(interface);
   446		unsigned long caps = MAC_SYM_PAUSE | MAC_ASYM_PAUSE;
   447		unsigned long adapted_caps = 0;
   448	
   449		switch (interface) {
   450		case PHY_INTERFACE_MODE_USXGMII:
   451			caps |= MAC_10000FD | MAC_5000FD | MAC_2500FD;
   452			fallthrough;
   453	
   454		case PHY_INTERFACE_MODE_RGMII_TXID:
   455		case PHY_INTERFACE_MODE_RGMII_RXID:
   456		case PHY_INTERFACE_MODE_RGMII_ID:
   457		case PHY_INTERFACE_MODE_RGMII:
   458		case PHY_INTERFACE_MODE_QSGMII:
   459		case PHY_INTERFACE_MODE_SGMII:
   460		case PHY_INTERFACE_MODE_GMII:
   461			caps |= MAC_1000HD | MAC_1000FD;
   462			fallthrough;
   463	
   464		case PHY_INTERFACE_MODE_REVRMII:
   465		case PHY_INTERFACE_MODE_RMII:
   466		case PHY_INTERFACE_MODE_SMII:
   467		case PHY_INTERFACE_MODE_REVMII:
   468		case PHY_INTERFACE_MODE_MII:
   469			caps |= MAC_10HD | MAC_10FD;
   470			fallthrough;
   471	
   472		case PHY_INTERFACE_MODE_100BASEX:
   473			caps |= MAC_100HD | MAC_100FD;
   474			break;
   475	
   476		case PHY_INTERFACE_MODE_TBI:
   477		case PHY_INTERFACE_MODE_MOCA:
   478		case PHY_INTERFACE_MODE_RTBI:
   479		case PHY_INTERFACE_MODE_1000BASEX:
   480			caps |= MAC_1000HD;
   481			fallthrough;
   482		case PHY_INTERFACE_MODE_1000BASEKX:
   483		case PHY_INTERFACE_MODE_TRGMII:
   484			caps |= MAC_1000FD;
   485			break;
   486	
   487		case PHY_INTERFACE_MODE_2500BASEX:
   488			caps |= MAC_2500FD;
   489			break;
   490	
   491		case PHY_INTERFACE_MODE_5GBASER:
   492			caps |= MAC_5000FD;
   493			break;
   494	
   495		case PHY_INTERFACE_MODE_XGMII:
   496		case PHY_INTERFACE_MODE_RXAUI:
   497		case PHY_INTERFACE_MODE_XAUI:
   498		case PHY_INTERFACE_MODE_10GBASER:
   499		case PHY_INTERFACE_MODE_10GKR:
   500			caps |= MAC_10000FD;
   501			break;
   502	
   503		case PHY_INTERFACE_MODE_25GBASER:
   504			caps |= MAC_25000FD;
   505			break;
   506	
   507		case PHY_INTERFACE_MODE_XLGMII:
   508			caps |= MAC_40000FD;
   509			break;
   510	
   511		case PHY_INTERFACE_MODE_INTERNAL:
   512			caps |= ~0;
   513			break;
   514	
   515		case PHY_INTERFACE_MODE_NA:
   516		case PHY_INTERFACE_MODE_MAX:
   517			break;
   518		}
   519	
   520		switch (rate_adaptation) {
   521		case RATE_ADAPT_OPEN_LOOP:
   522			/* TODO */
   523			fallthrough;
   524		case RATE_ADAPT_NONE:
   525			adapted_caps = 0;
   526			break;
   527		case RATE_ADAPT_PAUSE: {
   528			/* The MAC must support asymmetric pause towards the local
   529			 * device for this. We could allow just symmetric pause, but
   530			 * then we might have to renegotiate if the link partner
   531			 * doesn't support pause. This is because there's no way to
   532			 * accept pause frames without transmitting them if we only
   533			 * support symmetric pause.
   534			 */
   535			if (!(mac_capabilities & MAC_SYM_PAUSE) ||
   536			    !(mac_capabilities & MAC_ASYM_PAUSE))
   537				break;
   538	
   539			/* We can't adapt if the MAC doesn't support the interface's
   540			 * max speed at full duplex.
   541			 */
   542			if (mac_capabilities &
 > 543			    phylink_cap_from_speed_duplex(max_speed, DUPLEX_FULL)) {
   544				/* Although a duplex-adapting phy might exist, we
   545				 * conservatively remove these modes because the MAC
   546				 * will not be aware of the half-duplex nature of the
   547				 * link.
   548				 */
   549				adapted_caps = GENMASK(__fls(caps), __fls(MAC_10HD));
   550				adapted_caps &= ~(MAC_1000HD | MAC_100HD | MAC_10HD);
   551			}
   552			break;
   553		}
   554		case RATE_ADAPT_CRS:
   555			/* The MAC must support half duplex at the interface's max
   556			 * speed.
   557			 */
   558			if (mac_capabilities &
   559			    phylink_cap_from_speed_duplex(max_speed, DUPLEX_HALF)) {
   560				adapted_caps = GENMASK(__fls(caps), __fls(MAC_10HD));
   561				adapted_caps &= mac_capabilities;
   562			}
   563			break;
   564		}
   565	
   566		return (caps & mac_capabilities) | adapted_caps;
   567	}
   568	EXPORT_SYMBOL_GPL(phylink_get_capabilities);
   569	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  reply	other threads:[~2022-08-18 19:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-18 16:46 [PATCH net-next v4 00/10] net: phy: Add support for rate adaptation Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 01/10] net: phy: Add 1000BASE-KX interface mode Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 02/10] net: phylink: Document MAC_(A)SYM_PAUSE Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 03/10] net: phylink: Export phylink_caps_to_linkmodes Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 04/10] net: phylink: Generate caps and convert to linkmodes separately Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 05/10] net: phylink: Add some helpers for working with mac caps Sean Anderson
2022-08-18 16:55   ` Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 06/10] net: phy: Add support for rate adaptation Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 07/10] net: phylink: Adjust link settings based on " Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 08/10] net: phylink: Adjust advertisement " Sean Anderson
2022-08-18 19:00   ` kernel test robot [this message]
2022-08-18 19:31   ` kernel test robot
2022-08-18 16:46 ` [PATCH net-next v4 09/10] net: phy: aquantia: Add some additional phy interfaces Sean Anderson
2022-08-18 16:46 ` [PATCH net-next v4 10/10] net: phy: aquantia: Add support for rate adaptation Sean Anderson

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=202208190223.zfo3KG9D-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alexandru.marginean@nxp.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=sean.anderson@seco.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.