From: kernel test robot <lkp@intel.com>
To: Oleksij Rempel <o.rempel@pengutronix.de>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Woojung Huh <woojung.huh@microchip.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
Russell King <rmk+kernel@armlinux.org.uk>,
Thangaraj Samynathan <Thangaraj.S@microchip.com>,
Rengarajan Sundararajan <Rengarajan.S@microchip.com>
Cc: oe-kbuild-all@lists.linux.dev, netdev@vger.kernel.org,
Oleksij Rempel <o.rempel@pengutronix.de>,
kernel@pengutronix.de, linux-kernel@vger.kernel.org,
UNGLinuxDriver@microchip.com, Phil Elwell <phil@raspberrypi.org>
Subject: Re: [PATCH net-next v3 1/7] net: usb: lan78xx: Convert to PHYlink for improved PHY and MAC management
Date: Sat, 15 Mar 2025 11:48:15 +0800 [thread overview]
Message-ID: <202503151113.AFty2HdH-lkp@intel.com> (raw)
In-Reply-To: <20250310115737.784047-2-o.rempel@pengutronix.de>
Hi Oleksij,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Oleksij-Rempel/net-usb-lan78xx-Convert-to-PHYlink-for-improved-PHY-and-MAC-management/20250310-200116
base: net-next/main
patch link: https://lore.kernel.org/r/20250310115737.784047-2-o.rempel%40pengutronix.de
patch subject: [PATCH net-next v3 1/7] net: usb: lan78xx: Convert to PHYlink for improved PHY and MAC management
config: i386-randconfig-006-20250315 (https://download.01.org/0day-ci/archive/20250315/202503151113.AFty2HdH-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250315/202503151113.AFty2HdH-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503151113.AFty2HdH-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_phy_init':
>> drivers/net/usb/lan78xx.c:2683: undefined reference to `phylink_connect_phy'
>> ld: drivers/net/usb/lan78xx.c:2651: undefined reference to `phylink_set_fixed_link'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_open':
>> drivers/net/usb/lan78xx.c:3280: undefined reference to `phylink_start'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_stop':
>> drivers/net/usb/lan78xx.c:3350: undefined reference to `phylink_stop'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_disconnect':
drivers/net/usb/lan78xx.c:4375: undefined reference to `phylink_stop'
>> ld: drivers/net/usb/lan78xx.c:4376: undefined reference to `phylink_disconnect_phy'
>> ld: drivers/net/usb/lan78xx.c:4387: undefined reference to `phylink_destroy'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_phylink_setup':
>> drivers/net/usb/lan78xx.c:2621: undefined reference to `phylink_create'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_probe':
>> drivers/net/usb/lan78xx.c:4609: undefined reference to `phylink_disconnect_phy'
ld: drivers/net/usb/lan78xx.c:4611: undefined reference to `phylink_destroy'
ld: drivers/net/usb/lan78xx.o: in function `lan78xx_reset_resume':
drivers/net/usb/lan78xx.c:5173: undefined reference to `phylink_start'
vim +2683 drivers/net/usb/lan78xx.c
2599
2600 static int lan78xx_phylink_setup(struct lan78xx_net *dev)
2601 {
2602 struct phylink_config *pc = &dev->phylink_config;
2603 phy_interface_t link_interface;
2604 struct phylink *phylink;
2605
2606 pc->dev = &dev->net->dev;
2607 pc->type = PHYLINK_NETDEV;
2608 pc->mac_capabilities = MAC_SYM_PAUSE | MAC_ASYM_PAUSE | MAC_10 |
2609 MAC_100 | MAC_1000FD;
2610 pc->mac_managed_pm = true;
2611
2612 if (dev->chipid == ID_REV_CHIP_ID_7801_) {
2613 phy_interface_set_rgmii(pc->supported_interfaces);
2614 link_interface = PHY_INTERFACE_MODE_RGMII_ID;
2615 } else {
2616 __set_bit(PHY_INTERFACE_MODE_INTERNAL,
2617 pc->supported_interfaces);
2618 link_interface = PHY_INTERFACE_MODE_INTERNAL;
2619 }
2620
> 2621 phylink = phylink_create(pc, dev->net->dev.fwnode,
2622 link_interface, &lan78xx_phylink_mac_ops);
2623 if (IS_ERR(phylink))
2624 return PTR_ERR(phylink);
2625
2626 dev->phylink = phylink;
2627
2628 return 0;
2629 }
2630
2631 static int lan78xx_phy_init(struct lan78xx_net *dev)
2632 {
2633 struct phy_device *phydev;
2634 int ret;
2635
2636 switch (dev->chipid) {
2637 case ID_REV_CHIP_ID_7801_:
2638 phydev = lan7801_phy_init(dev);
2639 /* If no PHY found, set fixed link, probably there is no
2640 * device or some kind of different device like switch.
2641 * For example: EVB-KSZ9897-1 (KSZ9897 switch evaluation board
2642 * with LAN7801 & KSZ9031)
2643 */
2644 if (!phydev) {
2645 struct phylink_link_state state = {
2646 .speed = SPEED_1000,
2647 .duplex = DUPLEX_FULL,
2648 .interface = PHY_INTERFACE_MODE_RGMII,
2649 };
2650
> 2651 ret = phylink_set_fixed_link(dev->phylink, &state);
2652 if (ret)
2653 netdev_err(dev->net, "Could not set fixed link\n");
2654
2655 return ret;
2656 }
2657
2658 break;
2659
2660 case ID_REV_CHIP_ID_7800_:
2661 case ID_REV_CHIP_ID_7850_:
2662 phydev = phy_find_first(dev->mdiobus);
2663 if (!phydev) {
2664 netdev_err(dev->net, "no PHY found\n");
2665 return -EIO;
2666 }
2667 phydev->is_internal = true;
2668 phydev->interface = PHY_INTERFACE_MODE_GMII;
2669 break;
2670
2671 default:
2672 netdev_err(dev->net, "Unknown CHIP ID found\n");
2673 return -EIO;
2674 }
2675
2676 /* if phyirq is not set, use polling mode in phylib */
2677 if (dev->domain_data.phyirq > 0)
2678 phydev->irq = dev->domain_data.phyirq;
2679 else
2680 phydev->irq = PHY_POLL;
2681 netdev_dbg(dev->net, "phydev->irq = %d\n", phydev->irq);
2682
> 2683 ret = phylink_connect_phy(dev->phylink, phydev);
2684 if (ret) {
2685 netdev_err(dev->net, "can't attach PHY to %s\n",
2686 dev->mdiobus->id);
2687 return -EIO;
2688 }
2689
2690 phy_support_eee(phydev);
2691
2692 if (phydev->mdio.dev.of_node) {
2693 u32 reg;
2694 int len;
2695
2696 len = of_property_count_elems_of_size(phydev->mdio.dev.of_node,
2697 "microchip,led-modes",
2698 sizeof(u32));
2699 if (len >= 0) {
2700 /* Ensure the appropriate LEDs are enabled */
2701 lan78xx_read_reg(dev, HW_CFG, ®);
2702 reg &= ~(HW_CFG_LED0_EN_ |
2703 HW_CFG_LED1_EN_ |
2704 HW_CFG_LED2_EN_ |
2705 HW_CFG_LED3_EN_);
2706 reg |= (len > 0) * HW_CFG_LED0_EN_ |
2707 (len > 1) * HW_CFG_LED1_EN_ |
2708 (len > 2) * HW_CFG_LED2_EN_ |
2709 (len > 3) * HW_CFG_LED3_EN_;
2710 lan78xx_write_reg(dev, HW_CFG, reg);
2711 }
2712 }
2713
2714 return 0;
2715 }
2716
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-03-15 3:49 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 11:57 [PATCH net-next v3 0/7] Convert LAN78xx to PHYLINK Oleksij Rempel
2025-03-10 11:57 ` [PATCH net-next v3 1/7] net: usb: lan78xx: Convert to PHYlink for improved PHY and MAC management Oleksij Rempel
2025-03-15 3:48 ` kernel test robot [this message]
2025-03-17 15:36 ` Simon Horman
2025-03-18 5:07 ` Oleksij Rempel
2025-03-10 11:57 ` [PATCH net-next v3 2/7] net: usb: lan78xx: improve error reporting on PHY attach failure Oleksij Rempel
2025-03-10 11:57 ` [PATCH net-next v3 3/7] net: usb: lan78xx: Improve error handling for PHY init path Oleksij Rempel
2025-03-10 11:57 ` [PATCH net-next v3 4/7] net: usb: lan78xx: Use ethtool_op_get_link to reflect current link status Oleksij Rempel
2025-03-11 17:04 ` Maxime Chevallier
2025-03-10 11:57 ` [PATCH net-next v3 5/7] net: usb: lan78xx: port link settings to phylink API Oleksij Rempel
2025-03-11 17:11 ` Maxime Chevallier
2025-03-15 7:16 ` kernel test robot
2025-03-10 11:57 ` [PATCH net-next v3 6/7] net: usb: lan78xx: Transition get/set_pause to phylink Oleksij Rempel
2025-03-11 17:31 ` Maxime Chevallier
2025-03-15 10:58 ` kernel test robot
2025-03-10 11:57 ` [PATCH net-next v3 7/7] net: usb: lan78xx: Integrate EEE support with phylink LPI API Oleksij Rempel
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=202503151113.AFty2HdH-lkp@intel.com \
--to=lkp@intel.com \
--cc=Rengarajan.S@microchip.com \
--cc=Thangaraj.S@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kernel@pengutronix.de \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=o.rempel@pengutronix.de \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=phil@raspberrypi.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=woojung.huh@microchip.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox