aboutsummaryrefslogtreecommitdiff
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2005-05-18 22:46:34 -0700
committerDavid S. Miller <davem@davemloft.net>2005-05-18 22:46:34 -0700
commitfac9b83ea79aa3112ed245d9a4fc2a5c3ec2b7ec (patch)
tree14749e6e5e0abdfb707b41dad714e36246e6cff8 /drivers/infiniband
parent05d3794aa8bd3b2c9f7920a05003c331cdeb75c5 (diff)
[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>
Diffstat (limited to 'drivers/infiniband')
0 files changed, 0 insertions, 0 deletions