[PATCH] net: stmmac: correct MAC propagation delay

kernel test robot lkp at intel.com
Wed Jul 19 11:54:50 PDT 2023


Hi Johannes,

kernel test robot noticed the following build errors:

[auto build test ERROR on 36395b2efe905650cd179d67411ffee3b770268b]

url:    https://github.com/intel-lab-lkp/linux/commits/Johannes-Zink/net-stmmac-correct-MAC-propagation-delay/20230719-221258
base:   36395b2efe905650cd179d67411ffee3b770268b
patch link:    https://lore.kernel.org/r/20230719-stmmac_correct_mac_delay-v1-1-768aa4d09334%40pengutronix.de
patch subject: [PATCH] net: stmmac: correct MAC propagation delay
config: i386-randconfig-i002-20230720 (https://download.01.org/0day-ci/archive/20230720/202307200225.B8rmKQPN-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230720/202307200225.B8rmKQPN-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307200225.B8rmKQPN-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.o: in function `correct_latency':
>> drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c:83: undefined reference to `__udivdi3'


vim +83 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c

    62	
    63	static void correct_latency(struct stmmac_priv *priv)
    64	{
    65		void __iomem *ioaddr = priv->ptpaddr;
    66		u32 reg_tsic, reg_tsicsns;
    67		u32 reg_tsec, reg_tsecsns;
    68		u64 scaled_ns;
    69		u32 val;
    70	
    71		/* MAC-internal ingress latency */
    72		scaled_ns = readl(ioaddr + PTP_TS_INGR_LAT);
    73	
    74		/* See section 11.7.2.5.3.1 "Ingress Correction" on page 4001 of
    75		 * i.MX8MP Applications Processor Reference Manual Rev. 1, 06/2021
    76		 */
    77		val = readl(ioaddr + PTP_TCR);
    78		if (val & PTP_TCR_TSCTRLSSR)
    79			/* nanoseconds field is in decimal format with granularity of 1ns/bit */
    80			scaled_ns = (NSEC_PER_SEC << 16) - scaled_ns;
    81		else
    82			/* nanoseconds field is in binary format with granularity of ~0.466ns/bit */
  > 83			scaled_ns = ((1ULL << 31) << 16) - scaled_ns * PSEC_PER_NSEC / 466;
    84	
    85		reg_tsic = scaled_ns >> 16;
    86		reg_tsicsns = scaled_ns & 0xff00;
    87	
    88		/* set bit 31 for 2's compliment */
    89		reg_tsic |= BIT(31);
    90	
    91		writel(reg_tsic, ioaddr + PTP_TS_INGR_CORR_NS);
    92		writel(reg_tsicsns, ioaddr + PTP_TS_INGR_CORR_SNS);
    93	
    94		/* MAC-internal egress latency */
    95		scaled_ns = readl(ioaddr + PTP_TS_EGR_LAT);
    96	
    97		reg_tsec = scaled_ns >> 16;
    98		reg_tsecsns = scaled_ns & 0xff00;
    99	
   100		writel(reg_tsec, ioaddr + PTP_TS_EGR_CORR_NS);
   101		writel(reg_tsecsns, ioaddr + PTP_TS_EGR_CORR_SNS);
   102	}
   103	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the linux-arm-kernel mailing list