sfc: Extend the legacy interrupt workarounds
authorSteve Hodgson <shodgson@solarflare.com>
Wed, 28 Apr 2010 09:28:27 +0000 (09:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Apr 2010 19:44:35 +0000 (12:44 -0700)
commit41b7e4c3268d9d2056b9c94cceb386649f7b185b
tree706d46fdd10943ba86d4eda2ff210bc506997144
parentb7b40eeb0f76e73503a7e5a98d1353c2e42d9a18
sfc: Extend the legacy interrupt workarounds

Siena has two problems with legacy interrupts:
  1. There is no synchronisation between the ISR read completion,
     and the interrupt deassert message.
  2. A downstream read at the "wrong" moment can return 0, and
     suppress generating the next interrupt.

Falcon should suffer from both of these, and it appears it does.
Enable EFX_WORKAROUND_15783 on Falcon as well.

Also, when we see queues == 0, ensure we always schedule or rearm
every event queue.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/nic.c
drivers/net/sfc/workarounds.h