summaryrefslogtreecommitdiff
path: root/drivers/net/fddi
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2014-11-21 14:10:02 +0000
committerDavid S. Miller <davem@davemloft.net>2014-11-21 16:37:13 -0500
commit6a931423c918633d4d0cda96df042d7e44ad06b0 (patch)
treefc9bf5ecf70e1de7fe4c4d28e0ae13f376c17479 /drivers/net/fddi
parentfef85fc466ec1f4400a902049a519948f6b40979 (diff)
defxx: Disable DEFEA's ESIC I/O decoding on shutdown
Make sure the option card does not respond after shutdown by disabling it via ESIC's Expansion Board Control register. Also disable memory and port I/O decoders, the latter in particular to disable slot-specific I/O decoding that otherwise remains active even in the board is disabled. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/fddi')
-rw-r--r--drivers/net/fddi/defxx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c
index 75d54ea72c56..d057d9c2cf5e 100644
--- a/drivers/net/fddi/defxx.c
+++ b/drivers/net/fddi/defxx.c
@@ -856,6 +856,12 @@ static void dfx_bus_uninit(struct net_device *dev)
val = inb(base_addr + PI_ESIC_K_IO_CONFIG_STAT_0);
val &= ~PI_CONFIG_STAT_0_M_INT_ENB;
outb(val, base_addr + PI_ESIC_K_IO_CONFIG_STAT_0);
+
+ /* Disable the board. */
+ outb(0, base_addr + PI_ESIC_K_SLOT_CNTRL);
+
+ /* Disable memory and port decoders. */
+ outb(0, base_addr + PI_ESIC_K_FUNCTION_CNTRL);
}
if (dfx_bus_pci) {
/* Disable interrupts at PCI bus interface chip (PFI) */