sfc: Fix mapping of reset reasons and flags to methods
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 24 Jun 2011 19:50:07 +0000 (20:50 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Fri, 24 Jun 2011 23:43:48 +0000 (00:43 +0100)
commit0e2a9c7cb941db993f481cdd6a99d70a302053e0
tree1b71555f2b37dfcc10d7471c96a3de56293a1f84
parenta7d529ae2158b5300e4aa16c21f1828bc864449b
sfc: Fix mapping of reset reasons and flags to methods

There are certain hardware bugs that may occur on Falcon during normal
operation, that require a reset to recover from.  We try to minimise
disruption by keeping the PHY running, following a reset sequence
labelled as 'invisible'.

Siena does not suffer from these hardware bugs, so we have not
implemented an 'invisible' reset sequence.  However, if a similar
error does occur (due to a hardware fault or software bug) then the
code shared with Falcon will wrongly assume that the PHY is not being
reset.

Since the mapping of reset reasons (internal) and flags (ethtool) to
methods must differ significantly between NIC types, move it into
per-NIC-type functions (replacing the insufficient reset_world_flags
field).

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/sfc/efx.c
drivers/net/sfc/ethtool.c
drivers/net/sfc/falcon.c
drivers/net/sfc/net_driver.h
drivers/net/sfc/siena.c