From: kernel test robot <lkp@intel.com>
To: Jiawen Wu <jiawenwu@trustnetic.com>,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, richardcochran@gmail.com,
linux@armlinux.org.uk, horms@kernel.org,
jacob.e.keller@intel.com, netdev@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
mengyuanlou@net-swift.com, Jiawen Wu <jiawenwu@trustnetic.com>
Subject: Re: [PATCH net-next 1/4] net: wangxun: Add support for PTP clock
Date: Fri, 3 Jan 2025 00:16:06 +0800 [thread overview]
Message-ID: <202501022323.HDFZ6FVp-lkp@intel.com> (raw)
In-Reply-To: <20250102103026.1982137-2-jiawenwu@trustnetic.com>
Hi Jiawen,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Jiawen-Wu/net-wangxun-Add-support-for-PTP-clock/20250102-181338
base: net-next/main
patch link: https://lore.kernel.org/r/20250102103026.1982137-2-jiawenwu%40trustnetic.com
patch subject: [PATCH net-next 1/4] net: wangxun: Add support for PTP clock
config: x86_64-buildonly-randconfig-004-20250102 (https://download.01.org/0day-ci/archive/20250102/202501022323.HDFZ6FVp-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250102/202501022323.HDFZ6FVp-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/202501022323.HDFZ6FVp-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/net/ethernet/wangxun/libwx/wx_ptp.c:4:
In file included from include/linux/ptp_classify.h:14:
In file included from include/linux/ip.h:16:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/x86/include/asm/cacheflush.h:5:
In file included from include/linux/mm.h:2223:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/net/ethernet/wangxun/libwx/wx_ptp.c:358:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
358 | case HWTSTAMP_TX_ON:
| ^
drivers/net/ethernet/wangxun/libwx/wx_ptp.c:358:2: note: insert 'break;' to avoid fall-through
358 | case HWTSTAMP_TX_ON:
| ^
| break;
2 warnings generated.
vim +358 drivers/net/ethernet/wangxun/libwx/wx_ptp.c
315
316 /**
317 * wx_ptp_set_timestamp_mode - setup the hardware for the requested mode
318 * @wx: the private board structure
319 * @config: the hwtstamp configuration requested
320 *
321 * Returns 0 on success, negative on failure
322 *
323 * Outgoing time stamping can be enabled and disabled. Play nice and
324 * disable it when requested, although it shouldn't cause any overhead
325 * when no packet needs it. At most one packet in the queue may be
326 * marked for time stamping, otherwise it would be impossible to tell
327 * for sure to which packet the hardware time stamp belongs.
328 *
329 * Incoming time stamping has to be configured via the hardware
330 * filters. Not all combinations are supported, in particular event
331 * type has to be specified. Matching the kind of event packet is
332 * not supported, with the exception of "all V2 events regardless of
333 * level 2 or 4".
334 *
335 * Since hardware always timestamps Path delay packets when timestamping V2
336 * packets, regardless of the type specified in the register, only use V2
337 * Event mode. This more accurately tells the user what the hardware is going
338 * to do anyways.
339 *
340 * Note: this may modify the hwtstamp configuration towards a more general
341 * mode, if required to support the specifically requested mode.
342 */
343 static int wx_ptp_set_timestamp_mode(struct wx *wx,
344 struct hwtstamp_config *config)
345 {
346 u32 tsync_tx_ctl = WX_TSC_1588_CTL_ENABLED;
347 u32 tsync_rx_ctl = WX_PSR_1588_CTL_ENABLED;
348 DECLARE_BITMAP(flags, WX_PF_FLAGS_NBITS);
349 u32 tsync_rx_mtrl = PTP_EV_PORT << 16;
350 bool is_l2 = false;
351 u32 regval;
352
353 memcpy(flags, wx->flags, sizeof(wx->flags));
354
355 switch (config->tx_type) {
356 case HWTSTAMP_TX_OFF:
357 tsync_tx_ctl = 0;
> 358 case HWTSTAMP_TX_ON:
359 break;
360 default:
361 return -ERANGE;
362 }
363
364 switch (config->rx_filter) {
365 case HWTSTAMP_FILTER_NONE:
366 tsync_rx_ctl = 0;
367 tsync_rx_mtrl = 0;
368 clear_bit(WX_FLAG_RX_HWTSTAMP_ENABLED, flags);
369 clear_bit(WX_FLAG_RX_HWTSTAMP_IN_REGISTER, flags);
370 break;
371 case HWTSTAMP_FILTER_PTP_V1_L4_SYNC:
372 tsync_rx_ctl |= WX_PSR_1588_CTL_TYPE_L4_V1;
373 tsync_rx_mtrl |= WX_PSR_1588_MSG_V1_SYNC;
374 set_bit(WX_FLAG_RX_HWTSTAMP_ENABLED, flags);
375 set_bit(WX_FLAG_RX_HWTSTAMP_IN_REGISTER, flags);
376 break;
377 case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
378 tsync_rx_ctl |= WX_PSR_1588_CTL_TYPE_L4_V1;
379 tsync_rx_mtrl |= WX_PSR_1588_MSG_V1_DELAY_REQ;
380 set_bit(WX_FLAG_RX_HWTSTAMP_ENABLED, flags);
381 set_bit(WX_FLAG_RX_HWTSTAMP_IN_REGISTER, flags);
382 break;
383 case HWTSTAMP_FILTER_PTP_V2_EVENT:
384 case HWTSTAMP_FILTER_PTP_V2_L2_EVENT:
385 case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
386 case HWTSTAMP_FILTER_PTP_V2_SYNC:
387 case HWTSTAMP_FILTER_PTP_V2_L2_SYNC:
388 case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
389 case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
390 case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ:
391 case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
392 tsync_rx_ctl |= WX_PSR_1588_CTL_TYPE_EVENT_V2;
393 is_l2 = true;
394 config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
395 set_bit(WX_FLAG_RX_HWTSTAMP_ENABLED, flags);
396 set_bit(WX_FLAG_RX_HWTSTAMP_IN_REGISTER, flags);
397 break;
398 default:
399 /* register RXMTRL must be set in order to do V1 packets,
400 * therefore it is not possible to time stamp both V1 Sync and
401 * Delay_Req messages unless hardware supports timestamping all
402 * packets => return error
403 */
404 clear_bit(WX_FLAG_RX_HWTSTAMP_ENABLED, wx->flags);
405 clear_bit(WX_FLAG_RX_HWTSTAMP_IN_REGISTER, wx->flags);
406 config->rx_filter = HWTSTAMP_FILTER_NONE;
407 return -ERANGE;
408 }
409
410 /* define ethertype filter for timestamping L2 packets */
411 if (is_l2)
412 wr32(wx, WX_PSR_ETYPE_SWC(WX_PSR_ETYPE_SWC_FILTER_1588),
413 (WX_PSR_ETYPE_SWC_FILTER_EN | /* enable filter */
414 WX_PSR_ETYPE_SWC_1588 | /* enable timestamping */
415 ETH_P_1588)); /* 1588 eth protocol type */
416 else
417 wr32(wx, WX_PSR_ETYPE_SWC(WX_PSR_ETYPE_SWC_FILTER_1588), 0);
418
419 /* enable/disable TX */
420 regval = rd32ptp(wx, WX_TSC_1588_CTL);
421 regval &= ~WX_TSC_1588_CTL_ENABLED;
422 regval |= tsync_tx_ctl;
423 wr32ptp(wx, WX_TSC_1588_CTL, regval);
424
425 /* enable/disable RX */
426 regval = rd32(wx, WX_PSR_1588_CTL);
427 regval &= ~(WX_PSR_1588_CTL_ENABLED | WX_PSR_1588_CTL_TYPE_MASK);
428 regval |= tsync_rx_ctl;
429 wr32(wx, WX_PSR_1588_CTL, regval);
430
431 /* define which PTP packets are time stamped */
432 wr32(wx, WX_PSR_1588_MSG, tsync_rx_mtrl);
433
434 WX_WRITE_FLUSH(wx);
435
436 /* configure adapter flags only when HW is actually configured */
437 memcpy(wx->flags, flags, sizeof(wx->flags));
438
439 /* clear TX/RX timestamp state, just to be sure */
440 wx_ptp_clear_tx_timestamp(wx);
441 rd32(wx, WX_PSR_1588_STMPH);
442
443 return 0;
444 }
445
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-01-02 16:16 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-02 10:30 [PATCH net-next 0/4] Support PTP clock for Wangxun NICs Jiawen Wu
2025-01-02 10:30 ` [PATCH net-next 1/4] net: wangxun: Add support for PTP clock Jiawen Wu
2025-01-02 14:13 ` Andrew Lunn
2025-01-06 7:42 ` Jiawen Wu
2025-01-06 14:26 ` Andrew Lunn
2025-01-07 2:24 ` Jiawen Wu
2025-01-07 13:33 ` Andrew Lunn
2025-01-08 0:34 ` Keller, Jacob E
2025-01-08 7:26 ` Jiawen Wu
2025-01-08 18:32 ` Andrew Lunn
2025-01-02 16:16 ` kernel test robot [this message]
2025-01-02 17:33 ` Vadim Fedorenko
2025-01-06 21:29 ` Keller, Jacob E
2025-01-02 10:30 ` [PATCH net-next 2/4] net: wangxun: Implement get_ts_info Jiawen Wu
2025-01-02 17:44 ` Vadim Fedorenko
2025-01-06 2:35 ` Jiawen Wu
2025-01-02 10:30 ` [PATCH net-next 3/4] net: wangxun: Add watchdog task for PTP clock Jiawen Wu
2025-01-02 17:53 ` Vadim Fedorenko
2025-01-03 8:45 ` Richard Cochran
2025-01-02 10:30 ` [PATCH net-next 4/4] net: ngbe: Add support for 1PPS and TOD Jiawen Wu
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=202501022323.HDFZ6FVp-lkp@intel.com \
--to=lkp@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=jiawenwu@trustnetic.com \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=llvm@lists.linux.dev \
--cc=mengyuanlou@net-swift.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.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.