alistair23-linux/drivers/net/ethernet/sfc
Edward Cree de1deff994 sfc: allow PIO more often
If an option descriptor has been sent on a queue but not followed by a
 packet, there will have been no completion event, so the read and write
 counts won't match and we'll think we can't do PIO.  This combines with
 the fact that we have two TX queues (for en/disable checksum offload),
 and that both must be empty for PIO to happen.
This patch adds a separate "packet_write_count" that tracks the most
 recent write_count we expect to see a completion event for; this excludes
 option descriptors but _includes_ PIO descriptors (even though they look
 like option descriptors).  This is then used, rather than write_count,
 in efx_nic_tx_is_empty().
We only bother to maintain packet_write_count on EF10, since on Siena
 (a) there are no option descriptors and it always equals write_count, and
 (b) there's no PIO, so we don't need it anyway.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-16 14:00:46 -05:00
..
falcon net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
bitfield.h
ef10.c sfc: allow PIO more often 2017-01-16 14:00:46 -05:00
ef10_regs.h
ef10_sriov.c sfc: Replace memset with eth_zero_addr 2017-01-16 11:46:54 -05:00
ef10_sriov.h sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
efx.c sfc: efx_get_phys_port_id() can be static 2017-01-11 16:12:01 -05:00
efx.h
enum.h sfc: remove RESET_TYPE_RX_RECOVERY 2016-12-01 15:39:38 -05:00
ethtool.c sfc: don't report RX hash keys to ethtool when RSS wasn't enabled 2017-01-04 14:18:19 -05:00
farch.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
farch_regs.h
filter.h
io.h
Kconfig ethernet: sfc: Add Kconfig entry for vendor Solarflare 2016-12-20 14:19:38 -05:00
Makefile
mcdi.c
mcdi.h sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
mcdi_mon.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
mcdi_pcol.h
mcdi_port.c net: sfc: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
mtd.c
net_driver.h sfc: allow PIO more often 2017-01-16 14:00:46 -05:00
nic.c
nic.h sfc: allow PIO more often 2017-01-16 14:00:46 -05:00
ptp.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
rx.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
selftest.c
selftest.h
siena.c sfc: allow PIO more often 2017-01-16 14:00:46 -05:00
siena_sriov.c
siena_sriov.h
sriov.c sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
sriov.h sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
tx.c sfc: allow PIO more often 2017-01-16 14:00:46 -05:00
tx.h
tx_tso.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
vfdi.h
workarounds.h