Skip to content

Commit

Permalink
sky2: ifdown kills irq mask
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Hemminger committed May 10, 2006
1 parent 6810b54 commit f4ea431
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/net/sky2.c
Expand Up @@ -122,6 +122,7 @@ MODULE_DEVICE_TABLE(pci, sky2_id_table);
/* Avoid conditionals by using array */
static const unsigned txqaddr[] = { Q_XA1, Q_XA2 };
static const unsigned rxqaddr[] = { Q_R1, Q_R2 };
static const u32 portirq_msk[] = { Y2_IS_PORT_1, Y2_IS_PORT_2 };

/* This driver supports yukon2 chipset only */
static const char *yukon2_name[] = {
Expand Down Expand Up @@ -1050,7 +1051,7 @@ static int sky2_up(struct net_device *dev)

/* Enable interrupts from phy/mac for port */
imask = sky2_read32(hw, B0_IMSK);
imask |= (port == 0) ? Y2_IS_PORT_1 : Y2_IS_PORT_2;
imask |= portirq_msk[port];
sky2_write32(hw, B0_IMSK, imask);

return 0;
Expand Down Expand Up @@ -1401,7 +1402,7 @@ static int sky2_down(struct net_device *dev)

/* Disable port IRQ */
imask = sky2_read32(hw, B0_IMSK);
imask &= ~(sky2->port == 0) ? Y2_IS_PORT_1 : Y2_IS_PORT_2;
imask &= ~portirq_msk[port];
sky2_write32(hw, B0_IMSK, imask);

/* turn off LED's */
Expand Down

0 comments on commit f4ea431

Please sign in to comment.