summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/dpa
AgeCommit message (Collapse)Author
2013-04-29fmd21 integrationMandy Lavi
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Prev fmd integration was fmd19 Diffs from fmd19 to fmd21: Added kgHashShift to t_FmPcdHashTableParams Added nonConsistentSp to t_FmPcdManipReassemIpStats sp - 2 layers separation - for future flib integration rtc - 2 layers separation - for future flib integration PFC enhancement (B4 Rev2 FMAN) API addition (for B4 rev 2): FM_PORT_SetPfcPrioritiesMappingToQmanWQ File fsl_fman.h renamed to lnxwrp_fsl_fman.h The name fsl_fman.h has been applied to other fman internal header file In dpaa_eth: Due to renaming of fsl_fman.h to lnxwrp_fsl_fman.h The relevant include lines in some of the files had to change accordingly Change-Id: I8f25c758963a44a75ca8676aad45f7f96767b0b5 Reviewed-on: http://git.am.freescale.net:8181/2069 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-24dpaa_eth: make use of alloc_percpu()Madalin Bucur
Simplify code using alloc_percpu() instead of __alloc_percpu(). Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I8d8f003e7506bdea4113b1ec69aaa54b230b62ea Reviewed-on: http://git.am.freescale.net:8181/1739 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-24dpaa_eth: use FSL_DPAA_ETH prefix for all config optionsMadalin Bucur
Use consistent naming for Kconfig options in DPAA Ethernet driver. Also updated default configs. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I5603919a9d0649741a9494caed3826605b131903 Reviewed-on: http://git.am.freescale.net:8181/1720 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-24dpaa_eth: extract debugfs code to its own fileMadalin Bucur
Code cleanup, move debugfs code outside dpaa_eth.c. Also fixed some checkpatch.pl reports in the existing code. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Ia70e55d367ffd5743f44cee5ce93c83bb3f7594d Reviewed-on: http://git.am.freescale.net:8181/1719 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-23net: Fix skb_recycle functionIoana Radulescu
skb_recycle memsets to zero a large part of the sk_buff structure, including the head_frag field. This is an information that needs to be kept even after the skb is recycled, otherwise a subseqent kfree on the recycled skb may fail. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: Ieca806d86ff1e1f30712cc7caf9b72f152081e4f Reviewed-on: http://git.am.freescale.net:8181/1744 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Manoil Claudiu-B08782 <claudiu.manoil@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-19dpaa_eth: Move bpool refill thresholds to KconfigBogdan Hamciuc
There have been requests to change the thresholds which control the buffer pool replenishment on the private path of DPAA-Ethernet. While we normally discourage this (since these values have been fine-tuned after numerous tests) we nevertheless expose these knobs into the driver's Kconfig. They now default to the original hardcoded values. Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Change-Id: Ia6634932e16e4fb771317a04110704a5c3bb5e44 Reviewed-on: http://git.am.freescale.net:8181/1629 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-19Exports DPAA symbols required in ASFSunil Kumar Kori
Following symbols are exported: dpa_fd_release: Symbol is required to release the FD if any error case occurred in ASF. Change-Id: I122b6cd5da32ab825268a7c080da79865945fe75 Signed-off-by: Sunil Kumar Kori <Sunil.Kori@freescale.com> CR:ENGR00243312 Reviewed-on: http://git.am.freescale.net:8181/1296 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-19powerpc/dpaa_eth: add missing ethtool_op_get_linkShengzhou Liu
The get_link is requred by some applications(e.g. ixxat 1588 stack). Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Change-Id: I59376bff897710dba6e34aa624f60b4f1b473f86 Reviewed-on: http://git.am.freescale.net:8181/1601 Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-19dpaa_eth: add ethtool PAUSE frame supportCristian Bercaru
Change-Id: I52222f0bf60bb073bb3b77bf935a31e84b4939c0 Reviewed-on: http://git.am.freescale.net:8181/1545 Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Add initial support for trace eventsIoana Radulescu
Create a basic framework and an example for using trace events in the DPAA ethernet driver. New trace events can be added in the dpaa_eth_trace.h file and called from relevant places in the driver code. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: I7235ddc0f9fb69bbb8eaf506510e72bf2f63fb7d Reviewed-on: http://git.am.freescale.net:8181/1540 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Add NETPOLL supportBogdan Hamciuc
Add NETPOLL support to the dpaa-ethernet driver. This is particularly useful in tandem with the Netconsole module, when we'd want to drop tons of logs (e.g. Ftrace logs) and the serial console is just too slow for that. Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Change-Id: Ic20b62603c58910d86d17afdd9a85e4b049526f1 Reviewed-on: http://git.am.freescale.net:8181/1538 Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: allow MAC change while interface runningMarian Rotariu
Added private flag to net device to let user change the physical address even if the interface is up Signed-off-by: Marian Rotariu <marian.rotariu@freescale.com> Change-Id: I2b07a9e8ac86dae097e69882c4ea372a07899137 Reviewed-on: http://git.am.freescale.net:8181/1537 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: make use of skb_frag_dma_map()Madalin Bucur
Use convenience function to map fragment page. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: If99e0692bddcd50661fb78be089d8f89c720cbca Reviewed-on: http://git.am.freescale.net:8181/1536 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa-eth: Alloc NR_CPUS TX frame queuesCristian Sovaiala
No matter the number of TX frame queues specified in the device tree we allocate one frame queue for each CPU. For a number of frame queues smaller than the number of CPUs, certain queues will be allocated to more than one CPU. For a larger number of frame queues than available CPUs, a number of NR_CPUS frame queues will be used only. Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Ie00aae47d03ffed7d3e0b5e449557ab4c01e3288 Reviewed-on: http://git.am.freescale.net:8181/1535 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Add support for hardware timestampingMadalin Bucur
Add Linux conforming support for hardware timestamping. Minor fixes and comments about the FSL_DPA_1588 code. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I6f9cd77cbe157219cb77e87bb8cfd72bee037261 Reviewed-on: http://git.am.freescale.net:8181/1469 Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Add support for new buffer layout parametersIoana Radulescu
The new chosen node mechanism allows a user to configure some extra per port parameters related to buffer layout. Add support in the ethernet driver to account for these new parameters and the changes in FMD wrapper API. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: I54ef34be7b2ce1b644245816cbf234c8c6d8dcab Reviewed-on: http://git.am.freescale.net:8181/1468 Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Bercaru Cristian-B43982 <cristian.bercaru@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Allow separate buffer layouts per rx/tx portIoana Radulescu
Until now all ports expected the same (hardcoded) buffer layout, where buffer layout means: private data size, presence of parse results, hash results, timestamp. Buffer layout also influences the size of the buffers for private ports. Create a framework for configuring the buffer layout on a per rx/tx port basis. There is no change in functionality at the moment (the same values for buffer layout are kept). Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: I3792b095330575d199f4cbe071de718ae6d45ab1 Reviewed-on: http://git.am.freescale.net:8181/1467 Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18dpaa_eth: Delay buffer pool seeding for private portsIoana Radulescu
Until now, all private ports had to be configured to use the same buffer size, as they all share a common buffer pool. Create the framework for working with different buffer sizes on the private ports; a single, common buffer pool is still used by all private ports. The pool is seeded with buffers large enough to accomodate frames for all private ports. In order to be able to compute the largest needed buffer size, the buffer pool seeding is delayed until the first private interface is raised. Temporarily disable the boot-time ethernet unit test, which requires the use of the common buffer pool. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: I22d40d136e35320b7b4af76e18e53faff7460cbf Reviewed-on: http://git.am.freescale.net:8181/1466 Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-18Patch contains hook to offload FD to ASF instead of skb.Sunil Kumar Kori
Earlier in DPA, hook was given to offload skb to asf. This patch provides a hook to offload a FD to ASF instead of skb. Change-Id: I855dd48c127479ae60d3371d1956ba533d8e4407 Signed-off-by: Sunil Kumar Kori <Sunil.Kori@freescale.com> CR:ENGR00243312 Reviewed-on: http://git.am.freescale.net:8181/1294 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: init two more parameters for the ports.Haiying Wang
We can not leave those parameters un-initialized, otherwise, kernel boot up may pick random values for those two parameters then crash at: " fsl_dpa: dpaa_eth.c:4217:dpa_load() fsl_dpa: FSL DPAA Ethernet driver () cpu0: ! MAJOR FM-SP Error [CPU00, drivers/net/ethernet/freescale/fman/ Peripherals/FM/SP/fm_sp.c:403 FmSpCheckBufMargins]: Invalid Value; " Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Change-Id: I86aabcaf7a895b020456e3a01aff19425b03a17d Reviewed-on: http://git.am.freescale.net:8181/1404 Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: 64 instead of 32 bit NIC countersBogdan Hamciuc
Change the data type of several fields used in network interface statistics. 'dpa_get_stats64' replaces 'dpa_get_stats' and 'u64' replaces 'u32'. Use a new function for calculating statistics. 'dpa_get_stats64' replaces 'dpa_get_stats'. Signed-off-by: Cristian Bercaru <cristian.bercaru@freescale.com> Change-Id: I580a531315067b73692ec2a21e0f78552c8da381 Reviewed-on: http://git.am.freescale.net:8181/1401 Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Switch compile default to "termination"Bogdan Hamciuc
Switch the default compile option from "optimize for ipfwd" to "optimize for termination". Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Change-Id: I37b9b867b2f9787eb4a56a8005e198a2fb6430cc Reviewed-on: http://git.am.freescale.net:8181/1400 Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Add support for the new netdev features frameworkIoana Radulescu
Kernel 3.8 brings a new way of organizing the netdev features (feature sets include hardware features, currently enabled features, vlan features and wanted features). Some ethtool ops also replaced by a set of new ndo's. Update the DPAA Ethernet driver to account for these changes. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: I073920040f9c92665773cac5fb30d305320699be Reviewed-on: http://git.am.freescale.net:8181/1399 Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa: Eliminate unused variableBogdan Hamciuc
commit be7eb995 dpaa_eth: Update PR processing routine on Rx path leaves an unitialized variable which triggers a compiler warning. Eliminating the unnecessary declaration. To avoid resubmitting the whole set of patches after that one, I'm adding this fix. *** Please squash this with "commit be7eb995 *** dpaa_eth: Update PR processing routine on Rx path" *** Change-Id: Id9d99a2b9ec53d87560d5367a22c1f1c67aa5b39 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1289 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Remove obsolete compile-time warningsBogdan Hamciuc
Eliminate a couple of #warning directives that are no longer useful. Change-Id: Ifafe15f50a7eaa031f0b0a87a8655ccf1ee4b1e7 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1283 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Add NETIF_F_LLTX to standard capability setBogdan Hamciuc
The "lockless tx" capability, although flagged as deprecated, was deemed closer to upstreamability than our previous NETIF_F_HW_QDISC (meanwhile moved under ASF config). This has shown no performance impact whatsoever, at least in termination/netperf tests. Change-Id: I0294f0f105e56cc00cb957c23a3a6c6d3acc8d6f Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1282 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Remove NETIF_F_HW_QDISC from standard capability setBogdan Hamciuc
Due to opposition from the kernel netdevs, unstaging the Hw Qdisc as a standard capability and moving it to ASF instead. Change-Id: I79592b273eac12650d6dab1662a5901725a9c5a9 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1281 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: MTU checking is not necessary for IP Reassembled framesCristian Sovaiala
Do not limit IP Reassembled frames to MTU size. Change-Id: I8ec3ca5e23165d7ee6397935dff26c7a18903fef Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1280 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16dpaa_eth: Update PR processing routine on Rx pathIoana Radulescu
Make several changes to the logic of the parse results processing function on the Rx path. Currently all frames with a parser header error are received on the error frame queue, so the processing of PR on the default rx path doesn't need to check for header errors. Remove both the checks and a counter that was supposed to count frames with an invalid L4 header. Change-Id: Ibe7eb9957e1a0c78abf8445f758067340b48cd86 Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1279 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16powerpc/dpaa_1588: add sysfs support for ptp 1588Shengzhou Liu
The dpaa 1588 can be disabled/enabled via sysfs in runtime. By default, the dpaa 1588 is disabled, that means no 1588 action activated during the processing of ethernet frames. To enable 1588: echo 1 > /sys/devices/<DIR>/fmx-gby/ptp_1588 To disable 1588: echo 0 > /sys/devices/<DIR>/fmx-gby/ptp_1588 Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Change-Id: I9f21f47c1f5eeb7b5f05e43e2ec6fe41fa3e697f Reviewed-on: http://git.am.freescale.net:8181/1150 Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-16powerpc/dpaa_1588: optimization for 1588 performanceShengzhou Liu
In case of overloading the slaves, the performace will get worse since there are more and more outdated timestamps accumulated in Tx buffer, so we introduce a way to remove those older timestamps between the current matched one and the tail if they are more than TS_ACCUMULATION_THRESHOLD. In addition, we update the buffer size to 256 which is enough according to stress tests. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Change-Id: I761dcabf71f27d47627ca835daf28562bfa37319 Reviewed-on: http://git.am.freescale.net:8181/1146 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa: Fix dependencies for FMAN and DPAA EthernetAndy Fleming
BMAN and QMAN are merged, and both the DPAA Ethernet and FMAN drivers require the QMAN/BMAN support to build. We therefore note that dependency in the Kconfigs. Change-Id: I7eda3375ca0e9e760cd7650be08c9b41acaac9af Signed-off-by: Andy Fleming <afleming@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1112 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Remove __devinit, __devexit macrosBogdan Hamciuc
They are no longer supported in the latest kernel. Change-Id: I08b7a5bbe8738d22330d4a175e941627ce1b5172 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 7191ab1792435bc581f17f1d4259b9c51c4fda9) Reviewed-on: http://git.am.freescale.net:8181/1062 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Remove cpu_printk leftoverBogdan Hamciuc
Unused macro, left behind by a large refactorization patch. Change-Id: Id76102ee3bbf7993a79094055c0ccea7eb833997 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1061 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Linearize skbs with at least 16 fragsBogdan Hamciuc
Egress skbuffs can have up to (at least) 18 frags, a value which FMan does not support. So far we hadn't hit such a test case and we overlooked the problem. But netperf with TCP_SENDFILE and a - rather artificial, yet legal - "-m 18" option generates fragmented traffic with more than 16 fragments, causing problems on the egress (Tx, Tx Confirm) leg. We must therefore linearize outgoing skbuffs which are more fragmented than we can handle. Code rearrangements attempt to compensate the slight performance impact of the newly-added conditionals. So far, TCP tests with the "-m" flag are the only known case of heavy fragmentation given our supported MTU range (<=9578), so this patch is unlikely to cause performance issues in our benchmarks. Change-Id: I28ef9f037f7f183c5bd74a466a516b96cb45ed60 Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit eeb6f4ca9037752e834c3eb0f6b0521c13dcfa89) Reviewed-on: http://git.am.freescale.net:8181/1060 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Use standard printing APIBogdan Hamciuc
Replace dpaa_eth_*() and cpu_**() macros with standard printing calls. Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 1dc1a7386b52b0249d6a5396e547119f1a83151f) Conflicts: drivers/net/ethernet/freescale/dpa/dpa-ethtool.c Change-Id: I5fc6cd3532c2fd39e72ac0531a85fdef028bb967 Reviewed-on: http://git.am.freescale.net:8181/1059 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Optimize buffer allocation codeBogdan Hamciuc
Reduce the code size and number of jumps generated for dpa_bp_add_8_pages(), which is one of the hottest functions on the Rx data path. Remove dependency on per_cpu_ptr of dpaaa_eth_refill_bpools(), by splitting it into a "this_cpu_ptr" hot function and a "per_cpu_ptr" cold function wrapper. Change-Id: If1bf9a29e9c43bf2345a36488f15846b1481a095 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 345457577cf48216ffe6e883c7792f5496734b41) Reviewed-on: http://git.am.freescale.net:8181/1058 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Simplify access to percpu_priv statsBogdan Hamciuc
Factor out percpu_priv->stats to simplify the code a bit. So far, this change only affects the private data paths (i.e. not shared or MAC-less). Change-Id: I63996b807d27bf68cd155a1eb7015289bc6e202b Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit a8b17bcc074f5e39b6ebfc2ca857a2e541e760ec) Reviewed-on: http://git.am.freescale.net:8181/1057 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Replace per_cpu_ptr with __this_cpu_ptrBogdan Hamciuc
In many contexts, per_cpu_ptr() was used with smp_processor_id(), which made it a good candidate for replacement with this_cpu_ptr(). Of those, some more contexts were non-migratable, further making them candidates for replacement with __this_cpu_ptr(). Change-Id: I0a4702f3d5ddc8de3980de6ee39c044b33fd5722 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 69a055f4a10e85cf6a207e2ee407f95bfd321a53) Reviewed-on: http://git.am.freescale.net:8181/1056 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Add FQ taildrop threshold for mac-less devicesCristian Sovaiala
FQ taildrop threshold is set by each partition on its RX frame queues which are the TX queues of the other partition. It is safe to rely on one partition to set the FQ taildrop threshold on behalf of the other partition because the ERN notifications will be delivered to the portal enqueueing the frames. Change-Id: I6a3ab6511a7e2bbe293cc68ddae4d17e075cf4fa Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> (cherry picked from commit 1c20f0e8cb943f31eb2ad8c626a4c9fd9c8421b6) Reviewed-on: http://git.am.freescale.net:8181/1055 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Remove congestion group initialization for mac-less interfacesCristian Sovaiala
MAC-less devices initialize their own RX frame queues, assuming that the TX queues will be initialized by the other partition. We cannot rely on the second partition to place the TX queues of the first partition into congestion groups because the congestion interrupt will then be received by the second partition instead of the partition enqueueing the frames (in this case the first partition). Supporting congestion on MAC-less devices would involve too much code and device tree changes so we simply use taildrop mechanism for now. Change-Id: I91f9f65a1197f0bacf6193e2515681f6ee0e43c1 Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> (cherry picked from commit 541a17db5a2a0d17d9548eae67492ed6c2d0b736) Reviewed-on: http://git.am.freescale.net:8181/1054 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Add recycling support in dpa unit test for FmanV3 platformsCristian Sovaiala
Due to recycling mechanism on FmanV3, there were many "TX Packet never arrived" messages printed in the console issued because the Qman DQRR polling was not dequeueing the frames from the recycling queues. We added support for recycling inside the dpa unit test. Also, we are counting the "TX Packet never arrived" as failed tests. Change-Id: I6e83d221217c1c801c0c5cf9138f45d35a8e6029 Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> (cherry picked from commit 9a2967d86589858a10df19d4a9b127802b4daca7) Reviewed-on: http://git.am.freescale.net:8181/1053 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Put TxConf FQs in the default pool channelBogdan Hamciuc
Up until now, each Tx Confirmation FQ would stay in the dedicated channel of the CPU "owning" its peer Tx FQ. Although that boosts L2 statistics, in the end the Rx endpoint has to spend more time in Rx softirqs, thereby starving the userspace application listening on a UDP socket. So in our non-preemptible, default kernel configuration, more was in fact less, because the L4 throughput ("the goodput") was lower. By moving the Tx Confirmation FQs into the default pool channel, we get slightly lower L2 performance, but better L4 figures. This is especially the case for "power-deprived" configurations, such as 4-core setups with small-sized UDP traffic. Change-Id: I9b927ad35aa4570cca9827f1eb92b59f744173fb Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 7b732de9d8c2bb847a190d36886e6cfec0a8cfe6) Reviewed-on: http://git.am.freescale.net:8181/1052 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Fix buffer recycling for FMANv3Ioana Radulescu
On FMANv3 the decision to either confirm a frame or have the Tx frame buffers freed by FMan can only be made on a per-FQ basis (as opposed to FMANv2, where this could be decided for each frame). In order to accomodate this, create for each ordinary Tx queue a "shadow" Tx recycle queue where only frames that need to be recycled will be enqueued; frames for which we expect confirmation will still be sent on the ordinary Tx queues. Code is compiled in only for FMan v3 platforms, and only if "Optimized for forwarding" option has been chosen in Kconfig. Change-Id: I26297f91d409a6bf5f79d63f900a15a104bb8a48 Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> (cherry picked from commit 436244af5b0a3e31daeb31a232060f9ad61ec404) Reviewed-on: http://git.am.freescale.net:8181/1051 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Hotfix for cpu_printk() in preemptible contextBogdan Hamciuc
cpu_printk() is called, directly or indirectly, from many contexts, not all of them preempt-safe. For instance, invoking ethtool on a non-initialized interface while running PREEMPT_RT with CONFIG_DEBUG_PREEMPT results in an oops. Temporarily using raw_smp_processor_id() to address this. In the long run, will get rid of the custom printing macros altogether. Change-Id: I6a9db7d19cd84ab5b9613b7abde87e85fe0b73bc Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> (cherry picked from commit dfae81ab1bb804cc335971592242244262bc7b2e) Reviewed-on: http://git.am.freescale.net:8181/1050 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Optionally disable ndo_select_queue in favor of XPSBogdan Hamciuc
The existence of a ndo_select_queue() callback overrides the XPS selection logic on the egress path. Provide a Kconfig choice of disabling this callback, to allow the standard XPS selection logic and user-controlled FQ-to-CPU mapping. In addition, if XPS is chosen, use the queue from skb->queue_mapping for transmission. Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit a6320761e50dab577d9668ac0c09bde67aa36585) Conflicts: drivers/net/ethernet/freescale/dpa/dpaa_eth.c Change-Id: Ib0e5919a957975cd9a33d1886b27789ff5abd71f Reviewed-on: http://git.am.freescale.net:8181/1049 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Fix error in sysfsIoana Radulescu
Trying to dump the MAC registers for MACless interfaces resulted in a segmentation fault. Just print a message for the user instead of accessing non-existent regs. Change-Id: I425390fbdf6aa67fa96568a8861576b8706123e7 Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> (cherry picked from commit 86023a9fb24fc56c0e5b9fa76b9ef2ce57f0e013) Reviewed-on: http://git.am.freescale.net:8181/1048 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Remove unused ingress_calls field.Bogdan Hamciuc
There is already the percpu_priv_s->stats->rx_packets field, no need for the extra ingress_calls. Change-Id: If19f4363f710fb4a41369cf9214f5dede7c2c205 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 74a790a00f71f34e1a4425c4a5a843ba57d2103f) Reviewed-on: http://git.am.freescale.net:8181/1047 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: Remove unused start_tx fieldBogdan Hamciuc
Remove a field needlessly accessed on the egress fastpath. Change-Id: I7fecdacbd46e41eca5285e8fa55cce5a109eb5b9 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 910edee35b1fc5eaf934b820f0fa3b3a5a06d64b) Reviewed-on: http://git.am.freescale.net:8181/1046 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
2013-04-08dpaa_eth: No longer set netdev->last_rxBogdan Hamciuc
The documentation of the net_device->last_rx field advises against the driver setting it, unless there is an explicit reason to do so. Change-Id: Ic8cd480eeae2cbf42d6ddb09e99bcf2912cad84c Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> (cherry picked from commit 327cdbc91f173c3866a1ef5c83daab852d630c9c) Reviewed-on: http://git.am.freescale.net:8181/1045 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>