diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-05-09 17:46:54 -0400 |
---|---|---|
committer | Stephen Hemminger <shemminger@osdl.org> | 2006-05-10 17:03:41 -0400 |
commit | f4ea431bb7c4856b930eafca6eb1fb474dae9b40 (patch) | |
tree | bfcbf5d61116abe39bdeda39de20a5e2e7ac5234 /drivers/net | |
parent | 6810b548b25114607e0814612d84125abccc0a4f (diff) |
sky2: ifdown kills irq mask
Bringing down a port also masks off the status and other IRQ's
needed for device to function due to missing paren's.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/sky2.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 227df9876a2c..27da9b75dedc 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -122,6 +122,7 @@ MODULE_DEVICE_TABLE(pci, sky2_id_table); | |||
122 | /* Avoid conditionals by using array */ | 122 | /* Avoid conditionals by using array */ |
123 | static const unsigned txqaddr[] = { Q_XA1, Q_XA2 }; | 123 | static const unsigned txqaddr[] = { Q_XA1, Q_XA2 }; |
124 | static const unsigned rxqaddr[] = { Q_R1, Q_R2 }; | 124 | static const unsigned rxqaddr[] = { Q_R1, Q_R2 }; |
125 | static const u32 portirq_msk[] = { Y2_IS_PORT_1, Y2_IS_PORT_2 }; | ||
125 | 126 | ||
126 | /* This driver supports yukon2 chipset only */ | 127 | /* This driver supports yukon2 chipset only */ |
127 | static const char *yukon2_name[] = { | 128 | static const char *yukon2_name[] = { |
@@ -1050,7 +1051,7 @@ static int sky2_up(struct net_device *dev) | |||
1050 | 1051 | ||
1051 | /* Enable interrupts from phy/mac for port */ | 1052 | /* Enable interrupts from phy/mac for port */ |
1052 | imask = sky2_read32(hw, B0_IMSK); | 1053 | imask = sky2_read32(hw, B0_IMSK); |
1053 | imask |= (port == 0) ? Y2_IS_PORT_1 : Y2_IS_PORT_2; | 1054 | imask |= portirq_msk[port]; |
1054 | sky2_write32(hw, B0_IMSK, imask); | 1055 | sky2_write32(hw, B0_IMSK, imask); |
1055 | 1056 | ||
1056 | return 0; | 1057 | return 0; |
@@ -1401,7 +1402,7 @@ static int sky2_down(struct net_device *dev) | |||
1401 | 1402 | ||
1402 | /* Disable port IRQ */ | 1403 | /* Disable port IRQ */ |
1403 | imask = sky2_read32(hw, B0_IMSK); | 1404 | imask = sky2_read32(hw, B0_IMSK); |
1404 | imask &= ~(sky2->port == 0) ? Y2_IS_PORT_1 : Y2_IS_PORT_2; | 1405 | imask &= ~portirq_msk[port]; |
1405 | sky2_write32(hw, B0_IMSK, imask); | 1406 | sky2_write32(hw, B0_IMSK, imask); |
1406 | 1407 | ||
1407 | /* turn off LED's */ | 1408 | /* turn off LED's */ |