linux/drivers/net/ethernet/ti
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
..
cpmac.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-10 16:21:55 -05:00
cpsw_ale.c net: cpsw: remove two unused global functions 2015-05-25 18:19:09 -04:00
cpsw_ale.h net: cpsw: remove two unused global functions 2015-05-25 18:19:09 -04:00
cpsw-common.c net: cpsw: Fix ethernet regression for dm814x 2015-11-20 10:46:33 -05:00
cpsw-phy-sel.c drivers: net: cpsw-phy-sel: Clear RGMII_IDMODE on "rgmii" links 2016-12-07 13:12:17 -05:00
cpsw.c net: ethernet: ti: cpsw: add support for ringparam configuration 2017-01-07 20:48:14 -05:00
cpsw.h net: ethernet: ti: cpts: move dt props parsing to cpts driver 2016-12-07 11:13:48 -05:00
cpts.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
cpts.h net: ethernet: ti: cpts: fix overflow check period 2016-12-07 11:13:48 -05:00
davinci_cpdma.c net: ethernet: ti: cpsw: add support for ringparam configuration 2017-01-07 20:48:14 -05:00
davinci_cpdma.h net: ethernet: ti: cpsw: add support for ringparam configuration 2017-01-07 20:48:14 -05:00
davinci_emac.c net: ethernet: ti: davinci_emac: fix fixed-link phydev and of-node leaks 2016-11-29 23:17:02 -05:00
davinci_mdio.c drivers: net: davinci_mdio: enable pm runtime auto for ti cpsw-mdio 2016-06-28 08:57:19 -04:00
Kconfig 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
Makefile net: ethernet: ti: allow cpts to be built separately 2016-12-07 11:13:46 -05:00
netcp_core.c net: ethernet: ti: netcp: add support of cpts 2016-12-10 23:31:19 -05:00
netcp_ethss.c net: netcp: ethss: fix 10gbe host port tx pri map configuration 2016-12-20 14:07:17 -05:00
netcp_sgmii.c net: netcp: Fixes SGMII reset on network interface shutdown 2015-07-27 01:14:26 -07:00
netcp_xgbepcsr.c net: netcp: Enhance GBE driver to support 10G Ethernet 2015-01-19 15:07:39 -05:00
netcp.h net: ethernet: ti: netcp: add support of cpts 2016-12-10 23:31:19 -05:00
tlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-10-14 10:00:27 -04:00
tlan.h tlan: Don't scream if no link 2014-07-07 17:06:52 -07:00