1. 04 6月, 2018 1 次提交
    • J
      net: stmmac: Add Flexible PPS support · 9a8a02c9
      Jose Abreu 提交于
      This adds support for Flexible PPS output (which is equivalent
      to per_out output of PTP subsystem).
      
      Tested using an oscilloscope and the following commands:
      
      1) Start PTP4L:
      	# ptp4l -A -4 -H -m -i eth0 &
      2) Set Flexible PPS frequency:
      	# echo <idx> <ts> <tns> <ps> <pns> > /sys/class/ptp/ptpX/period
      
      Where, ts/tns is start time and ps/pns is period time, and ptpX is ptp
      of eth0.
      Signed-off-by: NJose Abreu <joabreu@synopsys.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Joao Pinto <jpinto@synopsys.com>
      Cc: Vitor Soares <soares@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Cc: Richard Cochran <richardcochran@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9a8a02c9
  2. 29 5月, 2018 1 次提交
  3. 18 5月, 2018 1 次提交
  4. 11 5月, 2018 1 次提交
    • J
      net: stmmac: Add support for U32 TC filter using Flexible RX Parser · 4dbbe8dd
      Jose Abreu 提交于
      This adds support for U32 filter by using an HW only feature called
      Flexible RX Parser. This allow us to match any given packet field with a
      pattern and accept/reject or even route the packet to a specific DMA
      channel.
      
      Right now we only support acception or rejection of frame and we only
      support simple rules. Though, the Parser has the flexibility of jumping to
      specific rules as an if condition so complex rules can be established.
      
      This is only supported in GMAC5.10+.
      
      The following commands can be used to test this code:
      
      	1) Setup an ingress qdisk:
      	# tc qdisc add dev eth0 handle ffff: ingress
      
      	2) Setup a filter (e.g. filter by IP):
      	# tc filter add dev eth0 parent ffff: protocol ip u32 match ip \
      		src 192.168.0.3 skip_sw action drop
      
      In every tests performed we always used the "skip_sw" flag to make sure
      only the RX Parser was involved.
      Signed-off-by: NJose Abreu <joabreu@synopsys.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Joao Pinto <jpinto@synopsys.com>
      Cc: Vitor Soares <soares@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Cc: Jakub Kicinski <kubakici@wp.pl>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4dbbe8dd
  5. 24 4月, 2018 1 次提交
    • J
      net: stmmac: Implement logic to automatically select HW Interface · 5f0456b4
      Jose Abreu 提交于
      Move all the core version detection to a common place ("hwif.c") and
      implement a table which can be used to lookup the correct callbacks for
      each IP version.
      
      This simplifies the initialization flow of each IP version and eases
      future implementation of new IP versions.
      Signed-off-by: NJose Abreu <joabreu@synopsys.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Joao Pinto <jpinto@synopsys.com>
      Cc: Vitor Soares <soares@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f0456b4
  6. 31 3月, 2018 2 次提交
    • J
      net: stmmac: Add support for DWMAC5 and implement Safety Features · 8bf993a5
      Jose Abreu 提交于
      This adds initial suport for DWMAC5 and implements the Automotive Safety
      Package which is available from core version 5.10.
      
      The Automotive Safety Pacakge (also called Safety Features) offers us
      with error protection in the core by implementing ECC Protection in
      memories, on-chip data path parity protection, FSM parity and timeout
      protection and Application/CSR interface timeout protection.
      
      In case of an uncorrectable error we call stmmac_global_err() and
      reconfigure the whole core.
      Signed-off-by: NJose Abreu <joabreu@synopsys.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Joao Pinto <jpinto@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8bf993a5
    • J
      net: stmmac: Rework and fix TX Timeout code · 34877a15
      Jose Abreu 提交于
      Currently TX Timeout handler does not behaves as expected and leads to
      an unrecoverable state. Rework current implementation of TX Timeout
      handling to actually perform a complete reset of the driver state and IP.
      
      We use deferred work to init a task which will be responsible for
      resetting the system.
      Signed-off-by: NJose Abreu <joabreu@synopsys.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Joao Pinto <jpinto@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34877a15
  7. 21 2月, 2018 1 次提交
    • N
      net: stmmac: set MSS for each tx DMA channel · 8d212a9e
      Niklas Cassel 提交于
      The DMA engine in dwmac4 can segment a large TSO packet to several
      smaller packets of (max) size Maximum Segment Size (MSS).
      
      The DMA engine fetches and saves the MSS via a context descriptor.
      
      This context decriptor has to be provided to each tx DMA channel.
      To ensure that this is done, move struct member mss from stmmac_priv
      to stmmac_tx_queue.
      
      stmmac_reset_queues_param() now also resets mss, together with other
      queue parameters, so reset of mss value can be removed from
      stmmac_resume().
      
      init_dma_tx_desc_rings() now also resets mss, together with other
      queue parameters, so reset of mss value can be removed from
      stmmac_open().
      
      This fixes tx queue timeouts for dwmac4, with DT property
      snps,tx-queues-to-use > 1, when running iperf3 with multiple threads.
      
      Fixes: ce736788 ("net: stmmac: adding multiple buffers for TX")
      Signed-off-by: NNiklas Cassel <niklas.cassel@axis.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8d212a9e
  8. 26 5月, 2017 1 次提交
  9. 07 4月, 2017 3 次提交
  10. 31 3月, 2017 1 次提交
  11. 22 3月, 2017 1 次提交
  12. 09 2月, 2017 1 次提交
  13. 10 1月, 2017 1 次提交
  14. 11 12月, 2016 1 次提交
    • L
      net: ethernet: stmmac: remove private tx queue lock · 739c8e14
      Lino Sanfilippo 提交于
      The driver uses a private lock for synchronization of the xmit function and
      the xmit completion handler, but since the NETIF_F_LLTX flag is not set,
      the xmit function is also called with the xmit_lock held.
      
      On the other hand the completion handler uses the reverse locking order by
      first taking the private lock and (in case that the tx queue had been
      stopped) then the xmit_lock.
      
      Improve the locking by removing the private lock and using only the
      xmit_lock for synchronization instead.
      Signed-off-by: NLino Sanfilippo <LinoSanfilippo@gmx.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      739c8e14
  15. 16 11月, 2016 1 次提交
  16. 20 10月, 2016 1 次提交
  17. 12 10月, 2016 1 次提交
  18. 28 6月, 2016 1 次提交
  19. 04 5月, 2016 1 次提交
  20. 03 4月, 2016 3 次提交
  21. 03 3月, 2016 7 次提交
  22. 26 5月, 2015 1 次提交
    • M
      net: stmmac: create one debugfs dir per net-device · 466c5ac8
      Mathieu Olivari 提交于
      stmmac DebugFS entries are currently global to the driver. As a result,
      having more than one stmmac device in the system creates the following
      error:
      * ERROR stmmaceth, debugfs create directory failed
      * stmmac_hw_setup: failed debugFS registration
      
      This also results in being able to access the debugfs information for
      the first registered device only.
      
      This patch changes the debugfs structure to have one sub-directory per
      net-device. Files under "/sys/kernel/debug/stmmaceth" will now show-up
      under /sys/kernel/debug/stmmaceth/ethN/.
      Signed-off-by: NMathieu Olivari <mathieu@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      466c5ac8
  23. 22 5月, 2015 2 次提交
  24. 09 4月, 2015 1 次提交
  25. 12 11月, 2014 1 次提交
  26. 08 11月, 2014 1 次提交
    • A
      stmmac: platform: fix sparse warnings · f10f9fb2
      Andy Shevchenko 提交于
      This patch fixes the following sparse warnings. One is fixed by casting return
      value to a return type of the function. The others by creating a specific
      stmmac_platform.h which provides the bits related to the platform driver.
      
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29: warning: incorrect type in return expression (different address spaces)
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29:    expected void *
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29:    got void [noderef] <asn:2>*reg
      
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:64:29: warning: symbol 'meson6_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c:354:29: warning: symbol 'stih4xx_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c:361:29: warning: symbol 'stid127_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c:133:29: warning: symbol 'sun7i_gmac_data' was not declared. Should it be static?
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f10f9fb2
  27. 07 11月, 2014 1 次提交
  28. 06 11月, 2014 1 次提交