Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184037
b: refs/heads/master
c: ea0f71e
h: refs/heads/master
i:
  184035: 09201b7
v: v3
  • Loading branch information
Mike McCormack authored and David S. Miller committed Feb 13, 2010
1 parent 1839c41 commit bd00011
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 200ac492b3c366346fcabd11897fadbd1a7a6599
refs/heads/master: ea0f71e59c20ea1e413cacfc971e051b3d6c6f64
41 changes: 25 additions & 16 deletions trunk/drivers/net/sky2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1525,16 +1525,16 @@ static void sky2_free_buffers(struct sky2_port *sky2)
sky2->rx_ring = NULL;
}

/* Bring up network interface. */
static int sky2_up(struct net_device *dev)
static void sky2_hw_up(struct sky2_port *sky2)
{
struct sky2_port *sky2 = netdev_priv(dev);
struct sky2_hw *hw = sky2->hw;
unsigned port = sky2->port;
u32 imask, ramsize;
int cap, err;
u32 ramsize;
int cap;
struct net_device *otherdev = hw->dev[sky2->port^1];

tx_init(sky2);

/*
* On dual port PCI-X card, there is an problem where status
* can be received out of order due to split transactions
Expand All @@ -1546,16 +1546,7 @@ static int sky2_up(struct net_device *dev)
cmd = sky2_pci_read16(hw, cap + PCI_X_CMD);
cmd &= ~PCI_X_CMD_MAX_SPLIT;
sky2_pci_write16(hw, cap + PCI_X_CMD, cmd);

}

netif_carrier_off(dev);

err = sky2_alloc_buffers(sky2);
if (err)
goto err_out;

tx_init(sky2);
}

sky2_mac_init(hw, port);

Expand All @@ -1564,7 +1555,7 @@ static int sky2_up(struct net_device *dev)
if (ramsize > 0) {
u32 rxspace;

pr_debug(PFX "%s: ram buffer %dK\n", dev->name, ramsize);
pr_debug(PFX "%s: ram buffer %dK\n", sky2->netdev->name, ramsize);
if (ramsize < 16)
rxspace = ramsize / 2;
else
Expand Down Expand Up @@ -1597,6 +1588,24 @@ static int sky2_up(struct net_device *dev)
#endif

sky2_rx_start(sky2);
}

/* Bring up network interface. */
static int sky2_up(struct net_device *dev)
{
struct sky2_port *sky2 = netdev_priv(dev);
struct sky2_hw *hw = sky2->hw;
unsigned port = sky2->port;
u32 imask;
int err;

netif_carrier_off(dev);

err = sky2_alloc_buffers(sky2);
if (err)
goto err_out;

sky2_hw_up(sky2);

/* Enable interrupts from phy/mac for port */
imask = sky2_read32(hw, B0_IMSK);
Expand Down

0 comments on commit bd00011

Please sign in to comment.