]> 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)
commitdc63a8647519910d95e5ec6b913aaadbf86083b2
tree2be284741c04e285cc42a11b2a021c045bc44bd5
parent2ea66157da3f8c2b434c63be0d220380f41f330b
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