OpenCloudOS-Kernel/drivers/net/ethernet
Grygorii Strashko be034fc140 net: ethernet: ti: cpsw: add support for ringparam configuration
The CPDMA uses one pool of descriptors for both RX and TX which by default
split between all channels proportionally depending on total number of
CPDMA channels and number of TX and RX channels. As result, more
descriptors will be consumed by TX path if there are more TX channels and
there is no way now to dedicate more descriptors for RX path.

So, add the ability to re-split CPDMA pool of descriptors between RX and TX
path via ethtool '-G' command wich will allow to configure and fix number
of descriptors used by RX and TX path, which, then, will be split between
RX/TX channels proportionally depending on RX/TX channels number and
weight. ethtool '-G' command will accept only number of RX entries and rest
of descriptors will be arranged for TX automatically.

Command:
  ethtool -G <devname> rx <number of descriptors>

defaults and limitations:
- minimum number of rx descriptors is 10% of total number of descriptors in
  CPDMA pool
- maximum number of rx descriptors is 90% of total number of descriptors in
  CPDMA pool
- by default, descriptors will be split equally between RX/TX path
- any values passed in "tx" parameter will be ignored

Usage:

 # ethtool -g eth0
	Pre-set maximums:
	RX:             7372
	RX Mini:        0
	RX Jumbo:       0
	TX:             0
	Current hardware settings:
	RX:             4096
	RX Mini:        0
	RX Jumbo:       0
	TX:             4096

 # ethtool -G eth0 rx 7372
 # ethtool -g eth0
	Ring parameters for eth0:
	Pre-set maximums:
	RX:             7372
	RX Mini:        0
	RX Jumbo:       0
	TX:             0
	Current hardware settings:
	RX:             7372
	RX Mini:        0
	RX Jumbo:       0
	TX:             820

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-07 20:48:14 -05:00
..
3com net: 3com: typhoon: typhoon_init_one: make return values more specific 2016-12-30 15:26:22 -05:00
8390 Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
adaptec Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
adi Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 19:56:15 -08:00
aeroflex net: phy: expose phy_aneg_done API for use by drivers 2016-11-13 00:56:26 -05:00
agere ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
alacritech Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
allwinner net: ethernet: sun4i-emac: Read rxhdr in CPU byte-order 2016-11-15 22:05:54 -05:00
alteon Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
altera Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
amazon net: ena: use setup_timer() and mod_timer() 2016-10-26 17:21:59 -04:00
amd clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
apm net: xgene: avoid bogus maybe-uninitialized warning 2016-12-08 21:30:54 -05:00
apple net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
arc net: arc_emac: add dependencies on associated arches and compile test 2016-11-29 18:57:36 -05:00
atheros Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
aurora Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
brocade bna: use designated initializers 2016-12-17 11:56:57 -05:00
cadence net: macb: Updated resource allocation function calls to new version of API. 2017-01-03 09:35:42 -05:00
calxeda net: calxeda: xgmac: use new api ethtool_{get|set}_link_ksettings 2016-12-05 15:34:33 -05:00
cavium liquidio: fix wrong information about channels reported to ethtool 2017-01-06 15:44:19 -05:00
chelsio cxgb4: Add port description for new cards. 2017-01-06 16:23:40 -05:00
cirrus net: cirrus: ep93xx: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
cisco enic: set skb->hash type properly 2016-11-02 15:32:53 -04:00
davicom net: davicom: dm9000: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
dec net: dec: winbond-840: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
dlink net: dlink: sundance: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
ezchip net: nps_enet: Fix module autoload 2016-10-17 13:03:02 -04:00
faraday net: faraday: ftmac100: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
fujitsu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hisilicon net: hix5hd2_gmac: fix compatible strings name 2016-12-20 14:12:29 -05:00
hp net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
i825xx net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
ibm Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
intel igb: Fix hw_dbg logging in igb_update_flash_i210 2017-01-06 02:23:22 -08:00
marvell ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
mediatek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
mellanox Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
micrel ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
microchip encx24j600: Fix some checkstyle warnings 2016-12-16 13:31:47 -05:00
moxa net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
myricom myri10ge: fix typo in parameter description 2016-10-20 14:47:53 -04:00
natsemi Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
neterion ethernet/neterion: use core min/max MTU checking 2016-10-18 11:34:20 -04:00
netronome bpf: xdp: Allow head adjustment in XDP prog 2016-12-08 14:25:13 -05:00
nuvoton net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
nvidia ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
nxp net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
oki-semi ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
packetengines Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pasemi ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
qlogic qed*: Advance driver versions to 8.10.10.20. 2017-01-01 21:02:14 -05:00
qualcomm net: qcom/emac: don't try to claim clocks on ACPI systems 2016-12-17 10:22:14 -05:00
rdc r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected 2016-12-17 21:35:12 -05:00
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-27 16:04:37 -08:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
rocker ipv4: fib: Replay events when registering FIB notifier 2016-12-03 19:29:35 -05:00
samsung Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 19:56:15 -08:00
seeq net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
sfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
sgi Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
silan net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
sis Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
smsc Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-05 11:03:07 -05:00
sun Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
synopsys Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
tehuti ethernet: use core min/max MTU checking 2016-10-18 11:34:22 -04:00
ti net: ethernet: ti: cpsw: add support for ringparam configuration 2017-01-07 20:48:14 -05:00
tile ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
toshiba Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-15 10:54:36 -05:00
tundra net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
via Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
wiznet net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
xilinx net: xilinx: emaclite: Remove xemaclite_remove_ndev() 2017-01-05 11:29:22 -05:00
xircom Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
xscale net: ethernet: ixp4xx_eth: Utilize phy_ethtool_nway_reset 2016-11-15 16:33:35 -05:00
Kconfig ethernet: sfc: Add Kconfig entry for vendor Solarflare 2016-12-20 14:19:38 -05:00
Makefile net: ethernet: slicoss: add slicoss gigabit ethernet driver 2016-12-06 11:24:28 -05:00
dnet.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
dnet.h
ec_bhf.c ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
ethoc.c net: ethoc: Remove unused members from struct ethoc 2017-01-05 11:26:59 -05:00
fealnx.c net: fealnx: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
jme.c ethernet: use net core MTU range checking in more drivers 2016-10-20 14:51:08 -04:00
jme.h
korina.c net: korina: Fix NAPI versus resources freeing 2016-12-26 11:26:16 -05:00
lantiq_etop.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-10 16:21:55 -05:00
netx-eth.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00