diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2014-11-21 09:10:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-21 16:37:13 -0500 |
commit | 6a931423c918633d4d0cda96df042d7e44ad06b0 (patch) | |
tree | fc9bf5ecf70e1de7fe4c4d28e0ae13f376c17479 | |
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>
-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 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) | |||
856 | val = inb(base_addr + PI_ESIC_K_IO_CONFIG_STAT_0); | 856 | val = inb(base_addr + PI_ESIC_K_IO_CONFIG_STAT_0); |
857 | val &= ~PI_CONFIG_STAT_0_M_INT_ENB; | 857 | val &= ~PI_CONFIG_STAT_0_M_INT_ENB; |
858 | outb(val, base_addr + PI_ESIC_K_IO_CONFIG_STAT_0); | 858 | outb(val, base_addr + PI_ESIC_K_IO_CONFIG_STAT_0); |
859 | |||
860 | /* Disable the board. */ | ||
861 | outb(0, base_addr + PI_ESIC_K_SLOT_CNTRL); | ||
862 | |||
863 | /* Disable memory and port decoders. */ | ||
864 | outb(0, base_addr + PI_ESIC_K_FUNCTION_CNTRL); | ||
859 | } | 865 | } |
860 | if (dfx_bus_pci) { | 866 | if (dfx_bus_pci) { |
861 | /* Disable interrupts at PCI bus interface chip (PFI) */ | 867 | /* Disable interrupts at PCI bus interface chip (PFI) */ |