Commit 78aea4fc authored by Szymon Janc's avatar Szymon Janc Committed by David S. Miller

forcedeth: fix multiple code style issues

Signed-off-by: default avatarSzymon Janc <szymon@janc.net.pl>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 47c05314
...@@ -368,8 +368,8 @@ struct ring_desc_ex { ...@@ -368,8 +368,8 @@ struct ring_desc_ex {
}; };
union ring_type { union ring_type {
struct ring_desc* orig; struct ring_desc *orig;
struct ring_desc_ex* ex; struct ring_desc_ex *ex;
}; };
#define FLAG_MASK_V1 0xffff0000 #define FLAG_MASK_V1 0xffff0000
...@@ -717,7 +717,7 @@ static const struct register_test nv_registers_test[] = { ...@@ -717,7 +717,7 @@ static const struct register_test nv_registers_test[] = {
{ NvRegMulticastAddrA, 0xffffffff }, { NvRegMulticastAddrA, 0xffffffff },
{ NvRegTxWatermark, 0x0ff }, { NvRegTxWatermark, 0x0ff },
{ NvRegWakeUpFlags, 0x07777 }, { NvRegWakeUpFlags, 0x07777 },
{ 0,0 } { 0, 0 }
}; };
struct nv_skb_map { struct nv_skb_map {
...@@ -911,7 +911,7 @@ static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED; ...@@ -911,7 +911,7 @@ static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED;
* Power down phy when interface is down (persists through reboot; * Power down phy when interface is down (persists through reboot;
* older Linux and other OSes may not power it up again) * older Linux and other OSes may not power it up again)
*/ */
static int phy_power_down = 0; static int phy_power_down;
static inline struct fe_priv *get_nvpriv(struct net_device *dev) static inline struct fe_priv *get_nvpriv(struct net_device *dev)
{ {
...@@ -984,12 +984,10 @@ static void setup_hw_rings(struct net_device *dev, int rxtx_flags) ...@@ -984,12 +984,10 @@ static void setup_hw_rings(struct net_device *dev, int rxtx_flags)
u8 __iomem *base = get_hwbase(dev); u8 __iomem *base = get_hwbase(dev);
if (!nv_optimized(np)) { if (!nv_optimized(np)) {
if (rxtx_flags & NV_SETUP_RX_RING) { if (rxtx_flags & NV_SETUP_RX_RING)
writel(dma_low(np->ring_addr), base + NvRegRxRingPhysAddr); writel(dma_low(np->ring_addr), base + NvRegRxRingPhysAddr);
} if (rxtx_flags & NV_SETUP_TX_RING)
if (rxtx_flags & NV_SETUP_TX_RING) {
writel(dma_low(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc)), base + NvRegTxRingPhysAddr); writel(dma_low(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc)), base + NvRegTxRingPhysAddr);
}
} else { } else {
if (rxtx_flags & NV_SETUP_RX_RING) { if (rxtx_flags & NV_SETUP_RX_RING) {
writel(dma_low(np->ring_addr), base + NvRegRxRingPhysAddr); writel(dma_low(np->ring_addr), base + NvRegRxRingPhysAddr);
...@@ -1174,9 +1172,8 @@ static int phy_reset(struct net_device *dev, u32 bmcr_setup) ...@@ -1174,9 +1172,8 @@ static int phy_reset(struct net_device *dev, u32 bmcr_setup)
unsigned int tries = 0; unsigned int tries = 0;
miicontrol = BMCR_RESET | bmcr_setup; miicontrol = BMCR_RESET | bmcr_setup;
if (mii_rw(dev, np->phyaddr, MII_BMCR, miicontrol)) { if (mii_rw(dev, np->phyaddr, MII_BMCR, miicontrol))
return -1; return -1;
}
/* wait for 500ms */ /* wait for 500ms */
msleep(500); msleep(500);
...@@ -1196,7 +1193,7 @@ static int phy_init(struct net_device *dev) ...@@ -1196,7 +1193,7 @@ static int phy_init(struct net_device *dev)
{ {
struct fe_priv *np = get_nvpriv(dev); struct fe_priv *np = get_nvpriv(dev);
u8 __iomem *base = get_hwbase(dev); u8 __iomem *base = get_hwbase(dev);
u32 phyinterface, phy_reserved, mii_status, mii_control, mii_control_1000,reg; u32 phyinterface, phy_reserved, mii_status, mii_control, mii_control_1000, reg;
/* phy errata for E3016 phy */ /* phy errata for E3016 phy */
if (np->phy_model == PHY_MODEL_MARVELL_E3016) { if (np->phy_model == PHY_MODEL_MARVELL_E3016) {
...@@ -1313,8 +1310,7 @@ static int phy_init(struct net_device *dev) ...@@ -1313,8 +1310,7 @@ static int phy_init(struct net_device *dev)
printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev)); printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
return PHY_ERROR; return PHY_ERROR;
} }
} } else
else
np->gigabit = 0; np->gigabit = 0;
mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ);
...@@ -1340,7 +1336,7 @@ static int phy_init(struct net_device *dev) ...@@ -1340,7 +1336,7 @@ static int phy_init(struct net_device *dev)
} }
/* phy vendor specific configuration */ /* phy vendor specific configuration */
if ((np->phy_oui == PHY_OUI_CICADA) && (phyinterface & PHY_RGMII) ) { if ((np->phy_oui == PHY_OUI_CICADA) && (phyinterface & PHY_RGMII)) {
phy_reserved = mii_rw(dev, np->phyaddr, MII_RESV1, MII_READ); phy_reserved = mii_rw(dev, np->phyaddr, MII_RESV1, MII_READ);
phy_reserved &= ~(PHY_CICADA_INIT1 | PHY_CICADA_INIT2); phy_reserved &= ~(PHY_CICADA_INIT1 | PHY_CICADA_INIT2);
phy_reserved |= (PHY_CICADA_INIT3 | PHY_CICADA_INIT4); phy_reserved |= (PHY_CICADA_INIT3 | PHY_CICADA_INIT4);
...@@ -1501,12 +1497,10 @@ static int phy_init(struct net_device *dev) ...@@ -1501,12 +1497,10 @@ static int phy_init(struct net_device *dev)
/* restart auto negotiation, power down phy */ /* restart auto negotiation, power down phy */
mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ);
mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE); mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE);
if (phy_power_down) { if (phy_power_down)
mii_control |= BMCR_PDOWN; mii_control |= BMCR_PDOWN;
} if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control))
if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control)) {
return PHY_ERROR; return PHY_ERROR;
}
return 0; return 0;
} }
...@@ -1745,7 +1739,7 @@ static struct net_device_stats *nv_get_stats(struct net_device *dev) ...@@ -1745,7 +1739,7 @@ static struct net_device_stats *nv_get_stats(struct net_device *dev)
static int nv_alloc_rx(struct net_device *dev) static int nv_alloc_rx(struct net_device *dev)
{ {
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
struct ring_desc* less_rx; struct ring_desc *less_rx;
less_rx = np->get_rx.orig; less_rx = np->get_rx.orig;
if (less_rx-- == np->first_rx.orig) if (less_rx-- == np->first_rx.orig)
...@@ -1767,17 +1761,16 @@ static int nv_alloc_rx(struct net_device *dev) ...@@ -1767,17 +1761,16 @@ static int nv_alloc_rx(struct net_device *dev)
np->put_rx.orig = np->first_rx.orig; np->put_rx.orig = np->first_rx.orig;
if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx)) if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
np->put_rx_ctx = np->first_rx_ctx; np->put_rx_ctx = np->first_rx_ctx;
} else { } else
return 1; return 1;
} }
}
return 0; return 0;
} }
static int nv_alloc_rx_optimized(struct net_device *dev) static int nv_alloc_rx_optimized(struct net_device *dev)
{ {
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
struct ring_desc_ex* less_rx; struct ring_desc_ex *less_rx;
less_rx = np->get_rx.ex; less_rx = np->get_rx.ex;
if (less_rx-- == np->first_rx.ex) if (less_rx-- == np->first_rx.ex)
...@@ -1800,10 +1793,9 @@ static int nv_alloc_rx_optimized(struct net_device *dev) ...@@ -1800,10 +1793,9 @@ static int nv_alloc_rx_optimized(struct net_device *dev)
np->put_rx.ex = np->first_rx.ex; np->put_rx.ex = np->first_rx.ex;
if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx)) if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
np->put_rx_ctx = np->first_rx_ctx; np->put_rx_ctx = np->first_rx_ctx;
} else { } else
return 1; return 1;
} }
}
return 0; return 0;
} }
...@@ -2025,7 +2017,7 @@ static const u32 main_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = { ...@@ -2025,7 +2017,7 @@ static const u32 main_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = {
{266, 265, 276, 585, 397, 208, 345, 355, 365, 376, 385, 396, 771, 700, 984}, {266, 265, 276, 585, 397, 208, 345, 355, 365, 376, 385, 396, 771, 700, 984},
{266, 265, 276, 586, 397, 208, 346, 355, 365, 376, 285, 396, 771, 700, 984}, {266, 265, 276, 586, 397, 208, 346, 355, 365, 376, 285, 396, 771, 700, 984},
{366, 365, 376, 686, 497, 308, 447, 455, 466, 476, 485, 496, 871, 800, 84}, {366, 365, 376, 686, 497, 308, 447, 455, 466, 476, 485, 496, 871, 800, 84},
{466, 465, 476, 786, 597, 408, 547, 555, 566, 576, 585, 597, 971, 900, 184}}; {466, 465, 476, 786, 597, 408, 547, 555, 566, 576, 585, 597, 971, 900, 184} };
static const u32 gear_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = { static const u32 gear_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = {
{251, 262, 273, 324, 319, 508, 375, 364, 341, 371, 398, 193, 375, 30, 295}, {251, 262, 273, 324, 319, 508, 375, 364, 341, 371, 398, 193, 375, 30, 295},
...@@ -2035,7 +2027,7 @@ static const u32 gear_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = { ...@@ -2035,7 +2027,7 @@ static const u32 gear_seedset[BACKOFF_SEEDSET_ROWS][BACKOFF_SEEDSET_LFSRS] = {
{251, 262, 273, 324, 319, 508, 375, 364, 341, 371, 398, 193, 375, 30, 295}, {251, 262, 273, 324, 319, 508, 375, 364, 341, 371, 398, 193, 375, 30, 295},
{351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395}, {351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395},
{351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395}, {351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395},
{351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395}}; {351, 375, 373, 469, 551, 639, 477, 464, 441, 472, 498, 293, 476, 130, 395} };
static void nv_gear_backoff_reseed(struct net_device *dev) static void nv_gear_backoff_reseed(struct net_device *dev)
{ {
...@@ -2083,13 +2075,12 @@ static void nv_gear_backoff_reseed(struct net_device *dev) ...@@ -2083,13 +2075,12 @@ static void nv_gear_backoff_reseed(struct net_device *dev)
temp = NVREG_BKOFFCTRL_DEFAULT | (0 << NVREG_BKOFFCTRL_SELECT); temp = NVREG_BKOFFCTRL_DEFAULT | (0 << NVREG_BKOFFCTRL_SELECT);
temp |= combinedSeed & NVREG_BKOFFCTRL_SEED_MASK; temp |= combinedSeed & NVREG_BKOFFCTRL_SEED_MASK;
temp |= combinedSeed >> NVREG_BKOFFCTRL_GEAR; temp |= combinedSeed >> NVREG_BKOFFCTRL_GEAR;
writel(temp,base + NvRegBackOffControl); writel(temp, base + NvRegBackOffControl);
/* Setup seeds for all gear LFSRs. */ /* Setup seeds for all gear LFSRs. */
get_random_bytes(&seedset, sizeof(seedset)); get_random_bytes(&seedset, sizeof(seedset));
seedset = seedset % BACKOFF_SEEDSET_ROWS; seedset = seedset % BACKOFF_SEEDSET_ROWS;
for (i = 1; i <= BACKOFF_SEEDSET_LFSRS; i++) for (i = 1; i <= BACKOFF_SEEDSET_LFSRS; i++) {
{
temp = NVREG_BKOFFCTRL_DEFAULT | (i << NVREG_BKOFFCTRL_SELECT); temp = NVREG_BKOFFCTRL_DEFAULT | (i << NVREG_BKOFFCTRL_SELECT);
temp |= main_seedset[seedset][i-1] & 0x3ff; temp |= main_seedset[seedset][i-1] & 0x3ff;
temp |= ((gear_seedset[seedset][i-1] & 0x3ff) << NVREG_BKOFFCTRL_GEAR); temp |= ((gear_seedset[seedset][i-1] & 0x3ff) << NVREG_BKOFFCTRL_GEAR);
...@@ -2113,10 +2104,10 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -2113,10 +2104,10 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
u32 size = skb_headlen(skb); u32 size = skb_headlen(skb);
u32 entries = (size >> NV_TX2_TSO_MAX_SHIFT) + ((size & (NV_TX2_TSO_MAX_SIZE-1)) ? 1 : 0); u32 entries = (size >> NV_TX2_TSO_MAX_SHIFT) + ((size & (NV_TX2_TSO_MAX_SIZE-1)) ? 1 : 0);
u32 empty_slots; u32 empty_slots;
struct ring_desc* put_tx; struct ring_desc *put_tx;
struct ring_desc* start_tx; struct ring_desc *start_tx;
struct ring_desc* prev_tx; struct ring_desc *prev_tx;
struct nv_skb_map* prev_tx_ctx; struct nv_skb_map *prev_tx_ctx;
unsigned long flags; unsigned long flags;
/* add fragments to entries count */ /* add fragments to entries count */
...@@ -2208,10 +2199,10 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -2208,10 +2199,10 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
dev->name, entries, tx_flags_extra); dev->name, entries, tx_flags_extra);
{ {
int j; int j;
for (j=0; j<64; j++) { for (j = 0; j < 64; j++) {
if ((j%16) == 0) if ((j%16) == 0)
dprintk("\n%03x:", j); dprintk("\n%03x:", j);
dprintk(" %02x", ((unsigned char*)skb->data)[j]); dprintk(" %02x", ((unsigned char *)skb->data)[j]);
} }
dprintk("\n"); dprintk("\n");
} }
...@@ -2233,11 +2224,11 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb, ...@@ -2233,11 +2224,11 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb,
u32 size = skb_headlen(skb); u32 size = skb_headlen(skb);
u32 entries = (size >> NV_TX2_TSO_MAX_SHIFT) + ((size & (NV_TX2_TSO_MAX_SIZE-1)) ? 1 : 0); u32 entries = (size >> NV_TX2_TSO_MAX_SHIFT) + ((size & (NV_TX2_TSO_MAX_SIZE-1)) ? 1 : 0);
u32 empty_slots; u32 empty_slots;
struct ring_desc_ex* put_tx; struct ring_desc_ex *put_tx;
struct ring_desc_ex* start_tx; struct ring_desc_ex *start_tx;
struct ring_desc_ex* prev_tx; struct ring_desc_ex *prev_tx;
struct nv_skb_map* prev_tx_ctx; struct nv_skb_map *prev_tx_ctx;
struct nv_skb_map* start_tx_ctx; struct nv_skb_map *start_tx_ctx;
unsigned long flags; unsigned long flags;
/* add fragments to entries count */ /* add fragments to entries count */
...@@ -2359,10 +2350,10 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb, ...@@ -2359,10 +2350,10 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb,
dev->name, entries, tx_flags_extra); dev->name, entries, tx_flags_extra);
{ {
int j; int j;
for (j=0; j<64; j++) { for (j = 0; j < 64; j++) {
if ((j%16) == 0) if ((j%16) == 0)
dprintk("\n%03x:", j); dprintk("\n%03x:", j);
dprintk(" %02x", ((unsigned char*)skb->data)[j]); dprintk(" %02x", ((unsigned char *)skb->data)[j]);
} }
dprintk("\n"); dprintk("\n");
} }
...@@ -2399,7 +2390,7 @@ static int nv_tx_done(struct net_device *dev, int limit) ...@@ -2399,7 +2390,7 @@ static int nv_tx_done(struct net_device *dev, int limit)
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
u32 flags; u32 flags;
int tx_work = 0; int tx_work = 0;
struct ring_desc* orig_get_tx = np->get_tx.orig; struct ring_desc *orig_get_tx = np->get_tx.orig;
while ((np->get_tx.orig != np->put_tx.orig) && while ((np->get_tx.orig != np->put_tx.orig) &&
!((flags = le32_to_cpu(np->get_tx.orig->flaglen)) & NV_TX_VALID) && !((flags = le32_to_cpu(np->get_tx.orig->flaglen)) & NV_TX_VALID) &&
...@@ -2464,7 +2455,7 @@ static int nv_tx_done_optimized(struct net_device *dev, int limit) ...@@ -2464,7 +2455,7 @@ static int nv_tx_done_optimized(struct net_device *dev, int limit)
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
u32 flags; u32 flags;
int tx_work = 0; int tx_work = 0;
struct ring_desc_ex* orig_get_tx = np->get_tx.ex; struct ring_desc_ex *orig_get_tx = np->get_tx.ex;
while ((np->get_tx.ex != np->put_tx.ex) && while ((np->get_tx.ex != np->put_tx.ex) &&
!((flags = le32_to_cpu(np->get_tx.ex->flaglen)) & NV_TX2_VALID) && !((flags = le32_to_cpu(np->get_tx.ex->flaglen)) & NV_TX2_VALID) &&
...@@ -2491,10 +2482,9 @@ static int nv_tx_done_optimized(struct net_device *dev, int limit) ...@@ -2491,10 +2482,9 @@ static int nv_tx_done_optimized(struct net_device *dev, int limit)
np->get_tx_ctx->skb = NULL; np->get_tx_ctx->skb = NULL;
tx_work++; tx_work++;
if (np->tx_limit) { if (np->tx_limit)
nv_tx_flip_ownership(dev); nv_tx_flip_ownership(dev);
} }
}
if (unlikely(np->get_tx.ex++ == np->last_tx.ex)) if (unlikely(np->get_tx.ex++ == np->last_tx.ex))
np->get_tx.ex = np->first_tx.ex; np->get_tx.ex = np->first_tx.ex;
if (unlikely(np->get_tx_ctx++ == np->last_tx_ctx)) if (unlikely(np->get_tx_ctx++ == np->last_tx_ctx))
...@@ -2532,7 +2522,7 @@ static void nv_tx_timeout(struct net_device *dev) ...@@ -2532,7 +2522,7 @@ static void nv_tx_timeout(struct net_device *dev)
printk(KERN_INFO "%s: Ring at %lx\n", printk(KERN_INFO "%s: Ring at %lx\n",
dev->name, (unsigned long)np->ring_addr); dev->name, (unsigned long)np->ring_addr);
printk(KERN_INFO "%s: Dumping tx registers\n", dev->name); printk(KERN_INFO "%s: Dumping tx registers\n", dev->name);
for (i=0;i<=np->register_size;i+= 32) { for (i = 0; i <= np->register_size; i += 32) {
printk(KERN_INFO "%3x: %08x %08x %08x %08x %08x %08x %08x %08x\n", printk(KERN_INFO "%3x: %08x %08x %08x %08x %08x %08x %08x %08x\n",
i, i,
readl(base + i + 0), readl(base + i + 4), readl(base + i + 0), readl(base + i + 4),
...@@ -2541,7 +2531,7 @@ static void nv_tx_timeout(struct net_device *dev) ...@@ -2541,7 +2531,7 @@ static void nv_tx_timeout(struct net_device *dev)
readl(base + i + 24), readl(base + i + 28)); readl(base + i + 24), readl(base + i + 28));
} }
printk(KERN_INFO "%s: Dumping tx ring\n", dev->name); printk(KERN_INFO "%s: Dumping tx ring\n", dev->name);
for (i=0;i<np->tx_ring_size;i+= 4) { for (i = 0; i < np->tx_ring_size; i += 4) {
if (!nv_optimized(np)) { if (!nv_optimized(np)) {
printk(KERN_INFO "%03x: %08x %08x // %08x %08x // %08x %08x // %08x %08x\n", printk(KERN_INFO "%03x: %08x %08x // %08x %08x // %08x %08x // %08x %08x\n",
i, i,
...@@ -2616,11 +2606,11 @@ static int nv_getlen(struct net_device *dev, void *packet, int datalen) ...@@ -2616,11 +2606,11 @@ static int nv_getlen(struct net_device *dev, void *packet, int datalen)
int protolen; /* length as stored in the proto field */ int protolen; /* length as stored in the proto field */
/* 1) calculate len according to header */ /* 1) calculate len according to header */
if ( ((struct vlan_ethhdr *)packet)->h_vlan_proto == htons(ETH_P_8021Q)) { if (((struct vlan_ethhdr *)packet)->h_vlan_proto == htons(ETH_P_8021Q)) {
protolen = ntohs( ((struct vlan_ethhdr *)packet)->h_vlan_encapsulated_proto ); protolen = ntohs(((struct vlan_ethhdr *)packet)->h_vlan_encapsulated_proto);
hdrlen = VLAN_HLEN; hdrlen = VLAN_HLEN;
} else { } else {
protolen = ntohs( ((struct ethhdr *)packet)->h_proto); protolen = ntohs(((struct ethhdr *)packet)->h_proto);
hdrlen = ETH_HLEN; hdrlen = ETH_HLEN;
} }
dprintk(KERN_DEBUG "%s: nv_getlen: datalen %d, protolen %d, hdrlen %d\n", dprintk(KERN_DEBUG "%s: nv_getlen: datalen %d, protolen %d, hdrlen %d\n",
...@@ -2667,7 +2657,7 @@ static int nv_rx_process(struct net_device *dev, int limit) ...@@ -2667,7 +2657,7 @@ static int nv_rx_process(struct net_device *dev, int limit)
struct sk_buff *skb; struct sk_buff *skb;
int len; int len;
while((np->get_rx.orig != np->put_rx.orig) && while ((np->get_rx.orig != np->put_rx.orig) &&
!((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) && !((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) &&
(rx_work < limit)) { (rx_work < limit)) {
...@@ -2687,11 +2677,11 @@ static int nv_rx_process(struct net_device *dev, int limit) ...@@ -2687,11 +2677,11 @@ static int nv_rx_process(struct net_device *dev, int limit)
{ {
int j; int j;
dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).",flags); dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).", flags);
for (j=0; j<64; j++) { for (j = 0; j < 64; j++) {
if ((j%16) == 0) if ((j%16) == 0)
dprintk("\n%03x:", j); dprintk("\n%03x:", j);
dprintk(" %02x", ((unsigned char*)skb->data)[j]); dprintk(" %02x", ((unsigned char *)skb->data)[j]);
} }
dprintk("\n"); dprintk("\n");
} }
...@@ -2710,10 +2700,9 @@ static int nv_rx_process(struct net_device *dev, int limit) ...@@ -2710,10 +2700,9 @@ static int nv_rx_process(struct net_device *dev, int limit)
} }
/* framing errors are soft errors */ /* framing errors are soft errors */
else if ((flags & NV_RX_ERROR_MASK) == NV_RX_FRAMINGERR) { else if ((flags & NV_RX_ERROR_MASK) == NV_RX_FRAMINGERR) {
if (flags & NV_RX_SUBSTRACT1) { if (flags & NV_RX_SUBSTRACT1)
len--; len--;
} }
}
/* the rest are hard errors */ /* the rest are hard errors */
else { else {
if (flags & NV_RX_MISSEDFRAME) if (flags & NV_RX_MISSEDFRAME)
...@@ -2745,10 +2734,9 @@ static int nv_rx_process(struct net_device *dev, int limit) ...@@ -2745,10 +2734,9 @@ static int nv_rx_process(struct net_device *dev, int limit)
} }
/* framing errors are soft errors */ /* framing errors are soft errors */
else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) { else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) {
if (flags & NV_RX2_SUBSTRACT1) { if (flags & NV_RX2_SUBSTRACT1)
len--; len--;
} }
}
/* the rest are hard errors */ /* the rest are hard errors */
else { else {
if (flags & NV_RX2_CRCERR) if (flags & NV_RX2_CRCERR)
...@@ -2797,7 +2785,7 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) ...@@ -2797,7 +2785,7 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
struct sk_buff *skb; struct sk_buff *skb;
int len; int len;
while((np->get_rx.ex != np->put_rx.ex) && while ((np->get_rx.ex != np->put_rx.ex) &&
!((flags = le32_to_cpu(np->get_rx.ex->flaglen)) & NV_RX2_AVAIL) && !((flags = le32_to_cpu(np->get_rx.ex->flaglen)) & NV_RX2_AVAIL) &&
(rx_work < limit)) { (rx_work < limit)) {
...@@ -2817,11 +2805,11 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) ...@@ -2817,11 +2805,11 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
{ {
int j; int j;
dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).",flags); dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).", flags);
for (j=0; j<64; j++) { for (j = 0; j < 64; j++) {
if ((j%16) == 0) if ((j%16) == 0)
dprintk("\n%03x:", j); dprintk("\n%03x:", j);
dprintk(" %02x", ((unsigned char*)skb->data)[j]); dprintk(" %02x", ((unsigned char *)skb->data)[j]);
} }
dprintk("\n"); dprintk("\n");
} }
...@@ -2838,10 +2826,9 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) ...@@ -2838,10 +2826,9 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
} }
/* framing errors are soft errors */ /* framing errors are soft errors */
else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) { else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) {
if (flags & NV_RX2_SUBSTRACT1) { if (flags & NV_RX2_SUBSTRACT1)
len--; len--;
} }
}
/* the rest are hard errors */ /* the rest are hard errors */
else { else {
dev_kfree_skb(skb); dev_kfree_skb(skb);
...@@ -2949,7 +2936,7 @@ static int nv_change_mtu(struct net_device *dev, int new_mtu) ...@@ -2949,7 +2936,7 @@ static int nv_change_mtu(struct net_device *dev, int new_mtu)
/* reinit nic view of the rx queue */ /* reinit nic view of the rx queue */
writel(np->rx_buf_sz, base + NvRegOffloadConfig); writel(np->rx_buf_sz, base + NvRegOffloadConfig);
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
pci_push(base); pci_push(base);
writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
...@@ -2986,7 +2973,7 @@ static void nv_copy_mac_to_hw(struct net_device *dev) ...@@ -2986,7 +2973,7 @@ static void nv_copy_mac_to_hw(struct net_device *dev)
static int nv_set_mac_address(struct net_device *dev, void *addr) static int nv_set_mac_address(struct net_device *dev, void *addr)
{ {
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
struct sockaddr *macaddr = (struct sockaddr*)addr; struct sockaddr *macaddr = (struct sockaddr *)addr;
if (!is_valid_ether_addr(macaddr->sa_data)) if (!is_valid_ether_addr(macaddr->sa_data))
return -EADDRNOTAVAIL; return -EADDRNOTAVAIL;
...@@ -3302,7 +3289,7 @@ static int nv_update_linkspeed(struct net_device *dev) ...@@ -3302,7 +3289,7 @@ static int nv_update_linkspeed(struct net_device *dev)
} }
writel(txreg, base + NvRegTxWatermark); writel(txreg, base + NvRegTxWatermark);
writel(NVREG_MISC1_FORCE | ( np->duplex ? 0 : NVREG_MISC1_HD), writel(NVREG_MISC1_FORCE | (np->duplex ? 0 : NVREG_MISC1_HD),
base + NvRegMisc1); base + NvRegMisc1);
pci_push(base); pci_push(base);
writel(np->linkspeed, base + NvRegLinkSpeed); writel(np->linkspeed, base + NvRegLinkSpeed);
...@@ -3312,8 +3299,8 @@ static int nv_update_linkspeed(struct net_device *dev) ...@@ -3312,8 +3299,8 @@ static int nv_update_linkspeed(struct net_device *dev)
/* setup pause frame */ /* setup pause frame */
if (np->duplex != 0) { if (np->duplex != 0) {
if (np->autoneg && np->pause_flags & NV_PAUSEFRAME_AUTONEG) { if (np->autoneg && np->pause_flags & NV_PAUSEFRAME_AUTONEG) {
adv_pause = adv & (ADVERTISE_PAUSE_CAP| ADVERTISE_PAUSE_ASYM); adv_pause = adv & (ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM);
lpa_pause = lpa & (LPA_PAUSE_CAP| LPA_PAUSE_ASYM); lpa_pause = lpa & (LPA_PAUSE_CAP | LPA_PAUSE_ASYM);
switch (adv_pause) { switch (adv_pause) {
case ADVERTISE_PAUSE_CAP: case ADVERTISE_PAUSE_CAP:
...@@ -3324,22 +3311,17 @@ static int nv_update_linkspeed(struct net_device *dev) ...@@ -3324,22 +3311,17 @@ static int nv_update_linkspeed(struct net_device *dev)
} }
break; break;
case ADVERTISE_PAUSE_ASYM: case ADVERTISE_PAUSE_ASYM:
if (lpa_pause == (LPA_PAUSE_CAP| LPA_PAUSE_ASYM)) if (lpa_pause == (LPA_PAUSE_CAP | LPA_PAUSE_ASYM))
{
pause_flags |= NV_PAUSEFRAME_TX_ENABLE; pause_flags |= NV_PAUSEFRAME_TX_ENABLE;
}
break; break;
case ADVERTISE_PAUSE_CAP| ADVERTISE_PAUSE_ASYM: case ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM:
if (lpa_pause & LPA_PAUSE_CAP) if (lpa_pause & LPA_PAUSE_CAP) {
{
pause_flags |= NV_PAUSEFRAME_RX_ENABLE; pause_flags |= NV_PAUSEFRAME_RX_ENABLE;
if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) if (np->pause_flags & NV_PAUSEFRAME_TX_REQ)
pause_flags |= NV_PAUSEFRAME_TX_ENABLE; pause_flags |= NV_PAUSEFRAME_TX_ENABLE;
} }
if (lpa_pause == LPA_PAUSE_ASYM) if (lpa_pause == LPA_PAUSE_ASYM)
{
pause_flags |= NV_PAUSEFRAME_RX_ENABLE; pause_flags |= NV_PAUSEFRAME_RX_ENABLE;
}
break; break;
} }
} else { } else {
...@@ -3514,7 +3496,7 @@ static irqreturn_t nv_nic_irq_tx(int foo, void *data) ...@@ -3514,7 +3496,7 @@ static irqreturn_t nv_nic_irq_tx(int foo, void *data)
dprintk(KERN_DEBUG "%s: nv_nic_irq_tx\n", dev->name); dprintk(KERN_DEBUG "%s: nv_nic_irq_tx\n", dev->name);
for (i=0; ; i++) { for (i = 0;; i++) {
events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_TX_ALL; events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_TX_ALL;
writel(NVREG_IRQ_TX_ALL, base + NvRegMSIXIrqStatus); writel(NVREG_IRQ_TX_ALL, base + NvRegMSIXIrqStatus);
dprintk(KERN_DEBUG "%s: tx irq: %08x\n", dev->name, events); dprintk(KERN_DEBUG "%s: tx irq: %08x\n", dev->name, events);
...@@ -3553,7 +3535,7 @@ static int nv_napi_poll(struct napi_struct *napi, int budget) ...@@ -3553,7 +3535,7 @@ static int nv_napi_poll(struct napi_struct *napi, int budget)
u8 __iomem *base = get_hwbase(dev); u8 __iomem *base = get_hwbase(dev);
unsigned long flags; unsigned long flags;
int retcode; int retcode;
int rx_count, tx_work=0, rx_work=0; int rx_count, tx_work = 0, rx_work = 0;
do { do {
if (!nv_optimized(np)) { if (!nv_optimized(np)) {
...@@ -3628,7 +3610,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data) ...@@ -3628,7 +3610,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data)
dprintk(KERN_DEBUG "%s: nv_nic_irq_rx\n", dev->name); dprintk(KERN_DEBUG "%s: nv_nic_irq_rx\n", dev->name);
for (i=0; ; i++) { for (i = 0;; i++) {
events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL; events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL;
writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus); writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus);
dprintk(KERN_DEBUG "%s: rx irq: %08x\n", dev->name, events); dprintk(KERN_DEBUG "%s: rx irq: %08x\n", dev->name, events);
...@@ -3675,7 +3657,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data) ...@@ -3675,7 +3657,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data)
dprintk(KERN_DEBUG "%s: nv_nic_irq_other\n", dev->name); dprintk(KERN_DEBUG "%s: nv_nic_irq_other\n", dev->name);
for (i=0; ; i++) { for (i = 0;; i++) {
events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_OTHER; events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_OTHER;
writel(NVREG_IRQ_OTHER, base + NvRegMSIXIrqStatus); writel(NVREG_IRQ_OTHER, base + NvRegMSIXIrqStatus);
dprintk(KERN_DEBUG "%s: irq: %08x\n", dev->name, events); dprintk(KERN_DEBUG "%s: irq: %08x\n", dev->name, events);
...@@ -3776,18 +3758,16 @@ static void set_msix_vector_map(struct net_device *dev, u32 vector, u32 irqmask) ...@@ -3776,18 +3758,16 @@ static void set_msix_vector_map(struct net_device *dev, u32 vector, u32 irqmask)
* the remaining 8 interrupts. * the remaining 8 interrupts.
*/ */
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if ((irqmask >> i) & 0x1) { if ((irqmask >> i) & 0x1)
msixmap |= vector << (i << 2); msixmap |= vector << (i << 2);
} }
}
writel(readl(base + NvRegMSIXMap0) | msixmap, base + NvRegMSIXMap0); writel(readl(base + NvRegMSIXMap0) | msixmap, base + NvRegMSIXMap0);
msixmap = 0; msixmap = 0;
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if ((irqmask >> (i + 8)) & 0x1) { if ((irqmask >> (i + 8)) & 0x1)
msixmap |= vector << (i << 2); msixmap |= vector << (i << 2);
} }
}
writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1); writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1);
} }
...@@ -3809,9 +3789,8 @@ static int nv_request_irq(struct net_device *dev, int intr_test) ...@@ -3809,9 +3789,8 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
} }
if (np->msi_flags & NV_MSI_X_CAPABLE) { if (np->msi_flags & NV_MSI_X_CAPABLE) {
for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++)
np->msi_x_entry[i].entry = i; np->msi_x_entry[i].entry = i;
}
if ((ret = pci_enable_msix(np->pci_dev, np->msi_x_entry, (np->msi_flags & NV_MSI_X_VECTORS_MASK))) == 0) { if ((ret = pci_enable_msix(np->pci_dev, np->msi_x_entry, (np->msi_flags & NV_MSI_X_VECTORS_MASK))) == 0) {
np->msi_flags |= NV_MSI_X_ENABLED; np->msi_flags |= NV_MSI_X_ENABLED;
if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT && !intr_test) { if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT && !intr_test) {
...@@ -3903,9 +3882,8 @@ static void nv_free_irq(struct net_device *dev) ...@@ -3903,9 +3882,8 @@ static void nv_free_irq(struct net_device *dev)
int i; int i;
if (np->msi_flags & NV_MSI_X_ENABLED) { if (np->msi_flags & NV_MSI_X_ENABLED) {
for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++)
free_irq(np->msi_x_entry[i].vector, dev); free_irq(np->msi_x_entry[i].vector, dev);
}
pci_disable_msix(np->pci_dev); pci_disable_msix(np->pci_dev);
np->msi_flags &= ~NV_MSI_X_ENABLED; np->msi_flags &= ~NV_MSI_X_ENABLED;
} else { } else {
...@@ -3975,7 +3953,7 @@ static void nv_do_nic_poll(unsigned long data) ...@@ -3975,7 +3953,7 @@ static void nv_do_nic_poll(unsigned long data)
/* reinit nic view of the rx queue */ /* reinit nic view of the rx queue */
writel(np->rx_buf_sz, base + NvRegOffloadConfig); writel(np->rx_buf_sz, base + NvRegOffloadConfig);
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
pci_push(base); pci_push(base);
writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
...@@ -4105,7 +4083,7 @@ static int nv_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) ...@@ -4105,7 +4083,7 @@ static int nv_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
} }
if (netif_carrier_ok(dev)) { if (netif_carrier_ok(dev)) {
switch(np->linkspeed & (NVREG_LINKSPEED_MASK)) { switch (np->linkspeed & (NVREG_LINKSPEED_MASK)) {
case NVREG_LINKSPEED_10: case NVREG_LINKSPEED_10:
ecmd->speed = SPEED_10; ecmd->speed = SPEED_10;
break; break;
...@@ -4344,7 +4322,7 @@ static void nv_get_regs(struct net_device *dev, struct ethtool_regs *regs, void ...@@ -4344,7 +4322,7 @@ static void nv_get_regs(struct net_device *dev, struct ethtool_regs *regs, void
regs->version = FORCEDETH_REGS_VER; regs->version = FORCEDETH_REGS_VER;
spin_lock_irq(&np->lock); spin_lock_irq(&np->lock);
for (i = 0;i <= np->register_size/sizeof(u32); i++) for (i = 0; i <= np->register_size/sizeof(u32); i++)
rbuf[i] = readl(base + i*sizeof(u32)); rbuf[i] = readl(base + i*sizeof(u32));
spin_unlock_irq(&np->lock); spin_unlock_irq(&np->lock);
} }
...@@ -4491,14 +4469,14 @@ static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ri ...@@ -4491,14 +4469,14 @@ static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ri
np->tx_ring_size = ring->tx_pending; np->tx_ring_size = ring->tx_pending;
if (!nv_optimized(np)) { if (!nv_optimized(np)) {
np->rx_ring.orig = (struct ring_desc*)rxtx_ring; np->rx_ring.orig = (struct ring_desc *)rxtx_ring;
np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size]; np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size];
} else { } else {
np->rx_ring.ex = (struct ring_desc_ex*)rxtx_ring; np->rx_ring.ex = (struct ring_desc_ex *)rxtx_ring;
np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size]; np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size];
} }
np->rx_skb = (struct nv_skb_map*)rx_skbuff; np->rx_skb = (struct nv_skb_map *)rx_skbuff;
np->tx_skb = (struct nv_skb_map*)tx_skbuff; np->tx_skb = (struct nv_skb_map *)tx_skbuff;
np->ring_addr = ring_addr; np->ring_addr = ring_addr;
memset(np->rx_skb, 0, sizeof(struct nv_skb_map) * np->rx_ring_size); memset(np->rx_skb, 0, sizeof(struct nv_skb_map) * np->rx_ring_size);
...@@ -4515,7 +4493,7 @@ static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ri ...@@ -4515,7 +4493,7 @@ static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ri
/* reinit nic view of the queues */ /* reinit nic view of the queues */
writel(np->rx_buf_sz, base + NvRegOffloadConfig); writel(np->rx_buf_sz, base + NvRegOffloadConfig);
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
pci_push(base); pci_push(base);
writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
...@@ -4841,7 +4819,7 @@ static int nv_loopback_test(struct net_device *dev) ...@@ -4841,7 +4819,7 @@ static int nv_loopback_test(struct net_device *dev)
/* reinit nic view of the rx queue */ /* reinit nic view of the rx queue */
writel(np->rx_buf_sz, base + NvRegOffloadConfig); writel(np->rx_buf_sz, base + NvRegOffloadConfig);
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
pci_push(base); pci_push(base);
...@@ -4893,10 +4871,9 @@ static int nv_loopback_test(struct net_device *dev) ...@@ -4893,10 +4871,9 @@ static int nv_loopback_test(struct net_device *dev)
if (flags & NV_RX_ERROR) if (flags & NV_RX_ERROR)
ret = 0; ret = 0;
} else { } else {
if (flags & NV_RX2_ERROR) { if (flags & NV_RX2_ERROR)
ret = 0; ret = 0;
} }
}
if (ret) { if (ret) {
if (len != pkt_len) { if (len != pkt_len) {
...@@ -4958,11 +4935,10 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64 ...@@ -4958,11 +4935,10 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64
netif_addr_lock(dev); netif_addr_lock(dev);
spin_lock_irq(&np->lock); spin_lock_irq(&np->lock);
nv_disable_hw_interrupts(dev, np->irqmask); nv_disable_hw_interrupts(dev, np->irqmask);
if (!(np->msi_flags & NV_MSI_X_ENABLED)) { if (!(np->msi_flags & NV_MSI_X_ENABLED))
writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
} else { else
writel(NVREG_IRQSTAT_MASK, base + NvRegMSIXIrqStatus); writel(NVREG_IRQSTAT_MASK, base + NvRegMSIXIrqStatus);
}
/* stop engines */ /* stop engines */
nv_stop_rxtx(dev); nv_stop_rxtx(dev);
nv_txrx_reset(dev); nv_txrx_reset(dev);
...@@ -5003,7 +4979,7 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64 ...@@ -5003,7 +4979,7 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64
/* reinit nic view of the rx queue */ /* reinit nic view of the rx queue */
writel(np->rx_buf_sz, base + NvRegOffloadConfig); writel(np->rx_buf_sz, base + NvRegOffloadConfig);
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
pci_push(base); pci_push(base);
writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
...@@ -5106,8 +5082,7 @@ static int nv_mgmt_acquire_sema(struct net_device *dev) ...@@ -5106,8 +5082,7 @@ static int nv_mgmt_acquire_sema(struct net_device *dev)
((tx_ctrl & NVREG_XMITCTL_MGMT_SEMA_MASK) == NVREG_XMITCTL_MGMT_SEMA_FREE)) { ((tx_ctrl & NVREG_XMITCTL_MGMT_SEMA_MASK) == NVREG_XMITCTL_MGMT_SEMA_FREE)) {
np->mgmt_sema = 1; np->mgmt_sema = 1;
return 1; return 1;
} } else
else
udelay(50); udelay(50);
} }
...@@ -5204,7 +5179,7 @@ static int nv_open(struct net_device *dev) ...@@ -5204,7 +5179,7 @@ static int nv_open(struct net_device *dev)
/* give hw rings */ /* give hw rings */
setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING);
writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), writel(((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT),
base + NvRegRingSizes); base + NvRegRingSizes);
writel(np->linkspeed, base + NvRegLinkSpeed); writel(np->linkspeed, base + NvRegLinkSpeed);
...@@ -5251,8 +5226,7 @@ static int nv_open(struct net_device *dev) ...@@ -5251,8 +5226,7 @@ static int nv_open(struct net_device *dev)
writel(NVREG_POLL_DEFAULT_THROUGHPUT, base + NvRegPollingInterval); writel(NVREG_POLL_DEFAULT_THROUGHPUT, base + NvRegPollingInterval);
else else
writel(NVREG_POLL_DEFAULT_CPU, base + NvRegPollingInterval); writel(NVREG_POLL_DEFAULT_CPU, base + NvRegPollingInterval);
} } else
else
writel(poll_interval & 0xFFFF, base + NvRegPollingInterval); writel(poll_interval & 0xFFFF, base + NvRegPollingInterval);
writel(NVREG_UNKSETUP6_VAL, base + NvRegUnknownSetupReg6); writel(NVREG_UNKSETUP6_VAL, base + NvRegUnknownSetupReg6);
writel((np->phyaddr << NVREG_ADAPTCTL_PHYSHIFT)|NVREG_ADAPTCTL_PHYVALID|NVREG_ADAPTCTL_RUNNING, writel((np->phyaddr << NVREG_ADAPTCTL_PHYSHIFT)|NVREG_ADAPTCTL_PHYVALID|NVREG_ADAPTCTL_RUNNING,
...@@ -5263,7 +5237,7 @@ static int nv_open(struct net_device *dev) ...@@ -5263,7 +5237,7 @@ static int nv_open(struct net_device *dev)
writel(NVREG_WAKEUPFLAGS_ENABLE , base + NvRegWakeUpFlags); writel(NVREG_WAKEUPFLAGS_ENABLE , base + NvRegWakeUpFlags);
i = readl(base + NvRegPowerState); i = readl(base + NvRegPowerState);
if ( (i & NVREG_POWERSTATE_POWEREDUP) == 0) if ((i & NVREG_POWERSTATE_POWEREDUP) == 0)
writel(NVREG_POWERSTATE_POWEREDUP|i, base + NvRegPowerState); writel(NVREG_POWERSTATE_POWEREDUP|i, base + NvRegPowerState);
pci_push(base); pci_push(base);
...@@ -5276,9 +5250,8 @@ static int nv_open(struct net_device *dev) ...@@ -5276,9 +5250,8 @@ static int nv_open(struct net_device *dev)
writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
pci_push(base); pci_push(base);
if (nv_request_irq(dev, 0)) { if (nv_request_irq(dev, 0))
goto out_drain; goto out_drain;
}
/* ask for interrupts */ /* ask for interrupts */
nv_enable_hw_interrupts(dev, np->irqmask); nv_enable_hw_interrupts(dev, np->irqmask);
...@@ -5466,7 +5439,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i ...@@ -5466,7 +5439,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
addr = 0; addr = 0;
for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
dprintk(KERN_DEBUG "%s: resource %d start %p len %ld flags 0x%08lx.\n", dprintk(KERN_DEBUG "%s: resource %d start %p len %ld flags 0x%08lx.\n",
pci_name(pci_dev), i, (void*)pci_resource_start(pci_dev, i), pci_name(pci_dev), i, (void *)pci_resource_start(pci_dev, i),
pci_resource_len(pci_dev, i), pci_resource_len(pci_dev, i),
pci_resource_flags(pci_dev, i)); pci_resource_flags(pci_dev, i));
if (pci_resource_flags(pci_dev, i) & IORESOURCE_MEM && if (pci_resource_flags(pci_dev, i) & IORESOURCE_MEM &&
...@@ -5663,16 +5636,15 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i ...@@ -5663,16 +5636,15 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
writel(powerstate, base + NvRegPowerState2); writel(powerstate, base + NvRegPowerState2);
} }
if (np->desc_ver == DESC_VER_1) { if (np->desc_ver == DESC_VER_1)
np->tx_flags = NV_TX_VALID; np->tx_flags = NV_TX_VALID;
} else { else
np->tx_flags = NV_TX2_VALID; np->tx_flags = NV_TX2_VALID;
}
np->msi_flags = 0; np->msi_flags = 0;
if ((id->driver_data & DEV_HAS_MSI) && msi) { if ((id->driver_data & DEV_HAS_MSI) && msi)
np->msi_flags |= NV_MSI_CAPABLE; np->msi_flags |= NV_MSI_CAPABLE;
}
if ((id->driver_data & DEV_HAS_MSI_X) && msix) { if ((id->driver_data & DEV_HAS_MSI_X) && msix) {
/* msix has had reported issues when modifying irqmask /* msix has had reported issues when modifying irqmask
as in the case of napi, therefore, disable for now as in the case of napi, therefore, disable for now
...@@ -5735,9 +5707,8 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i ...@@ -5735,9 +5707,8 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
nv_mgmt_acquire_sema(dev) && nv_mgmt_acquire_sema(dev) &&
nv_mgmt_get_version(dev)) { nv_mgmt_get_version(dev)) {
np->mac_in_use = 1; np->mac_in_use = 1;
if (np->mgmt_version > 0) { if (np->mgmt_version > 0)
np->mac_in_use = readl(base + NvRegMgmtUnitControl) & NVREG_MGMTUNITCONTROL_INUSE; np->mac_in_use = readl(base + NvRegMgmtUnitControl) & NVREG_MGMTUNITCONTROL_INUSE;
}
dprintk(KERN_INFO "%s: mgmt unit is running. mac in use %x.\n", dprintk(KERN_INFO "%s: mgmt unit is running. mac in use %x.\n",
pci_name(pci_dev), np->mac_in_use); pci_name(pci_dev), np->mac_in_use);
/* management unit setup the phy already? */ /* management unit setup the phy already? */
...@@ -5799,10 +5770,9 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i ...@@ -5799,10 +5770,9 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
} else { } else {
/* see if it is a gigabit phy */ /* see if it is a gigabit phy */
u32 mii_status = mii_rw(dev, np->phyaddr, MII_BMSR, MII_READ); u32 mii_status = mii_rw(dev, np->phyaddr, MII_BMSR, MII_READ);
if (mii_status & PHY_GIGABIT) { if (mii_status & PHY_GIGABIT)
np->gigabit = PHY_GIGABIT; np->gigabit = PHY_GIGABIT;
} }
}
/* set default link speed settings */ /* set default link speed settings */
np->linkspeed = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10; np->linkspeed = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10;
...@@ -5931,13 +5901,13 @@ static int nv_suspend(struct pci_dev *pdev, pm_message_t state) ...@@ -5931,13 +5901,13 @@ static int nv_suspend(struct pci_dev *pdev, pm_message_t state)
int i; int i;
if (netif_running(dev)) { if (netif_running(dev)) {
// Gross. /* Gross. */
nv_close(dev); nv_close(dev);
} }
netif_device_detach(dev); netif_device_detach(dev);
/* save non-pci configuration space */ /* save non-pci configuration space */
for (i = 0;i <= np->register_size/sizeof(u32); i++) for (i = 0; i <= np->register_size/sizeof(u32); i++)
np->saved_config_space[i] = readl(base + i*sizeof(u32)); np->saved_config_space[i] = readl(base + i*sizeof(u32));
pci_save_state(pdev); pci_save_state(pdev);
...@@ -5960,7 +5930,7 @@ static int nv_resume(struct pci_dev *pdev) ...@@ -5960,7 +5930,7 @@ static int nv_resume(struct pci_dev *pdev)
pci_enable_wake(pdev, PCI_D0, 0); pci_enable_wake(pdev, PCI_D0, 0);
/* restore non-pci configuration space */ /* restore non-pci configuration space */
for (i = 0;i <= np->register_size/sizeof(u32); i++) for (i = 0; i <= np->register_size/sizeof(u32); i++)
writel(np->saved_config_space[i], base+i*sizeof(u32)); writel(np->saved_config_space[i], base+i*sizeof(u32));
if (np->driver_data & DEV_NEED_MSI_FIX) if (np->driver_data & DEV_NEED_MSI_FIX)
...@@ -5990,9 +5960,8 @@ static void nv_shutdown(struct pci_dev *pdev) ...@@ -5990,9 +5960,8 @@ static void nv_shutdown(struct pci_dev *pdev)
* If we really go for poweroff, we must not restore the MAC, * If we really go for poweroff, we must not restore the MAC,
* otherwise the MAC for WOL will be reversed at least on some boards. * otherwise the MAC for WOL will be reversed at least on some boards.
*/ */
if (system_state != SYSTEM_POWER_OFF) { if (system_state != SYSTEM_POWER_OFF)
nv_restore_mac_addr(pdev); nv_restore_mac_addr(pdev);
}
pci_disable_device(pdev); pci_disable_device(pdev);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment