]> git.baikalelectronics.ru Git - kernel.git/commit
gianfar: Implement PAUSE frame generation support
authorMatei Pavaluca <matei.pavaluca@freescale.com>
Mon, 27 Oct 2014 08:42:44 +0000 (10:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 Oct 2014 18:33:16 +0000 (14:33 -0400)
commit08106a6fef543d3f7f41e7089815a15987fcfd49
tree2be284741c04e285cc42a11b2a021c045bc44bd5
parentf0b22d5f7bff6af31cde46e479b3018377ac21da
gianfar: Implement PAUSE frame generation support

The hardware can automatically generate pause frames when the number
of free buffers drops under a certain threshold, but in order to do this,
the address of the last free buffer needs to be written to a specific
register for each RX queue.

This has to be done in 'gfar_clean_rx_ring' which is called for each
RX queue. In order not to impact performance, by adding a register write
for each incoming packet, this operation is done only when the PAUSE frame
transmission is enabled.

Whenever the link is readjusted, this capability is turned on or off.

Signed-off-by: Matei Pavaluca <matei.pavaluca@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/freescale/gianfar.h
drivers/net/ethernet/freescale/gianfar_ethtool.c