* drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:759:21: error: no member named 'has_xgmac' in 'struct plat_stmmacenet_data'
@ 2026-07-27 6:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-27 6:24 UTC (permalink / raw)
To: Nazim Amirul; +Cc: llvm, oe-kbuild-all, 0day robot, Rohan G Thomas
tree: https://github.com/intel-lab-lkp/linux/commits/muhammad-nazim-amirul-nazle-asmade-altera-com/net-stmmac-Fix-E2E-delay-mechanism/20260727-102730
head: e2c5d928bebc00f481da4c3b8ccfa884cb36faef
commit: e2c5d928bebc00f481da4c3b8ccfa884cb36faef net: stmmac: Fix E2E delay mechanism
date: 4 hours ago
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260727/202607270825.cLNsCjUl-lkp@intel.com/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260727/202607270825.cLNsCjUl-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/202607270825.cLNsCjUl-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:759:21: error: no member named 'has_xgmac' in 'struct plat_stmmacenet_data'
759 | !priv->plat->has_xgmac)
| ~~~~~~~~~~ ^
1 error generated.
vim +759 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
630
631 /**
632 * stmmac_hwtstamp_set - control hardware timestamping.
633 * @dev: device pointer.
634 * @config: the timestamping configuration.
635 * @extack: netlink extended ack structure for error reporting.
636 * Description:
637 * This function configures the MAC to enable/disable both outgoing(TX)
638 * and incoming(RX) packets time stamping based on user input.
639 * Return Value:
640 * 0 on success and an appropriate -ve integer on failure.
641 */
642 static int stmmac_hwtstamp_set(struct net_device *dev,
643 struct kernel_hwtstamp_config *config,
644 struct netlink_ext_ack *extack)
645 {
646 struct stmmac_priv *priv = netdev_priv(dev);
647 u32 ptp_v2 = 0;
648 u32 tstamp_all = 0;
649 u32 ptp_over_ipv4_udp = 0;
650 u32 ptp_over_ipv6_udp = 0;
651 u32 ptp_over_ethernet = 0;
652 u32 snap_type_sel = 0;
653 u32 ts_master_en = 0;
654 u32 ts_event_en = 0;
655
656 if (!(priv->dma_cap.time_stamp || priv->adv_ts)) {
657 NL_SET_ERR_MSG_MOD(extack, "No support for HW time stamping");
658 priv->hwts_tx_en = 0;
659 priv->hwts_rx_en = 0;
660
661 return -EOPNOTSUPP;
662 }
663
664 if (!netif_running(dev)) {
665 NL_SET_ERR_MSG_MOD(extack,
666 "Cannot change timestamping configuration while down");
667 return -ENODEV;
668 }
669
670 netdev_dbg(priv->dev, "%s config flags:0x%x, tx_type:0x%x, rx_filter:0x%x\n",
671 __func__, config->flags, config->tx_type, config->rx_filter);
672
673 if (config->tx_type != HWTSTAMP_TX_OFF &&
674 config->tx_type != HWTSTAMP_TX_ON)
675 return -ERANGE;
676
677 if (priv->adv_ts) {
678 switch (config->rx_filter) {
679 case HWTSTAMP_FILTER_NONE:
680 /* time stamp no incoming packet at all */
681 config->rx_filter = HWTSTAMP_FILTER_NONE;
682 break;
683
684 case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
685 /* PTP v1, UDP, any kind of event packet */
686 config->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
687 /* 'xmac' hardware can support Sync, Pdelay_Req and
688 * Pdelay_resp by setting bit14 and bits17/16 to 01
689 * This leaves Delay_Req timestamps out.
690 * Enable all events *and* general purpose message
691 * timestamping
692 */
693 snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
694 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
695 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
696 break;
697
698 case HWTSTAMP_FILTER_PTP_V1_L4_SYNC:
699 /* PTP v1, UDP, Sync packet */
700 config->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_SYNC;
701 /* take time stamp for SYNC messages only */
702 ts_event_en = PTP_TCR_TSEVNTENA;
703
704 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
705 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
706 break;
707
708 case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
709 /* PTP v1, UDP, Delay_req packet */
710 config->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ;
711 /* take time stamp for Delay_Req messages only */
712 ts_master_en = PTP_TCR_TSMSTRENA;
713 ts_event_en = PTP_TCR_TSEVNTENA;
714
715 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
716 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
717 break;
718
719 case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
720 /* PTP v2, UDP, any kind of event packet */
721 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_EVENT;
722 ptp_v2 = PTP_TCR_TSVER2ENA;
723 /* take time stamp for all event messages */
724 snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
725
726 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
727 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
728 break;
729
730 case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
731 /* PTP v2, UDP, Sync packet */
732 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_SYNC;
733 ptp_v2 = PTP_TCR_TSVER2ENA;
734 /* take time stamp for SYNC messages only */
735 ts_event_en = PTP_TCR_TSEVNTENA;
736
737 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
738 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
739 break;
740
741 case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
742 /* PTP v2, UDP, Delay_req packet */
743 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ;
744 ptp_v2 = PTP_TCR_TSVER2ENA;
745 /* take time stamp for Delay_Req messages only */
746 ts_master_en = PTP_TCR_TSMSTRENA;
747 ts_event_en = PTP_TCR_TSEVNTENA;
748
749 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
750 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
751 break;
752
753 case HWTSTAMP_FILTER_PTP_V2_EVENT:
754 /* PTP v2/802.AS1 any layer, any kind of event packet */
755 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
756 ptp_v2 = PTP_TCR_TSVER2ENA;
757 snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
758 if (priv->synopsys_id < DWMAC_CORE_3_70 &&
> 759 !priv->plat->has_xgmac)
760 ts_event_en = PTP_TCR_TSEVNTENA;
761 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
762 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
763 ptp_over_ethernet = PTP_TCR_TSIPENA;
764 break;
765
766 case HWTSTAMP_FILTER_PTP_V2_SYNC:
767 /* PTP v2/802.AS1, any layer, Sync packet */
768 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_SYNC;
769 ptp_v2 = PTP_TCR_TSVER2ENA;
770 /* take time stamp for SYNC messages only */
771 ts_event_en = PTP_TCR_TSEVNTENA;
772
773 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
774 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
775 ptp_over_ethernet = PTP_TCR_TSIPENA;
776 break;
777
778 case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
779 /* PTP v2/802.AS1, any layer, Delay_req packet */
780 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_DELAY_REQ;
781 ptp_v2 = PTP_TCR_TSVER2ENA;
782 /* take time stamp for Delay_Req messages only */
783 ts_master_en = PTP_TCR_TSMSTRENA;
784 ts_event_en = PTP_TCR_TSEVNTENA;
785
786 ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
787 ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
788 ptp_over_ethernet = PTP_TCR_TSIPENA;
789 break;
790
791 case HWTSTAMP_FILTER_NTP_ALL:
792 case HWTSTAMP_FILTER_ALL:
793 /* time stamp any incoming packet */
794 config->rx_filter = HWTSTAMP_FILTER_ALL;
795 tstamp_all = PTP_TCR_TSENALL;
796 break;
797
798 default:
799 return -ERANGE;
800 }
801 } else {
802 switch (config->rx_filter) {
803 case HWTSTAMP_FILTER_NONE:
804 config->rx_filter = HWTSTAMP_FILTER_NONE;
805 break;
806 default:
807 /* PTP v1, UDP, any kind of event packet */
808 config->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
809 break;
810 }
811 }
812 priv->hwts_rx_en = config->rx_filter != HWTSTAMP_FILTER_NONE;
813 priv->hwts_tx_en = config->tx_type == HWTSTAMP_TX_ON;
814
815 priv->systime_flags = STMMAC_HWTS_ACTIVE;
816 if (!priv->tsfupdt_coarse)
817 priv->systime_flags |= PTP_TCR_TSCFUPDT;
818
819 if (priv->hwts_tx_en || priv->hwts_rx_en) {
820 priv->systime_flags |= tstamp_all | ptp_v2 |
821 ptp_over_ethernet | ptp_over_ipv6_udp |
822 ptp_over_ipv4_udp | ts_event_en |
823 ts_master_en | snap_type_sel;
824 }
825
826 stmmac_config_hw_tstamping(priv, priv->ptpaddr, priv->systime_flags);
827
828 priv->tstamp_config = *config;
829
830 return 0;
831 }
832
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-27 6:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-27 6:24 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:759:21: error: no member named 'has_xgmac' in 'struct plat_stmmacenet_data' kernel test robot
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.