1. 14 Nov, 2019 2 commits
    • Vladimir Oltean's avatar
      net: dsa: sja1105: Implement state machine for TAS with PTP clock source · 86db36a3
      Vladimir Oltean authored
      Tested using the following bash script and the tc from iproute2-next:
      
      	#!/bin/bash
      
      	set -e -u -o pipefail
      
      	NSEC_PER_SEC="1000000000"
      
      	gatemask() {
      		local tc_list="$1"
      		local mask=0
      
      		for tc in ${tc_list}; do
      			mask=$((${mask} | (1 << ${tc})))
      		done
      
      		printf "%02x" ${mask}
      	}
      
      	if ! systemctl is-active --quiet ptp4l; then
      		echo "Please start the ptp4l service"
      		exit
      	fi
      
      	now=$(phc_ctl /dev/ptp1 get | gawk '/clock time is/ { print $5; }')
      	# Phase-align the base time to the start of the next second.
      	sec=$(echo "${now}" | gawk -F. '{ print $1; }')
      	base_time="$(((${sec} + 1) * ${NSEC_PER_SEC}))"
      
      	tc qdisc add dev swp5 parent root handle 100 taprio \
      		num_tc 8 \
      		map 0 1 2 3 5 6 7 \
      		queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
      		base-time ${base_time} \
      		sched-entry S $(gatemask 7) 100000 \
      		sched-entry S $(gatemask "0 1 2 3 4 5 6") 400000 \
      		clockid CLOCK_TAI flags 2
      
      The "state machine" is a workqueue invoked after each manipulation
      command on the PTP clock (reset, adjust time, set time, adjust
      frequency) which checks over the state of the time-aware scheduler.
      So it is not monitored periodically, only in reaction to a PTP command
      typically triggered from a userspace daemon (linuxptp). Otherwise there
      is no reason for things to go wrong.
      
      Now that the timecounter/cyclecounter has been replaced with hardware
      operations on the PTP clock, the TAS Kconfig now depends upon PTP and
      the standalone clocksource operating mode has been removed.
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86db36a3
    • Vladimir Oltean's avatar
      net: dsa: sja1105: Make the PTP command read-write · 41603d78
      Vladimir Oltean authored
      The PTPSTRTSCH and PTPSTOPSCH bits are actually readable and indicate
      whether the time-aware scheduler is running or not. We will be using
      that for monitoring the scheduler in the next patch, so refactor the PTP
      command API in order to allow that.
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41603d78
  2. 13 Nov, 2019 35 commits
  3. 12 Nov, 2019 3 commits
    • David S. Miller's avatar
      Merge tag 'linux-can-next-for-5.5-20191111' of... · e0580b50
      David S. Miller authored
      Merge tag 'linux-can-next-for-5.5-20191111' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can-next 2019-10-07
      
      this is a pull request for net-next/master consisting of 32 patches.
      
      The first patch is by Gustavo A. R. Silva and removes unused code in the
      generic CAN infrastructure.
      
      The next three patches target the mcp251x driver. The one by Andy
      Shevchenko removes the legacy platform data support from the driver. The
      other two are by Timo Schlüßler and reset the device only when needed,
      to prevent glitches on the output when GPIO support is added.
      
      I'm contributing two patches fixing checkpatch warnings in the
      c_can_platform and peak_canfd driver.
      
      Stephane Grosjean's patch for the peak_canfd driver adds hw timestamps
      support in rx skbs.
      
      The next three patches target the xilinx_can driver. One patch by me to
      fix checkpatch warnings, one patch by Anssi Hannula to avoid non
      requested bus error frames, and a patch by YueHaibing that switches the
      driver to devm_platform_ioremap_resource().
      
      Pankaj Sharma contributes two patches for the m_can driver, the first
      one adds support for one shot mode, the other support for handling
      arbitration errors.
      
      Followed by four patches by YueHaibing, switching the grcan, ifi, rcar,
      and sun4i drivers to devm_platform_ioremap_resource()
      
      I'm contributing cleanup patches for the rx-offload helper, while Joakim
      Zhang's patch prepares the rx-offload helper for CAN-FD support. The rx
      offload users flexcan and ti_hecc are converted accordingly.
      
      The remaining twelve patches target the flexcan driver. First Joakim
      Zhang switches the driver to devm_platform_ioremap_resource(). The
      remaining eleven patch are by me and clean up the abstract the access of
      the iflag1 and iflag2 register both for RX and TX mailboxes. This is a
      preparation for the upcoming CAN-FD support.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0580b50
    • Arthur Fabre's avatar
      sfc: trace_xdp_exception on XDP failure · 9440a875
      Arthur Fabre authored
      The sfc driver can drop packets processed with XDP, notably when running
      out of buffer space on XDP_TX, or returning an unknown XDP action.
      This increments the rx_xdp_bad_drops ethtool counter.
      
      Call trace_xdp_exception everywhere rx_xdp_bad_drops is incremented,
      except for fragmented RX packets as the XDP program hasn't run yet.
      This allows it to easily be monitored from userspace.
      
      This mirrors the behavior of other drivers.
      Signed-off-by: default avatarArthur Fabre <afabre@cloudflare.com>
      Acked-by: default avatarEdward Cree <ecree@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9440a875
    • YueHaibing's avatar
      ptp: ptp_clockmatrix: Fix build error · 1e86606b
      YueHaibing authored
      When do randbuilding, we got this warning:
      
      WARNING: unmet direct dependencies detected for PTP_1588_CLOCK
        Depends on [n]: NET [=y] && POSIX_TIMERS [=n]
        Selected by [y]:
        - PTP_1588_CLOCK_IDTCM [=y]
      
      Make PTP_1588_CLOCK_IDTCM depends on PTP_1588_CLOCK to fix this.
      
      Fixes: 3a6ba7dc ("ptp: Add a ptp clock driver for IDT ClockMatrix.")
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Reviewed-by: default avatarVincent Cheng  <vincent.cheng.xh@renesas.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e86606b