diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2014-11-21 14:10:02 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-21 16:37:13 -0500 |
commit | 6a931423c918633d4d0cda96df042d7e44ad06b0 (patch) | |
tree | fc9bf5ecf70e1de7fe4c4d28e0ae13f376c17479 /drivers/net/fddi/defxx.c | |
parent | fef85fc466ec1f4400a902049a519948f6b40979 (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/defxx.c')
-rw-r--r-- | drivers/net/fddi/defxx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c index 75d54ea72c5..d057d9c2cf5 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) */ |