linux/drivers/net
David S. Miller fac9b83ea7 [TG3]: Add tagged status support.
When supported, use the TAGGED interrupt processing support
the chip provides.  In this mode, instead of a "on/off" binary
semaphore, an incrementing tag scheme is used to ACK interrupts.

All MSI supporting chips support TAGGED mode, so the tg3_msi()
interrupt handler uses it unconditionally.  This invariant is
verified when MSI support is tested.

Since we can invoke tg3_poll() multiple times per interrupt under
high packet load, we fetch a new copy of the tag value in the
status block right before we actually do the work.

Also, because the tagged status tells the chip exactly which
work we have processed, we can make two optimizations:

1) tg3_restart_ints() need not check tg3_has_work()
2) the tg3_timer() need not poke the chip 10 times per
   second to keep from losing interrupt events

Based upon valuable feedback from Michael Chan <mchan@broadcom.com>

Signed-off-by: David S. Miller <davem@davemloft.net>
2005-05-18 22:46:34 -07:00
..
appletalk [PATCH] make some things static 2005-05-05 16:36:47 -07:00
arcnet [PATCH] make some things static 2005-05-05 16:36:47 -07:00
arm Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bonding Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cris Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e1000 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fec_8xx Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hamradio [PATCH] ISA DMA Kconfig fixes - part 3 2005-05-04 07:33:14 -07:00
ibm_emac [PATCH] {PATCH] Fix IBM EMAC driver ioctl bug 2005-05-15 22:44:26 -04:00
irda [PATCH] ISA DMA Kconfig fixes - part 4 (irda) 2005-05-04 07:33:14 -07:00
ixgb Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcmcia Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sk98lin Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
skfp Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tokenring Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tulip [PATCH] Typo in tulip driver 2005-05-15 23:18:48 -04:00
wan [PATCH] ISA DMA Kconfig fixes - part 3 2005-05-04 07:33:14 -07:00
wireless [PATCH] wireless: 3CRWE154G72 Kconfig help fix 2005-05-16 00:04:29 -04:00
3c59x.c [PATCH] 3c59x: only put the device into D3 when we're actually using WOL 2005-05-05 16:36:40 -07:00
3c501.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c501.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c503.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c503.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c505.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c505.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c507.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c509.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c515.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c523.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c523.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c527.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
3c527.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
7990.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
7990.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
8139cp.c [PATCH] u32 vs. pm_message_t fixes for drivers/net 2005-04-16 15:25:25 -07:00
8139too.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
8390.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
8390.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
82596.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
a2065.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
a2065.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ac3200.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
acenic_firmware.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
acenic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
acenic.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amd8111e.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amd8111e.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
apne.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ariadne.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ariadne.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
at1700.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atari_bionet.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atari_pamsnet.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atarilance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
au1000_eth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
au1000_eth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
b44.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
b44.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bmac.c [PATCH] u32 vs. pm_message_t fixes for drivers/net 2005-04-16 15:25:25 -07:00
bmac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bsd_comp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cs89x0.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cs89x0.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
de600.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
de600.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
de620.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
de620.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
declance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defxx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defxx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
depca.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
depca.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_asstruct.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_bcomm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_es4h.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_ether.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_firmware.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_i82596.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs_plx9060.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dgrs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dl2k.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dl2k.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dummy.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e2100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eepro100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eepro.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eexpress.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eexpress.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
epic100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eql.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
es3210.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eth16i.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ewrk3.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ewrk3.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fealnx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fec.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fec.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fmv18x.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
forcedeth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gianfar_ethtool.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gianfar_phy.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gianfar_phy.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gianfar.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gianfar.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gt64240eth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gt96100eth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gt96100eth.h [PATCH] __attribute__ placement fixes 2005-05-01 08:59:09 -07:00
hamachi.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hp100.c [PATCH] hp100: fix card names 2005-05-01 08:58:52 -07:00
hp100.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hp-plus.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hplance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hplance.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hydra.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hydra.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibmlana.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibmlana.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibmveth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibmveth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioc3-eth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
isa-skeleton.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iseries_veth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iseries_veth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jazzsonic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] ISA DMA Kconfig fixes - part 3 2005-05-04 07:33:14 -07:00
lance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lasi_82596.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
LICENSE.SRC Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lne390.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
loopback.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
lp486e.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mac89x0.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mac8390.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mace.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mace.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
macmace.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
macsonic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] drivers/net/wireless enabled by wrong option 2005-05-15 22:22:32 -04:00
meth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
meth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mii.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mv643xx_eth.c [PATCH] ppc iomem annotations: mv643xx_eth 2005-04-25 07:55:58 -07:00
mv643xx_eth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mvme147.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
myri_code.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
myri_sbus.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
myri_sbus.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
natsemi.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ne2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ne2k-pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ne3210.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ne-h8300.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ne.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
netconsole.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni52.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni52.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni65.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni65.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni5010.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ni5010.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ns83820.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
oaknet.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-skeleton.c [PATCH] u32 vs. pm_message_t fixes for drivers/net 2005-04-16 15:25:25 -07:00
pcnet32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
plip.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppp_async.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppp_deflate.c [PPP]: remove redundant NULL pointer checks before kfree & vfree 2005-05-03 14:38:09 -07:00
ppp_generic.c [PPP]: remove redundant NULL pointer checks before kfree & vfree 2005-05-03 14:38:09 -07:00
ppp_synctty.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pppoe.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pppox.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
r8169.c [PATCH] Change synchronize_kernel to _rcu and _sched 2005-05-01 08:59:04 -07:00
rrunner.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rrunner.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
s2io-regs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
s2io.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
s2io.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
saa9730.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
saa9730.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sb1000.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sb1250-mac.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
seeq8005.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
seeq8005.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sgiseeq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sgiseeq.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shaper.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sis900.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sis900.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sk_g16.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sk_g16.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sk_mca.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sk_mca.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
slhc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
slip.c [SLIP]: Remove redundant NULL pointer checks prior to kfree 2005-04-24 18:59:30 -07:00
slip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc91x.c [PATCH] u32 vs. pm_message_t fixes for drivers/net 2005-04-16 15:25:25 -07:00
smc91x.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc9194.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc9194.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc-mca.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc-mca.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc-ultra32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smc-ultra.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sonic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sonic.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Space.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
starfire_firmware.pl Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
starfire.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
stnic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sun3_82586.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sun3_82586.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sun3lance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sunbmac.c [SPARC]: module version cleanups 2005-04-24 20:35:20 -07:00
sunbmac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sundance.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sungem_phy.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sungem_phy.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sungem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sungem.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sunhme.c [SPARC]: module version cleanups 2005-04-24 20:35:20 -07:00
sunhme.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sunlance.c [SPARC]: module version cleanups 2005-04-24 20:35:20 -07:00
sunqe.c [SPARC]: module version cleanups 2005-04-24 20:35:20 -07:00
sunqe.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tc35815.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tg3.c [TG3]: Add tagged status support. 2005-05-18 22:46:34 -07:00
tg3.h [TG3]: Add tagged status support. 2005-05-18 22:46:34 -07:00
tlan.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlan.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tun.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
typhoon-firmware.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
typhoon.c [PATCH] u32 vs. pm_message_t fixes for drivers/net 2005-04-16 15:25:25 -07:00
typhoon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
via-rhine.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
via-velocity.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
via-velocity.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
wd.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
yellowfin.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
znet.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
zorro8390.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00