diff options
Diffstat (limited to 'drivers/net/e100.c')
| -rw-r--r-- | drivers/net/e100.c | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 9f38b16ccbbd..134b2d60b479 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
| @@ -658,12 +658,12 @@ static int e100_self_test(struct nic *nic) | |||
| 658 | e100_disable_irq(nic); | 658 | e100_disable_irq(nic); |
| 659 | 659 | ||
| 660 | /* Check results of self-test */ | 660 | /* Check results of self-test */ |
| 661 | if(nic->mem->selftest.result != 0) { | 661 | if (nic->mem->selftest.result != 0) { |
| 662 | DPRINTK(HW, ERR, "Self-test failed: result=0x%08X\n", | 662 | DPRINTK(HW, ERR, "Self-test failed: result=0x%08X\n", |
| 663 | nic->mem->selftest.result); | 663 | nic->mem->selftest.result); |
| 664 | return -ETIMEDOUT; | 664 | return -ETIMEDOUT; |
| 665 | } | 665 | } |
| 666 | if(nic->mem->selftest.signature == 0) { | 666 | if (nic->mem->selftest.signature == 0) { |
| 667 | DPRINTK(HW, ERR, "Self-test failed: timed out\n"); | 667 | DPRINTK(HW, ERR, "Self-test failed: timed out\n"); |
| 668 | return -ETIMEDOUT; | 668 | return -ETIMEDOUT; |
| 669 | } | 669 | } |
| @@ -684,13 +684,13 @@ static void e100_eeprom_write(struct nic *nic, u16 addr_len, u16 addr, __le16 da | |||
| 684 | cmd_addr_data[2] = op_ewds << (addr_len - 2); | 684 | cmd_addr_data[2] = op_ewds << (addr_len - 2); |
| 685 | 685 | ||
| 686 | /* Bit-bang cmds to write word to eeprom */ | 686 | /* Bit-bang cmds to write word to eeprom */ |
| 687 | for(j = 0; j < 3; j++) { | 687 | for (j = 0; j < 3; j++) { |
| 688 | 688 | ||
| 689 | /* Chip select */ | 689 | /* Chip select */ |
| 690 | iowrite8(eecs | eesk, &nic->csr->eeprom_ctrl_lo); | 690 | iowrite8(eecs | eesk, &nic->csr->eeprom_ctrl_lo); |
| 691 | e100_write_flush(nic); udelay(4); | 691 | e100_write_flush(nic); udelay(4); |
| 692 | 692 | ||
| 693 | for(i = 31; i >= 0; i--) { | 693 | for (i = 31; i >= 0; i--) { |
| 694 | ctrl = (cmd_addr_data[j] & (1 << i)) ? | 694 | ctrl = (cmd_addr_data[j] & (1 << i)) ? |
| 695 | eecs | eedi : eecs; | 695 | eecs | eedi : eecs; |
| 696 | iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo); | 696 | iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo); |
| @@ -723,7 +723,7 @@ static __le16 e100_eeprom_read(struct nic *nic, u16 *addr_len, u16 addr) | |||
| 723 | e100_write_flush(nic); udelay(4); | 723 | e100_write_flush(nic); udelay(4); |
| 724 | 724 | ||
| 725 | /* Bit-bang to read word from eeprom */ | 725 | /* Bit-bang to read word from eeprom */ |
| 726 | for(i = 31; i >= 0; i--) { | 726 | for (i = 31; i >= 0; i--) { |
| 727 | ctrl = (cmd_addr_data & (1 << i)) ? eecs | eedi : eecs; | 727 | ctrl = (cmd_addr_data & (1 << i)) ? eecs | eedi : eecs; |
| 728 | iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo); | 728 | iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo); |
| 729 | e100_write_flush(nic); udelay(4); | 729 | e100_write_flush(nic); udelay(4); |
| @@ -734,7 +734,7 @@ static __le16 e100_eeprom_read(struct nic *nic, u16 *addr_len, u16 addr) | |||
| 734 | /* Eeprom drives a dummy zero to EEDO after receiving | 734 | /* Eeprom drives a dummy zero to EEDO after receiving |
| 735 | * complete address. Use this to adjust addr_len. */ | 735 | * complete address. Use this to adjust addr_len. */ |
| 736 | ctrl = ioread8(&nic->csr->eeprom_ctrl_lo); | 736 | ctrl = ioread8(&nic->csr->eeprom_ctrl_lo); |
| 737 | if(!(ctrl & eedo) && i > 16) { | 737 | if (!(ctrl & eedo) && i > 16) { |
| 738 | *addr_len -= (i - 16); | 738 | *addr_len -= (i - 16); |
| 739 | i = 17; | 739 | i = 17; |
| 740 | } | 740 | } |
| @@ -758,9 +758,9 @@ static int e100_eeprom_load(struct nic *nic) | |||
| 758 | e100_eeprom_read(nic, &addr_len, 0); | 758 | e100_eeprom_read(nic, &addr_len, 0); |
| 759 | nic->eeprom_wc = 1 << addr_len; | 759 | nic->eeprom_wc = 1 << addr_len; |
| 760 | 760 | ||
| 761 | for(addr = 0; addr < nic->eeprom_wc; addr++) { | 761 | for (addr = 0; addr < nic->eeprom_wc; addr++) { |
| 762 | nic->eeprom[addr] = e100_eeprom_read(nic, &addr_len, addr); | 762 | nic->eeprom[addr] = e100_eeprom_read(nic, &addr_len, addr); |
| 763 | if(addr < nic->eeprom_wc - 1) | 763 | if (addr < nic->eeprom_wc - 1) |
| 764 | checksum += le16_to_cpu(nic->eeprom[addr]); | 764 | checksum += le16_to_cpu(nic->eeprom[addr]); |
| 765 | } | 765 | } |
| 766 | 766 | ||
| @@ -784,15 +784,15 @@ static int e100_eeprom_save(struct nic *nic, u16 start, u16 count) | |||
| 784 | e100_eeprom_read(nic, &addr_len, 0); | 784 | e100_eeprom_read(nic, &addr_len, 0); |
| 785 | nic->eeprom_wc = 1 << addr_len; | 785 | nic->eeprom_wc = 1 << addr_len; |
| 786 | 786 | ||
| 787 | if(start + count >= nic->eeprom_wc) | 787 | if (start + count >= nic->eeprom_wc) |
| 788 | return -EINVAL; | 788 | return -EINVAL; |
| 789 | 789 | ||
| 790 | for(addr = start; addr < start + count; addr++) | 790 | for (addr = start; addr < start + count; addr++) |
| 791 | e100_eeprom_write(nic, addr_len, addr, nic->eeprom[addr]); | 791 | e100_eeprom_write(nic, addr_len, addr, nic->eeprom[addr]); |
| 792 | 792 | ||
| 793 | /* The checksum, stored in the last word, is calculated such that | 793 | /* The checksum, stored in the last word, is calculated such that |
| 794 | * the sum of words should be 0xBABA */ | 794 | * the sum of words should be 0xBABA */ |
| 795 | for(addr = 0; addr < nic->eeprom_wc - 1; addr++) | 795 | for (addr = 0; addr < nic->eeprom_wc - 1; addr++) |
| 796 | checksum += le16_to_cpu(nic->eeprom[addr]); | 796 | checksum += le16_to_cpu(nic->eeprom[addr]); |
| 797 | nic->eeprom[nic->eeprom_wc - 1] = cpu_to_le16(0xBABA - checksum); | 797 | nic->eeprom[nic->eeprom_wc - 1] = cpu_to_le16(0xBABA - checksum); |
| 798 | e100_eeprom_write(nic, addr_len, nic->eeprom_wc - 1, | 798 | e100_eeprom_write(nic, addr_len, nic->eeprom_wc - 1, |
| @@ -812,19 +812,19 @@ static int e100_exec_cmd(struct nic *nic, u8 cmd, dma_addr_t dma_addr) | |||
| 812 | spin_lock_irqsave(&nic->cmd_lock, flags); | 812 | spin_lock_irqsave(&nic->cmd_lock, flags); |
| 813 | 813 | ||
| 814 | /* Previous command is accepted when SCB clears */ | 814 | /* Previous command is accepted when SCB clears */ |
| 815 | for(i = 0; i < E100_WAIT_SCB_TIMEOUT; i++) { | 815 | for (i = 0; i < E100_WAIT_SCB_TIMEOUT; i++) { |
| 816 | if(likely(!ioread8(&nic->csr->scb.cmd_lo))) | 816 | if (likely(!ioread8(&nic->csr->scb.cmd_lo))) |
| 817 | break; | 817 | break; |
| 818 | cpu_relax(); | 818 | cpu_relax(); |
| 819 | if(unlikely(i > E100_WAIT_SCB_FAST)) | 819 | if (unlikely(i > E100_WAIT_SCB_FAST)) |
| 820 | udelay(5); | 820 | udelay(5); |
| 821 | } | 821 | } |
| 822 | if(unlikely(i == E100_WAIT_SCB_TIMEOUT)) { | 822 | if (unlikely(i == E100_WAIT_SCB_TIMEOUT)) { |
| 823 | err = -EAGAIN; | 823 | err = -EAGAIN; |
| 824 | goto err_unlock; | 824 | goto err_unlock; |
| 825 | } | 825 | } |
| 826 | 826 | ||
| 827 | if(unlikely(cmd != cuc_resume)) | 827 | if (unlikely(cmd != cuc_resume)) |
| 828 | iowrite32(dma_addr, &nic->csr->scb.gen_ptr); | 828 | iowrite32(dma_addr, &nic->csr->scb.gen_ptr); |
| 829 | iowrite8(cmd, &nic->csr->scb.cmd_lo); | 829 | iowrite8(cmd, &nic->csr->scb.cmd_lo); |
| 830 | 830 | ||
| @@ -843,7 +843,7 @@ static int e100_exec_cb(struct nic *nic, struct sk_buff *skb, | |||
| 843 | 843 | ||
| 844 | spin_lock_irqsave(&nic->cb_lock, flags); | 844 | spin_lock_irqsave(&nic->cb_lock, flags); |
| 845 | 845 | ||
| 846 | if(unlikely(!nic->cbs_avail)) { | 846 | if (unlikely(!nic->cbs_avail)) { |
| 847 | err = -ENOMEM; | 847 | err = -ENOMEM; |
| 848 | goto err_unlock; | 848 | goto err_unlock; |
| 849 | } | 849 | } |
| @@ -853,7 +853,7 @@ static int e100_exec_cb(struct nic *nic, struct sk_buff *skb, | |||
| 853 | nic->cbs_avail--; | 853 | nic->cbs_avail--; |
| 854 | cb->skb = skb; | 854 | cb->skb = skb; |
| 855 | 855 | ||
| 856 | if(unlikely(!nic->cbs_avail)) | 856 | if (unlikely(!nic->cbs_avail)) |
| 857 | err = -ENOSPC; | 857 | err = -ENOSPC; |
| 858 | 858 | ||
| 859 | cb_prepare(nic, cb, skb); | 859 | cb_prepare(nic, cb, skb); |
| @@ -864,15 +864,15 @@ static int e100_exec_cb(struct nic *nic, struct sk_buff *skb, | |||
| 864 | wmb(); | 864 | wmb(); |
| 865 | cb->prev->command &= cpu_to_le16(~cb_s); | 865 | cb->prev->command &= cpu_to_le16(~cb_s); |
| 866 | 866 | ||
| 867 | while(nic->cb_to_send != nic->cb_to_use) { | 867 | while (nic->cb_to_send != nic->cb_to_use) { |
| 868 | if(unlikely(e100_exec_cmd(nic, nic->cuc_cmd, | 868 | if (unlikely(e100_exec_cmd(nic, nic->cuc_cmd, |
| 869 | nic->cb_to_send->dma_addr))) { | 869 | nic->cb_to_send->dma_addr))) { |
| 870 | /* Ok, here's where things get sticky. It's | 870 | /* Ok, here's where things get sticky. It's |
| 871 | * possible that we can't schedule the command | 871 | * possible that we can't schedule the command |
| 872 | * because the controller is too busy, so | 872 | * because the controller is too busy, so |
| 873 | * let's just queue the command and try again | 873 | * let's just queue the command and try again |
| 874 | * when another command is scheduled. */ | 874 | * when another command is scheduled. */ |
| 875 | if(err == -ENOSPC) { | 875 | if (err == -ENOSPC) { |
| 876 | //request a reset | 876 | //request a reset |
| 877 | schedule_work(&nic->tx_timeout_task); | 877 | schedule_work(&nic->tx_timeout_task); |
| 878 | } | 878 | } |
| @@ -945,7 +945,7 @@ static void e100_get_defaults(struct nic *nic) | |||
| 945 | 945 | ||
| 946 | /* MAC type is encoded as rev ID; exception: ICH is treated as 82559 */ | 946 | /* MAC type is encoded as rev ID; exception: ICH is treated as 82559 */ |
| 947 | nic->mac = (nic->flags & ich) ? mac_82559_D101M : nic->pdev->revision; | 947 | nic->mac = (nic->flags & ich) ? mac_82559_D101M : nic->pdev->revision; |
| 948 | if(nic->mac == mac_unknown) | 948 | if (nic->mac == mac_unknown) |
| 949 | nic->mac = mac_82557_D100_A; | 949 | nic->mac = mac_82557_D100_A; |
| 950 | 950 | ||
| 951 | nic->params.rfds = rfds; | 951 | nic->params.rfds = rfds; |
| @@ -1008,23 +1008,23 @@ static void e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb) | |||
| 1008 | config->adaptive_ifs = nic->adaptive_ifs; | 1008 | config->adaptive_ifs = nic->adaptive_ifs; |
| 1009 | config->loopback = nic->loopback; | 1009 | config->loopback = nic->loopback; |
| 1010 | 1010 | ||
| 1011 | if(nic->mii.force_media && nic->mii.full_duplex) | 1011 | if (nic->mii.force_media && nic->mii.full_duplex) |
| 1012 | config->full_duplex_force = 0x1; /* 1=force, 0=auto */ | 1012 | config->full_duplex_force = 0x1; /* 1=force, 0=auto */ |
| 1013 | 1013 | ||
| 1014 | if(nic->flags & promiscuous || nic->loopback) { | 1014 | if (nic->flags & promiscuous || nic->loopback) { |
| 1015 | config->rx_save_bad_frames = 0x1; /* 1=save, 0=discard */ | 1015 | config->rx_save_bad_frames = 0x1; /* 1=save, 0=discard */ |
| 1016 | config->rx_discard_short_frames = 0x0; /* 1=discard, 0=save */ | 1016 | config->rx_discard_short_frames = 0x0; /* 1=discard, 0=save */ |
| 1017 | config->promiscuous_mode = 0x1; /* 1=on, 0=off */ | 1017 | config->promiscuous_mode = 0x1; /* 1=on, 0=off */ |
| 1018 | } | 1018 | } |
| 1019 | 1019 | ||
| 1020 | if(nic->flags & multicast_all) | 1020 | if (nic->flags & multicast_all) |
| 1021 | config->multicast_all = 0x1; /* 1=accept, 0=no */ | 1021 | config->multicast_all = 0x1; /* 1=accept, 0=no */ |
| 1022 | 1022 | ||
| 1023 | /* disable WoL when up */ | 1023 | /* disable WoL when up */ |
| 1024 | if(netif_running(nic->netdev) || !(nic->flags & wol_magic)) | 1024 | if (netif_running(nic->netdev) || !(nic->flags & wol_magic)) |
| 1025 | config->magic_packet_disable = 0x1; /* 1=off, 0=on */ | 1025 | config->magic_packet_disable = 0x1; /* 1=off, 0=on */ |
| 1026 | 1026 | ||
| 1027 | if(nic->mac >= mac_82558_D101_A4) { | 1027 | if (nic->mac >= mac_82558_D101_A4) { |
| 1028 | config->fc_disable = 0x1; /* 1=Tx fc off, 0=Tx fc on */ | 1028 | config->fc_disable = 0x1; /* 1=Tx fc off, 0=Tx fc on */ |
| 1029 | config->mwi_enable = 0x1; /* 1=enable, 0=disable */ | 1029 | config->mwi_enable = 0x1; /* 1=enable, 0=disable */ |
| 1030 | config->standard_tcb = 0x0; /* 1=standard, 0=extended */ | 1030 | config->standard_tcb = 0x0; /* 1=standard, 0=extended */ |
| @@ -1369,21 +1369,21 @@ static int e100_phy_init(struct nic *nic) | |||
| 1369 | u16 bmcr, stat, id_lo, id_hi, cong; | 1369 | u16 bmcr, stat, id_lo, id_hi, cong; |
| 1370 | 1370 | ||
| 1371 | /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */ | 1371 | /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */ |
| 1372 | for(addr = 0; addr < 32; addr++) { | 1372 | for (addr = 0; addr < 32; addr++) { |
| 1373 | nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr; | 1373 | nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr; |
| 1374 | bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR); | 1374 | bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR); |
| 1375 | stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR); | 1375 | stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR); |
| 1376 | stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR); | 1376 | stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR); |
| 1377 | if(!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0)))) | 1377 | if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0)))) |
| 1378 | break; | 1378 | break; |
| 1379 | } | 1379 | } |
| 1380 | DPRINTK(HW, DEBUG, "phy_addr = %d\n", nic->mii.phy_id); | 1380 | DPRINTK(HW, DEBUG, "phy_addr = %d\n", nic->mii.phy_id); |
| 1381 | if(addr == 32) | 1381 | if (addr == 32) |
| 1382 | return -EAGAIN; | 1382 | return -EAGAIN; |
| 1383 | 1383 | ||
| 1384 | /* Selected the phy and isolate the rest */ | 1384 | /* Selected the phy and isolate the rest */ |
| 1385 | for(addr = 0; addr < 32; addr++) { | 1385 | for (addr = 0; addr < 32; addr++) { |
| 1386 | if(addr != nic->mii.phy_id) { | 1386 | if (addr != nic->mii.phy_id) { |
| 1387 | mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE); | 1387 | mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE); |
| 1388 | } else { | 1388 | } else { |
| 1389 | bmcr = mdio_read(netdev, addr, MII_BMCR); | 1389 | bmcr = mdio_read(netdev, addr, MII_BMCR); |
| @@ -1400,7 +1400,7 @@ static int e100_phy_init(struct nic *nic) | |||
| 1400 | 1400 | ||
| 1401 | /* Handle National tx phys */ | 1401 | /* Handle National tx phys */ |
| 1402 | #define NCS_PHY_MODEL_MASK 0xFFF0FFFF | 1402 | #define NCS_PHY_MODEL_MASK 0xFFF0FFFF |
| 1403 | if((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) { | 1403 | if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) { |
| 1404 | /* Disable congestion control */ | 1404 | /* Disable congestion control */ |
| 1405 | cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG); | 1405 | cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG); |
| 1406 | cong |= NSC_CONG_TXREADY; | 1406 | cong |= NSC_CONG_TXREADY; |
| @@ -1408,7 +1408,7 @@ static int e100_phy_init(struct nic *nic) | |||
| 1408 | mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong); | 1408 | mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong); |
| 1409 | } | 1409 | } |
| 1410 | 1410 | ||
| 1411 | if((nic->mac >= mac_82550_D102) || ((nic->flags & ich) && | 1411 | if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) && |
| 1412 | (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) && | 1412 | (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) && |
| 1413 | !(nic->eeprom[eeprom_cnfg_mdix] & eeprom_mdix_enabled))) { | 1413 | !(nic->eeprom[eeprom_cnfg_mdix] & eeprom_mdix_enabled))) { |
| 1414 | /* enable/disable MDI/MDI-X auto-switching. */ | 1414 | /* enable/disable MDI/MDI-X auto-switching. */ |
| @@ -1426,25 +1426,25 @@ static int e100_hw_init(struct nic *nic) | |||
| 1426 | e100_hw_reset(nic); | 1426 | e100_hw_reset(nic); |
| 1427 | 1427 | ||
| 1428 | DPRINTK(HW, ERR, "e100_hw_init\n"); | 1428 | DPRINTK(HW, ERR, "e100_hw_init\n"); |
| 1429 | if(!in_interrupt() && (err = e100_self_test(nic))) | 1429 | if (!in_interrupt() && (err = e100_self_test(nic))) |
| 1430 | return err; | 1430 | return err; |
| 1431 | 1431 | ||
| 1432 | if((err = e100_phy_init(nic))) | 1432 | if ((err = e100_phy_init(nic))) |
| 1433 | return err; | 1433 | return err; |
| 1434 | if((err = e100_exec_cmd(nic, cuc_load_base, 0))) | 1434 | if ((err = e100_exec_cmd(nic, cuc_load_base, 0))) |
| 1435 | return err; | 1435 | return err; |
| 1436 | if((err = e100_exec_cmd(nic, ruc_load_base, 0))) | 1436 | if ((err = e100_exec_cmd(nic, ruc_load_base, 0))) |
| 1437 | return err; | 1437 | return err; |
| 1438 | if ((err = e100_exec_cb_wait(nic, NULL, e100_setup_ucode))) | 1438 | if ((err = e100_exec_cb_wait(nic, NULL, e100_setup_ucode))) |
| 1439 | return err; | 1439 | return err; |
| 1440 | if((err = e100_exec_cb(nic, NULL, e100_configure))) | 1440 | if ((err = e100_exec_cb(nic, NULL, e100_configure))) |
| 1441 | return err; | 1441 | return err; |
| 1442 | if((err = e100_exec_cb(nic, NULL, e100_setup_iaaddr))) | 1442 | if ((err = e100_exec_cb(nic, NULL, e100_setup_iaaddr))) |
| 1443 | return err; | 1443 | return err; |
| 1444 | if((err = e100_exec_cmd(nic, cuc_dump_addr, | 1444 | if ((err = e100_exec_cmd(nic, cuc_dump_addr, |
| 1445 | nic->dma_addr + offsetof(struct mem, stats)))) | 1445 | nic->dma_addr + offsetof(struct mem, stats)))) |
| 1446 | return err; | 1446 | return err; |
| 1447 | if((err = e100_exec_cmd(nic, cuc_dump_reset, 0))) | 1447 | if ((err = e100_exec_cmd(nic, cuc_dump_reset, 0))) |
| 1448 | return err; | 1448 | return err; |
| 1449 | 1449 | ||
| 1450 | e100_disable_irq(nic); | 1450 | e100_disable_irq(nic); |
| @@ -1460,7 +1460,7 @@ static void e100_multi(struct nic *nic, struct cb *cb, struct sk_buff *skb) | |||
| 1460 | 1460 | ||
| 1461 | cb->command = cpu_to_le16(cb_multi); | 1461 | cb->command = cpu_to_le16(cb_multi); |
| 1462 | cb->u.multi.count = cpu_to_le16(count * ETH_ALEN); | 1462 | cb->u.multi.count = cpu_to_le16(count * ETH_ALEN); |
| 1463 | for(i = 0; list && i < count; i++, list = list->next) | 1463 | for (i = 0; list && i < count; i++, list = list->next) |
| 1464 | memcpy(&cb->u.multi.addr[i*ETH_ALEN], &list->dmi_addr, | 1464 | memcpy(&cb->u.multi.addr[i*ETH_ALEN], &list->dmi_addr, |
| 1465 | ETH_ALEN); | 1465 | ETH_ALEN); |
| 1466 | } | 1466 | } |
| @@ -1472,12 +1472,12 @@ static void e100_set_multicast_list(struct net_device *netdev) | |||
| 1472 | DPRINTK(HW, DEBUG, "mc_count=%d, flags=0x%04X\n", | 1472 | DPRINTK(HW, DEBUG, "mc_count=%d, flags=0x%04X\n", |
| 1473 | netdev->mc_count, netdev->flags); | 1473 | netdev->mc_count, netdev->flags); |
| 1474 | 1474 | ||
| 1475 | if(netdev->flags & IFF_PROMISC) | 1475 | if (netdev->flags & IFF_PROMISC) |
| 1476 | nic->flags |= promiscuous; | 1476 | nic->flags |= promiscuous; |
| 1477 | else | 1477 | else |
| 1478 | nic->flags &= ~promiscuous; | 1478 | nic->flags &= ~promiscuous; |
| 1479 | 1479 | ||
| 1480 | if(netdev->flags & IFF_ALLMULTI || | 1480 | if (netdev->flags & IFF_ALLMULTI || |
| 1481 | netdev->mc_count > E100_MAX_MULTICAST_ADDRS) | 1481 | netdev->mc_count > E100_MAX_MULTICAST_ADDRS) |
| 1482 | nic->flags |= multicast_all; | 1482 | nic->flags |= multicast_all; |
| 1483 | else | 1483 | else |
| @@ -1500,7 +1500,7 @@ static void e100_update_stats(struct nic *nic) | |||
| 1500 | * complete, so we're always waiting for results of the | 1500 | * complete, so we're always waiting for results of the |
| 1501 | * previous command. */ | 1501 | * previous command. */ |
| 1502 | 1502 | ||
| 1503 | if(*complete == cpu_to_le32(cuc_dump_reset_complete)) { | 1503 | if (*complete == cpu_to_le32(cuc_dump_reset_complete)) { |
| 1504 | *complete = 0; | 1504 | *complete = 0; |
| 1505 | nic->tx_frames = le32_to_cpu(s->tx_good_frames); | 1505 | nic->tx_frames = le32_to_cpu(s->tx_good_frames); |
| 1506 | nic->tx_collisions = le32_to_cpu(s->tx_total_collisions); | 1506 | nic->tx_collisions = le32_to_cpu(s->tx_total_collisions); |
| @@ -1527,12 +1527,12 @@ static void e100_update_stats(struct nic *nic) | |||
| 1527 | le32_to_cpu(s->tx_single_collisions); | 1527 | le32_to_cpu(s->tx_single_collisions); |
| 1528 | nic->tx_multiple_collisions += | 1528 | nic->tx_multiple_collisions += |
| 1529 | le32_to_cpu(s->tx_multiple_collisions); | 1529 | le32_to_cpu(s->tx_multiple_collisions); |
| 1530 | if(nic->mac >= mac_82558_D101_A4) { | 1530 | if (nic->mac >= mac_82558_D101_A4) { |
| 1531 | nic->tx_fc_pause += le32_to_cpu(s->fc_xmt_pause); | 1531 | nic->tx_fc_pause += le32_to_cpu(s->fc_xmt_pause); |
| 1532 | nic->rx_fc_pause += le32_to_cpu(s->fc_rcv_pause); | 1532 | nic->rx_fc_pause += le32_to_cpu(s->fc_rcv_pause); |
| 1533 | nic->rx_fc_unsupported += | 1533 | nic->rx_fc_unsupported += |
| 1534 | le32_to_cpu(s->fc_rcv_unsupported); | 1534 | le32_to_cpu(s->fc_rcv_unsupported); |
| 1535 | if(nic->mac >= mac_82559_D101M) { | 1535 | if (nic->mac >= mac_82559_D101M) { |
| 1536 | nic->tx_tco_frames += | 1536 | nic->tx_tco_frames += |
| 1537 | le16_to_cpu(s->xmt_tco_frames); | 1537 | le16_to_cpu(s->xmt_tco_frames); |
| 1538 | nic->rx_tco_frames += | 1538 | nic->rx_tco_frames += |
| @@ -1542,7 +1542,7 @@ static void e100_update_stats(struct nic *nic) | |||
| 1542 | } | 1542 | } |
| 1543 | 1543 | ||
| 1544 | 1544 | ||
| 1545 | if(e100_exec_cmd(nic, cuc_dump_reset, 0)) | 1545 | if (e100_exec_cmd(nic, cuc_dump_reset, 0)) |
| 1546 | DPRINTK(TX_ERR, DEBUG, "exec cuc_dump_reset failed\n"); | 1546 | DPRINTK(TX_ERR, DEBUG, "exec cuc_dump_reset failed\n"); |
| 1547 | } | 1547 | } |
| 1548 | 1548 | ||
| @@ -1551,19 +1551,19 @@ static void e100_adjust_adaptive_ifs(struct nic *nic, int speed, int duplex) | |||
| 1551 | /* Adjust inter-frame-spacing (IFS) between two transmits if | 1551 | /* Adjust inter-frame-spacing (IFS) between two transmits if |
| 1552 | * we're getting collisions on a half-duplex connection. */ | 1552 | * we're getting collisions on a half-duplex connection. */ |
| 1553 | 1553 | ||
| 1554 | if(duplex == DUPLEX_HALF) { | 1554 | if (duplex == DUPLEX_HALF) { |
| 1555 | u32 prev = nic->adaptive_ifs; | 1555 | u32 prev = nic->adaptive_ifs; |
| 1556 | u32 min_frames = (speed == SPEED_100) ? 1000 : 100; | 1556 | u32 min_frames = (speed == SPEED_100) ? 1000 : 100; |
| 1557 | 1557 | ||
| 1558 | if((nic->tx_frames / 32 < nic->tx_collisions) && | 1558 | if ((nic->tx_frames / 32 < nic->tx_collisions) && |
| 1559 | (nic->tx_frames > min_frames)) { | 1559 | (nic->tx_frames > min_frames)) { |
| 1560 | if(nic->adaptive_ifs < 60) | 1560 | if (nic->adaptive_ifs < 60) |
| 1561 | nic->adaptive_ifs += 5; | 1561 | nic->adaptive_ifs += 5; |
| 1562 | } else if (nic->tx_frames < min_frames) { | 1562 | } else if (nic->tx_frames < min_frames) { |
| 1563 | if(nic->adaptive_ifs >= 5) | 1563 | if (nic->adaptive_ifs >= 5) |
| 1564 | nic->adaptive_ifs -= 5; | 1564 | nic->adaptive_ifs -= 5; |
| 1565 | } | 1565 | } |
| 1566 | if(nic->adaptive_ifs != prev) | 1566 | if (nic->adaptive_ifs != prev) |
| 1567 | e100_exec_cb(nic, NULL, e100_configure); | 1567 | e100_exec_cb(nic, NULL, e100_configure); |
| 1568 | } | 1568 | } |
| 1569 | } | 1569 | } |
| @@ -1579,12 +1579,12 @@ static void e100_watchdog(unsigned long data) | |||
| 1579 | 1579 | ||
| 1580 | mii_ethtool_gset(&nic->mii, &cmd); | 1580 | mii_ethtool_gset(&nic->mii, &cmd); |
| 1581 | 1581 | ||
| 1582 | if(mii_link_ok(&nic->mii) && !netif_carrier_ok(nic->netdev)) { | 1582 | if (mii_link_ok(&nic->mii) && !netif_carrier_ok(nic->netdev)) { |
| 1583 | printk(KERN_INFO "e100: %s NIC Link is Up %s Mbps %s Duplex\n", | 1583 | printk(KERN_INFO "e100: %s NIC Link is Up %s Mbps %s Duplex\n", |
| 1584 | nic->netdev->name, | 1584 | nic->netdev->name, |
| 1585 | cmd.speed == SPEED_100 ? "100" : "10", | 1585 | cmd.speed == SPEED_100 ? "100" : "10", |
| 1586 | cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); | 1586 | cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); |
| 1587 | } else if(!mii_link_ok(&nic->mii) && netif_carrier_ok(nic->netdev)) { | 1587 | } else if (!mii_link_ok(&nic->mii) && netif_carrier_ok(nic->netdev)) { |
| 1588 | printk(KERN_INFO "e100: %s NIC Link is Down\n", | 1588 | printk(KERN_INFO "e100: %s NIC Link is Down\n", |
| 1589 | nic->netdev->name); | 1589 | nic->netdev->name); |
| 1590 | } | 1590 | } |
| @@ -1604,11 +1604,11 @@ static void e100_watchdog(unsigned long data) | |||
| 1604 | e100_update_stats(nic); | 1604 | e100_update_stats(nic); |
| 1605 | e100_adjust_adaptive_ifs(nic, cmd.speed, cmd.duplex); | 1605 | e100_adjust_adaptive_ifs(nic, cmd.speed, cmd.duplex); |
| 1606 | 1606 | ||
| 1607 | if(nic->mac <= mac_82557_D100_C) | 1607 | if (nic->mac <= mac_82557_D100_C) |
| 1608 | /* Issue a multicast command to workaround a 557 lock up */ | 1608 | /* Issue a multicast command to workaround a 557 lock up */ |
| 1609 | e100_set_multicast_list(nic->netdev); | 1609 | e100_set_multicast_list(nic->netdev); |
| 1610 | 1610 | ||
| 1611 | if(nic->flags & ich && cmd.speed==SPEED_10 && cmd.duplex==DUPLEX_HALF) | 1611 | if (nic->flags & ich && cmd.speed==SPEED_10 && cmd.duplex==DUPLEX_HALF) |
| 1612 | /* Need SW workaround for ICH[x] 10Mbps/half duplex Tx hang. */ | 1612 | /* Need SW workaround for ICH[x] 10Mbps/half duplex Tx hang. */ |
| 1613 | nic->flags |= ich_10h_workaround; | 1613 | nic->flags |= ich_10h_workaround; |
| 1614 | else | 1614 | else |
| @@ -1623,7 +1623,7 @@ static void e100_xmit_prepare(struct nic *nic, struct cb *cb, | |||
| 1623 | { | 1623 | { |
| 1624 | cb->command = nic->tx_command; | 1624 | cb->command = nic->tx_command; |
| 1625 | /* interrupt every 16 packets regardless of delay */ | 1625 | /* interrupt every 16 packets regardless of delay */ |
| 1626 | if((nic->cbs_avail & ~15) == nic->cbs_avail) | 1626 | if ((nic->cbs_avail & ~15) == nic->cbs_avail) |
| 1627 | cb->command |= cpu_to_le16(cb_i); | 1627 | cb->command |= cpu_to_le16(cb_i); |
| 1628 | cb->u.tcb.tbd_array = cb->dma_addr + offsetof(struct cb, u.tcb.tbd); | 1628 | cb->u.tcb.tbd_array = cb->dma_addr + offsetof(struct cb, u.tcb.tbd); |
| 1629 | cb->u.tcb.tcb_byte_count = 0; | 1629 | cb->u.tcb.tcb_byte_count = 0; |
| @@ -1640,18 +1640,18 @@ static int e100_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
| 1640 | struct nic *nic = netdev_priv(netdev); | 1640 | struct nic *nic = netdev_priv(netdev); |
| 1641 | int err; | 1641 | int err; |
| 1642 | 1642 | ||
| 1643 | if(nic->flags & ich_10h_workaround) { | 1643 | if (nic->flags & ich_10h_workaround) { |
| 1644 | /* SW workaround for ICH[x] 10Mbps/half duplex Tx hang. | 1644 | /* SW workaround for ICH[x] 10Mbps/half duplex Tx hang. |
| 1645 | Issue a NOP command followed by a 1us delay before | 1645 | Issue a NOP command followed by a 1us delay before |
| 1646 | issuing the Tx command. */ | 1646 | issuing the Tx command. */ |
| 1647 | if(e100_exec_cmd(nic, cuc_nop, 0)) | 1647 | if (e100_exec_cmd(nic, cuc_nop, 0)) |
| 1648 | DPRINTK(TX_ERR, DEBUG, "exec cuc_nop failed\n"); | 1648 | DPRINTK(TX_ERR, DEBUG, "exec cuc_nop failed\n"); |
| 1649 | udelay(1); | 1649 | udelay(1); |
| 1650 | } | 1650 | } |
| 1651 | 1651 | ||
| 1652 | err = e100_exec_cb(nic, skb, e100_xmit_prepare); | 1652 | err = e100_exec_cb(nic, skb, e100_xmit_prepare); |
| 1653 | 1653 | ||
| 1654 | switch(err) { | 1654 | switch (err) { |
| 1655 | case -ENOSPC: | 1655 | case -ENOSPC: |
| 1656 | /* We queued the skb, but now we're out of space. */ | 1656 | /* We queued the skb, but now we're out of space. */ |
| 1657 | DPRINTK(TX_ERR, DEBUG, "No space for CB\n"); | 1657 | DPRINTK(TX_ERR, DEBUG, "No space for CB\n"); |
| @@ -1677,14 +1677,14 @@ static int e100_tx_clean(struct nic *nic) | |||
| 1677 | spin_lock(&nic->cb_lock); | 1677 | spin_lock(&nic->cb_lock); |
| 1678 | 1678 | ||
| 1679 | /* Clean CBs marked complete */ | 1679 | /* Clean CBs marked complete */ |
| 1680 | for(cb = nic->cb_to_clean; | 1680 | for (cb = nic->cb_to_clean; |
| 1681 | cb->status & cpu_to_le16(cb_complete); | 1681 | cb->status & cpu_to_le16(cb_complete); |
| 1682 | cb = nic->cb_to_clean = cb->next) { | 1682 | cb = nic->cb_to_clean = cb->next) { |
| 1683 | DPRINTK(TX_DONE, DEBUG, "cb[%d]->status = 0x%04X\n", | 1683 | DPRINTK(TX_DONE, DEBUG, "cb[%d]->status = 0x%04X\n", |
| 1684 | (int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)), | 1684 | (int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)), |
| 1685 | cb->status); | 1685 | cb->status); |
| 1686 | 1686 | ||
| 1687 | if(likely(cb->skb != NULL)) { | 1687 | if (likely(cb->skb != NULL)) { |
| 1688 | dev->stats.tx_packets++; | 1688 | dev->stats.tx_packets++; |
| 1689 | dev->stats.tx_bytes += cb->skb->len; | 1689 | dev->stats.tx_bytes += cb->skb->len; |
| 1690 | 1690 | ||
| @@ -1703,7 +1703,7 @@ static int e100_tx_clean(struct nic *nic) | |||
| 1703 | spin_unlock(&nic->cb_lock); | 1703 | spin_unlock(&nic->cb_lock); |
| 1704 | 1704 | ||
| 1705 | /* Recover from running out of Tx resources in xmit_frame */ | 1705 | /* Recover from running out of Tx resources in xmit_frame */ |
| 1706 | if(unlikely(tx_cleaned && netif_queue_stopped(nic->netdev))) | 1706 | if (unlikely(tx_cleaned && netif_queue_stopped(nic->netdev))) |
| 1707 | netif_wake_queue(nic->netdev); | 1707 | netif_wake_queue(nic->netdev); |
| 1708 | 1708 | ||
| 1709 | return tx_cleaned; | 1709 | return tx_cleaned; |
| @@ -1711,10 +1711,10 @@ static int e100_tx_clean(struct nic *nic) | |||
| 1711 | 1711 | ||
| 1712 | static void e100_clean_cbs(struct nic *nic) | 1712 | static void e100_clean_cbs(struct nic *nic) |
| 1713 | { | 1713 | { |
| 1714 | if(nic->cbs) { | 1714 | if (nic->cbs) { |
| 1715 | while(nic->cbs_avail != nic->params.cbs.count) { | 1715 | while (nic->cbs_avail != nic->params.cbs.count) { |
| 1716 | struct cb *cb = nic->cb_to_clean; | 1716 | struct cb *cb = nic->cb_to_clean; |
| 1717 | if(cb->skb) { | 1717 | if (cb->skb) { |
| 1718 | pci_unmap_single(nic->pdev, | 1718 | pci_unmap_single(nic->pdev, |
| 1719 | le32_to_cpu(cb->u.tcb.tbd.buf_addr), | 1719 | le32_to_cpu(cb->u.tcb.tbd.buf_addr), |
| 1720 | le16_to_cpu(cb->u.tcb.tbd.size), | 1720 | le16_to_cpu(cb->u.tcb.tbd.size), |
| @@ -1746,10 +1746,10 @@ static int e100_alloc_cbs(struct nic *nic) | |||
| 1746 | 1746 | ||
| 1747 | nic->cbs = pci_alloc_consistent(nic->pdev, | 1747 | nic->cbs = pci_alloc_consistent(nic->pdev, |
| 1748 | sizeof(struct cb) * count, &nic->cbs_dma_addr); | 1748 | sizeof(struct cb) * count, &nic->cbs_dma_addr); |
| 1749 | if(!nic->cbs) | 1749 | if (!nic->cbs) |
| 1750 | return -ENOMEM; | 1750 | return -ENOMEM; |
| 1751 | 1751 | ||
| 1752 | for(cb = nic->cbs, i = 0; i < count; cb++, i++) { | 1752 | for (cb = nic->cbs, i = 0; i < count; cb++, i++) { |
| 1753 | cb->next = (i + 1 < count) ? cb + 1 : nic->cbs; | 1753 | cb->next = (i + 1 < count) ? cb + 1 : nic->cbs; |
| 1754 | cb->prev = (i == 0) ? nic->cbs + count - 1 : cb - 1; | 1754 | cb->prev = (i == 0) ? nic->cbs + count - 1 : cb - 1; |
| 1755 | 1755 | ||
| @@ -1767,14 +1767,14 @@ static int e100_alloc_cbs(struct nic *nic) | |||
| 1767 | 1767 | ||
| 1768 | static inline void e100_start_receiver(struct nic *nic, struct rx *rx) | 1768 | static inline void e100_start_receiver(struct nic *nic, struct rx *rx) |
| 1769 | { | 1769 | { |
| 1770 | if(!nic->rxs) return; | 1770 | if (!nic->rxs) return; |
| 1771 | if(RU_SUSPENDED != nic->ru_running) return; | 1771 | if (RU_SUSPENDED != nic->ru_running) return; |
| 1772 | 1772 | ||
| 1773 | /* handle init time starts */ | 1773 | /* handle init time starts */ |
| 1774 | if(!rx) rx = nic->rxs; | 1774 | if (!rx) rx = nic->rxs; |
| 1775 | 1775 | ||
| 1776 | /* (Re)start RU if suspended or idle and RFA is non-NULL */ | 1776 | /* (Re)start RU if suspended or idle and RFA is non-NULL */ |
| 1777 | if(rx->skb) { | 1777 | if (rx->skb) { |
| 1778 | e100_exec_cmd(nic, ruc_start, rx->dma_addr); | 1778 | e100_exec_cmd(nic, ruc_start, rx->dma_addr); |
| 1779 | nic->ru_running = RU_RUNNING; | 1779 | nic->ru_running = RU_RUNNING; |
| 1780 | } | 1780 | } |
| @@ -1783,7 +1783,7 @@ static inline void e100_start_receiver(struct nic *nic, struct rx *rx) | |||
| 1783 | #define RFD_BUF_LEN (sizeof(struct rfd) + VLAN_ETH_FRAME_LEN) | 1783 | #define RFD_BUF_LEN (sizeof(struct rfd) + VLAN_ETH_FRAME_LEN) |
| 1784 | static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx) | 1784 | static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx) |
| 1785 | { | 1785 | { |
| 1786 | if(!(rx->skb = netdev_alloc_skb(nic->netdev, RFD_BUF_LEN + NET_IP_ALIGN))) | 1786 | if (!(rx->skb = netdev_alloc_skb(nic->netdev, RFD_BUF_LEN + NET_IP_ALIGN))) |
| 1787 | return -ENOMEM; | 1787 | return -ENOMEM; |
| 1788 | 1788 | ||
| 1789 | /* Align, init, and map the RFD. */ | 1789 | /* Align, init, and map the RFD. */ |
| @@ -1820,7 +1820,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx, | |||
| 1820 | struct rfd *rfd = (struct rfd *)skb->data; | 1820 | struct rfd *rfd = (struct rfd *)skb->data; |
| 1821 | u16 rfd_status, actual_size; | 1821 | u16 rfd_status, actual_size; |
| 1822 | 1822 | ||
| 1823 | if(unlikely(work_done && *work_done >= work_to_do)) | 1823 | if (unlikely(work_done && *work_done >= work_to_do)) |
| 1824 | return -EAGAIN; | 1824 | return -EAGAIN; |
| 1825 | 1825 | ||
| 1826 | /* Need to sync before taking a peek at cb_complete bit */ | 1826 | /* Need to sync before taking a peek at cb_complete bit */ |
| @@ -1847,7 +1847,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx, | |||
| 1847 | 1847 | ||
| 1848 | /* Get actual data size */ | 1848 | /* Get actual data size */ |
| 1849 | actual_size = le16_to_cpu(rfd->actual_size) & 0x3FFF; | 1849 | actual_size = le16_to_cpu(rfd->actual_size) & 0x3FFF; |
| 1850 | if(unlikely(actual_size > RFD_BUF_LEN - sizeof(struct rfd))) | 1850 | if (unlikely(actual_size > RFD_BUF_LEN - sizeof(struct rfd))) |
| 1851 | actual_size = RFD_BUF_LEN - sizeof(struct rfd); | 1851 | actual_size = RFD_BUF_LEN - sizeof(struct rfd); |
| 1852 | 1852 | ||
| 1853 | /* Get data */ | 1853 | /* Get data */ |
| @@ -1872,10 +1872,10 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx, | |||
| 1872 | skb_put(skb, actual_size); | 1872 | skb_put(skb, actual_size); |
| 1873 | skb->protocol = eth_type_trans(skb, nic->netdev); | 1873 | skb->protocol = eth_type_trans(skb, nic->netdev); |
| 1874 | 1874 | ||
| 1875 | if(unlikely(!(rfd_status & cb_ok))) { | 1875 | if (unlikely(!(rfd_status & cb_ok))) { |
| 1876 | /* Don't indicate if hardware indicates errors */ | 1876 | /* Don't indicate if hardware indicates errors */ |
| 1877 | dev_kfree_skb_any(skb); | 1877 | dev_kfree_skb_any(skb); |
| 1878 | } else if(actual_size > ETH_DATA_LEN + VLAN_ETH_HLEN) { | 1878 | } else if (actual_size > ETH_DATA_LEN + VLAN_ETH_HLEN) { |
| 1879 | /* Don't indicate oversized frames */ | 1879 | /* Don't indicate oversized frames */ |
| 1880 | nic->rx_over_length_errors++; | 1880 | nic->rx_over_length_errors++; |
| 1881 | dev_kfree_skb_any(skb); | 1881 | dev_kfree_skb_any(skb); |
| @@ -1883,7 +1883,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx, | |||
| 1883 | dev->stats.rx_packets++; | 1883 | dev->stats.rx_packets++; |
| 1884 | dev->stats.rx_bytes += actual_size; | 1884 | dev->stats.rx_bytes += actual_size; |
| 1885 | netif_receive_skb(skb); | 1885 | netif_receive_skb(skb); |
| 1886 | if(work_done) | 1886 | if (work_done) |
| 1887 | (*work_done)++; | 1887 | (*work_done)++; |
| 1888 | } | 1888 | } |
| 1889 | 1889 | ||
| @@ -1901,7 +1901,7 @@ static void e100_rx_clean(struct nic *nic, unsigned int *work_done, | |||
| 1901 | struct rfd *old_before_last_rfd, *new_before_last_rfd; | 1901 | struct rfd *old_before_last_rfd, *new_before_last_rfd; |
| 1902 | 1902 | ||
| 1903 | /* Indicate newly arrived packets */ | 1903 | /* Indicate newly arrived packets */ |
| 1904 | for(rx = nic->rx_to_clean; rx->skb; rx = nic->rx_to_clean = rx->next) { | 1904 | for (rx = nic->rx_to_clean; rx->skb; rx = nic->rx_to_clean = rx->next) { |
| 1905 | err = e100_rx_indicate(nic, rx, work_done, work_to_do); | 1905 | err = e100_rx_indicate(nic, rx, work_done, work_to_do); |
| 1906 | /* Hit quota or no more to clean */ | 1906 | /* Hit quota or no more to clean */ |
| 1907 | if (-EAGAIN == err || -ENODATA == err) | 1907 | if (-EAGAIN == err || -ENODATA == err) |
| @@ -1922,8 +1922,8 @@ static void e100_rx_clean(struct nic *nic, unsigned int *work_done, | |||
| 1922 | old_before_last_rfd = (struct rfd *)old_before_last_rx->skb->data; | 1922 | old_before_last_rfd = (struct rfd *)old_before_last_rx->skb->data; |
| 1923 | 1923 | ||
| 1924 | /* Alloc new skbs to refill list */ | 1924 | /* Alloc new skbs to refill list */ |
| 1925 | for(rx = nic->rx_to_use; !rx->skb; rx = nic->rx_to_use = rx->next) { | 1925 | for (rx = nic->rx_to_use; !rx->skb; rx = nic->rx_to_use = rx->next) { |
| 1926 | if(unlikely(e100_rx_alloc_skb(nic, rx))) | 1926 | if (unlikely(e100_rx_alloc_skb(nic, rx))) |
| 1927 | break; /* Better luck next time (see watchdog) */ | 1927 | break; /* Better luck next time (see watchdog) */ |
| 1928 | } | 1928 | } |
| 1929 | 1929 | ||
| @@ -1959,11 +1959,11 @@ static void e100_rx_clean(struct nic *nic, unsigned int *work_done, | |||
| 1959 | PCI_DMA_BIDIRECTIONAL); | 1959 | PCI_DMA_BIDIRECTIONAL); |
| 1960 | } | 1960 | } |
| 1961 | 1961 | ||
| 1962 | if(restart_required) { | 1962 | if (restart_required) { |
| 1963 | // ack the rnr? | 1963 | // ack the rnr? |
| 1964 | iowrite8(stat_ack_rnr, &nic->csr->scb.stat_ack); | 1964 | iowrite8(stat_ack_rnr, &nic->csr->scb.stat_ack); |
| 1965 | e100_start_receiver(nic, nic->rx_to_clean); | 1965 | e100_start_receiver(nic, nic->rx_to_clean); |
| 1966 | if(work_done) | 1966 | if (work_done) |
| 1967 | (*work_done)++; | 1967 | (*work_done)++; |
| 1968 | } | 1968 | } |
| 1969 | } | 1969 | } |
| @@ -1975,9 +1975,9 @@ static void e100_rx_clean_list(struct nic *nic) | |||
| 1975 | 1975 | ||
| 1976 | nic->ru_running = RU_UNINITIALIZED; | 1976 | nic->ru_running = RU_UNINITIALIZED; |
| 1977 | 1977 | ||
| 1978 | if(nic->rxs) { | 1978 | if (nic->rxs) { |
| 1979 | for(rx = nic->rxs, i = 0; i < count; rx++, i++) { | 1979 | for (rx = nic->rxs, i = 0; i < count; rx++, i++) { |
| 1980 | if(rx->skb) { | 1980 | if (rx->skb) { |
| 1981 | pci_unmap_single(nic->pdev, rx->dma_addr, | 1981 | pci_unmap_single(nic->pdev, rx->dma_addr, |
| 1982 | RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); | 1982 | RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
| 1983 | dev_kfree_skb(rx->skb); | 1983 | dev_kfree_skb(rx->skb); |
| @@ -1999,13 +1999,13 @@ static int e100_rx_alloc_list(struct nic *nic) | |||
| 1999 | nic->rx_to_use = nic->rx_to_clean = NULL; | 1999 | nic->rx_to_use = nic->rx_to_clean = NULL; |
| 2000 | nic->ru_running = RU_UNINITIALIZED; | 2000 | nic->ru_running = RU_UNINITIALIZED; |
| 2001 | 2001 | ||
| 2002 | if(!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_ATOMIC))) | 2002 | if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_ATOMIC))) |
| 2003 | return -ENOMEM; | 2003 | return -ENOMEM; |
| 2004 | 2004 | ||
| 2005 | for(rx = nic->rxs, i = 0; i < count; rx++, i++) { | 2005 | for (rx = nic->rxs, i = 0; i < count; rx++, i++) { |
| 2006 | rx->next = (i + 1 < count) ? rx + 1 : nic->rxs; | 2006 | rx->next = (i + 1 < count) ? rx + 1 : nic->rxs; |
| 2007 | rx->prev = (i == 0) ? nic->rxs + count - 1 : rx - 1; | 2007 | rx->prev = (i == 0) ? nic->rxs + count - 1 : rx - 1; |
| 2008 | if(e100_rx_alloc_skb(nic, rx)) { | 2008 | if (e100_rx_alloc_skb(nic, rx)) { |
| 2009 | e100_rx_clean_list(nic); | 2009 | e100_rx_clean_list(nic); |
| 2010 | return -ENOMEM; | 2010 | return -ENOMEM; |
| 2011 | } | 2011 | } |
| @@ -2038,7 +2038,7 @@ static irqreturn_t e100_intr(int irq, void *dev_id) | |||
| 2038 | 2038 | ||
| 2039 | DPRINTK(INTR, DEBUG, "stat_ack = 0x%02X\n", stat_ack); | 2039 | DPRINTK(INTR, DEBUG, "stat_ack = 0x%02X\n", stat_ack); |
| 2040 | 2040 | ||
| 2041 | if(stat_ack == stat_ack_not_ours || /* Not our interrupt */ | 2041 | if (stat_ack == stat_ack_not_ours || /* Not our interrupt */ |
| 2042 | stat_ack == stat_ack_not_present) /* Hardware is ejected */ | 2042 | stat_ack == stat_ack_not_present) /* Hardware is ejected */ |
| 2043 | return IRQ_NONE; | 2043 | return IRQ_NONE; |
| 2044 | 2044 | ||
| @@ -2046,10 +2046,10 @@ static irqreturn_t e100_intr(int irq, void *dev_id) | |||
| 2046 | iowrite8(stat_ack, &nic->csr->scb.stat_ack); | 2046 | iowrite8(stat_ack, &nic->csr->scb.stat_ack); |
| 2047 | 2047 | ||
| 2048 | /* We hit Receive No Resource (RNR); restart RU after cleaning */ | 2048 | /* We hit Receive No Resource (RNR); restart RU after cleaning */ |
| 2049 | if(stat_ack & stat_ack_rnr) | 2049 | if (stat_ack & stat_ack_rnr) |
| 2050 | nic->ru_running = RU_SUSPENDED; | 2050 | nic->ru_running = RU_SUSPENDED; |
| 2051 | 2051 | ||
| 2052 | if(likely(netif_rx_schedule_prep(&nic->napi))) { | 2052 | if (likely(netif_rx_schedule_prep(&nic->napi))) { |
| 2053 | e100_disable_irq(nic); | 2053 | e100_disable_irq(nic); |
| 2054 | __netif_rx_schedule(&nic->napi); | 2054 | __netif_rx_schedule(&nic->napi); |
| 2055 | } | 2055 | } |
| @@ -2102,7 +2102,7 @@ static int e100_set_mac_address(struct net_device *netdev, void *p) | |||
| 2102 | 2102 | ||
| 2103 | static int e100_change_mtu(struct net_device *netdev, int new_mtu) | 2103 | static int e100_change_mtu(struct net_device *netdev, int new_mtu) |
| 2104 | { | 2104 | { |
| 2105 | if(new_mtu < ETH_ZLEN || new_mtu > ETH_DATA_LEN) | 2105 | if (new_mtu < ETH_ZLEN || new_mtu > ETH_DATA_LEN) |
| 2106 | return -EINVAL; | 2106 | return -EINVAL; |
| 2107 | netdev->mtu = new_mtu; | 2107 | netdev->mtu = new_mtu; |
| 2108 | return 0; | 2108 | return 0; |
| @@ -2121,16 +2121,16 @@ static int e100_up(struct nic *nic) | |||
| 2121 | { | 2121 | { |
| 2122 | int err; | 2122 | int err; |
| 2123 | 2123 | ||
| 2124 | if((err = e100_rx_alloc_list(nic))) | 2124 | if ((err = e100_rx_alloc_list(nic))) |
| 2125 | return err; | 2125 | return err; |
| 2126 | if((err = e100_alloc_cbs(nic))) | 2126 | if ((err = e100_alloc_cbs(nic))) |
| 2127 | goto err_rx_clean_list; | 2127 | goto err_rx_clean_list; |
| 2128 | if((err = e100_hw_init(nic))) | 2128 | if ((err = e100_hw_init(nic))) |
| 2129 | goto err_clean_cbs; | 2129 | goto err_clean_cbs; |
| 2130 | e100_set_multicast_list(nic->netdev); | 2130 | e100_set_multicast_list(nic->netdev); |
| 2131 | e100_start_receiver(nic, NULL); | 2131 | e100_start_receiver(nic, NULL); |
| 2132 | mod_timer(&nic->watchdog, jiffies); | 2132 | mod_timer(&nic->watchdog, jiffies); |
| 2133 | if((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED, | 2133 | if ((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED, |
| 2134 | nic->netdev->name, nic->netdev))) | 2134 | nic->netdev->name, nic->netdev))) |
| 2135 | goto err_no_irq; | 2135 | goto err_no_irq; |
| 2136 | netif_wake_queue(nic->netdev); | 2136 | netif_wake_queue(nic->netdev); |
| @@ -2192,26 +2192,26 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) | |||
| 2192 | * in loopback mode, and the test passes if the received | 2192 | * in loopback mode, and the test passes if the received |
| 2193 | * packet compares byte-for-byte to the transmitted packet. */ | 2193 | * packet compares byte-for-byte to the transmitted packet. */ |
| 2194 | 2194 | ||
| 2195 | if((err = e100_rx_alloc_list(nic))) | 2195 | if ((err = e100_rx_alloc_list(nic))) |
| 2196 | return err; | 2196 | return err; |
| 2197 | if((err = e100_alloc_cbs(nic))) | 2197 | if ((err = e100_alloc_cbs(nic))) |
| 2198 | goto err_clean_rx; | 2198 | goto err_clean_rx; |
| 2199 | 2199 | ||
| 2200 | /* ICH PHY loopback is broken so do MAC loopback instead */ | 2200 | /* ICH PHY loopback is broken so do MAC loopback instead */ |
| 2201 | if(nic->flags & ich && loopback_mode == lb_phy) | 2201 | if (nic->flags & ich && loopback_mode == lb_phy) |
| 2202 | loopback_mode = lb_mac; | 2202 | loopback_mode = lb_mac; |
| 2203 | 2203 | ||
| 2204 | nic->loopback = loopback_mode; | 2204 | nic->loopback = loopback_mode; |
| 2205 | if((err = e100_hw_init(nic))) | 2205 | if ((err = e100_hw_init(nic))) |
| 2206 | goto err_loopback_none; | 2206 | goto err_loopback_none; |
| 2207 | 2207 | ||
| 2208 | if(loopback_mode == lb_phy) | 2208 | if (loopback_mode == lb_phy) |
| 2209 | mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, | 2209 | mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, |
| 2210 | BMCR_LOOPBACK); | 2210 | BMCR_LOOPBACK); |
| 2211 | 2211 | ||
| 2212 | e100_start_receiver(nic, NULL); | 2212 | e100_start_receiver(nic, NULL); |
| 2213 | 2213 | ||
| 2214 | if(!(skb = netdev_alloc_skb(nic->netdev, ETH_DATA_LEN))) { | 2214 | if (!(skb = netdev_alloc_skb(nic->netdev, ETH_DATA_LEN))) { |
| 2215 | err = -ENOMEM; | 2215 | err = -ENOMEM; |
| 2216 | goto err_loopback_none; | 2216 | goto err_loopback_none; |
| 2217 | } | 2217 | } |
| @@ -2224,7 +2224,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) | |||
| 2224 | pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr, | 2224 | pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr, |
| 2225 | RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); | 2225 | RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
| 2226 | 2226 | ||
| 2227 | if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), | 2227 | if (memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), |
| 2228 | skb->data, ETH_DATA_LEN)) | 2228 | skb->data, ETH_DATA_LEN)) |
| 2229 | err = -EAGAIN; | 2229 | err = -EAGAIN; |
| 2230 | 2230 | ||
| @@ -2301,7 +2301,7 @@ static void e100_get_regs(struct net_device *netdev, | |||
| 2301 | buff[0] = ioread8(&nic->csr->scb.cmd_hi) << 24 | | 2301 | buff[0] = ioread8(&nic->csr->scb.cmd_hi) << 24 | |
| 2302 | ioread8(&nic->csr->scb.cmd_lo) << 16 | | 2302 | ioread8(&nic->csr->scb.cmd_lo) << 16 | |
| 2303 | ioread16(&nic->csr->scb.status); | 2303 | ioread16(&nic->csr->scb.status); |
| 2304 | for(i = E100_PHY_REGS; i >= 0; i--) | 2304 | for (i = E100_PHY_REGS; i >= 0; i--) |
| 2305 | buff[1 + E100_PHY_REGS - i] = | 2305 | buff[1 + E100_PHY_REGS - i] = |
| 2306 | mdio_read(netdev, nic->mii.phy_id, i); | 2306 | mdio_read(netdev, nic->mii.phy_id, i); |
| 2307 | memset(nic->mem->dump_buf, 0, sizeof(nic->mem->dump_buf)); | 2307 | memset(nic->mem->dump_buf, 0, sizeof(nic->mem->dump_buf)); |
| @@ -2326,7 +2326,7 @@ static int e100_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) | |||
| 2326 | !device_can_wakeup(&nic->pdev->dev)) | 2326 | !device_can_wakeup(&nic->pdev->dev)) |
| 2327 | return -EOPNOTSUPP; | 2327 | return -EOPNOTSUPP; |
| 2328 | 2328 | ||
| 2329 | if(wol->wolopts) | 2329 | if (wol->wolopts) |
| 2330 | nic->flags |= wol_magic; | 2330 | nic->flags |= wol_magic; |
| 2331 | else | 2331 | else |
| 2332 | nic->flags &= ~wol_magic; | 2332 | nic->flags &= ~wol_magic; |
| @@ -2385,7 +2385,7 @@ static int e100_set_eeprom(struct net_device *netdev, | |||
| 2385 | { | 2385 | { |
| 2386 | struct nic *nic = netdev_priv(netdev); | 2386 | struct nic *nic = netdev_priv(netdev); |
| 2387 | 2387 | ||
| 2388 | if(eeprom->magic != E100_EEPROM_MAGIC) | 2388 | if (eeprom->magic != E100_EEPROM_MAGIC) |
| 2389 | return -EINVAL; | 2389 | return -EINVAL; |
| 2390 | 2390 | ||
| 2391 | memcpy(&((u8 *)nic->eeprom)[eeprom->offset], bytes, eeprom->len); | 2391 | memcpy(&((u8 *)nic->eeprom)[eeprom->offset], bytes, eeprom->len); |
| @@ -2421,7 +2421,7 @@ static int e100_set_ringparam(struct net_device *netdev, | |||
| 2421 | if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) | 2421 | if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) |
| 2422 | return -EINVAL; | 2422 | return -EINVAL; |
| 2423 | 2423 | ||
| 2424 | if(netif_running(netdev)) | 2424 | if (netif_running(netdev)) |
| 2425 | e100_down(nic); | 2425 | e100_down(nic); |
| 2426 | rfds->count = max(ring->rx_pending, rfds->min); | 2426 | rfds->count = max(ring->rx_pending, rfds->min); |
| 2427 | rfds->count = min(rfds->count, rfds->max); | 2427 | rfds->count = min(rfds->count, rfds->max); |
| @@ -2429,7 +2429,7 @@ static int e100_set_ringparam(struct net_device *netdev, | |||
| 2429 | cbs->count = min(cbs->count, cbs->max); | 2429 | cbs->count = min(cbs->count, cbs->max); |
| 2430 | DPRINTK(DRV, INFO, "Ring Param settings: rx: %d, tx %d\n", | 2430 | DPRINTK(DRV, INFO, "Ring Param settings: rx: %d, tx %d\n", |
| 2431 | rfds->count, cbs->count); | 2431 | rfds->count, cbs->count); |
| 2432 | if(netif_running(netdev)) | 2432 | if (netif_running(netdev)) |
| 2433 | e100_up(nic); | 2433 | e100_up(nic); |
| 2434 | 2434 | ||
| 2435 | return 0; | 2435 | return 0; |
| @@ -2454,12 +2454,12 @@ static void e100_diag_test(struct net_device *netdev, | |||
| 2454 | memset(data, 0, E100_TEST_LEN * sizeof(u64)); | 2454 | memset(data, 0, E100_TEST_LEN * sizeof(u64)); |
| 2455 | data[0] = !mii_link_ok(&nic->mii); | 2455 | data[0] = !mii_link_ok(&nic->mii); |
| 2456 | data[1] = e100_eeprom_load(nic); | 2456 | data[1] = e100_eeprom_load(nic); |
| 2457 | if(test->flags & ETH_TEST_FL_OFFLINE) { | 2457 | if (test->flags & ETH_TEST_FL_OFFLINE) { |
| 2458 | 2458 | ||
| 2459 | /* save speed, duplex & autoneg settings */ | 2459 | /* save speed, duplex & autoneg settings */ |
| 2460 | err = mii_ethtool_gset(&nic->mii, &cmd); | 2460 | err = mii_ethtool_gset(&nic->mii, &cmd); |
| 2461 | 2461 | ||
| 2462 | if(netif_running(netdev)) | 2462 | if (netif_running(netdev)) |
| 2463 | e100_down(nic); | 2463 | e100_down(nic); |
| 2464 | data[2] = e100_self_test(nic); | 2464 | data[2] = e100_self_test(nic); |
| 2465 | data[3] = e100_loopback_test(nic, lb_mac); | 2465 | data[3] = e100_loopback_test(nic, lb_mac); |
| @@ -2468,10 +2468,10 @@ static void e100_diag_test(struct net_device *netdev, | |||
| 2468 | /* restore speed, duplex & autoneg settings */ | 2468 | /* restore speed, duplex & autoneg settings */ |
| 2469 | err = mii_ethtool_sset(&nic->mii, &cmd); | 2469 | err = mii_ethtool_sset(&nic->mii, &cmd); |
| 2470 | 2470 | ||
| 2471 | if(netif_running(netdev)) | 2471 | if (netif_running(netdev)) |
| 2472 | e100_up(nic); | 2472 | e100_up(nic); |
| 2473 | } | 2473 | } |
| 2474 | for(i = 0; i < E100_TEST_LEN; i++) | 2474 | for (i = 0; i < E100_TEST_LEN; i++) |
| 2475 | test->flags |= data[i] ? ETH_TEST_FL_FAILED : 0; | 2475 | test->flags |= data[i] ? ETH_TEST_FL_FAILED : 0; |
| 2476 | 2476 | ||
| 2477 | msleep_interruptible(4 * 1000); | 2477 | msleep_interruptible(4 * 1000); |
| @@ -2481,7 +2481,7 @@ static int e100_phys_id(struct net_device *netdev, u32 data) | |||
| 2481 | { | 2481 | { |
| 2482 | struct nic *nic = netdev_priv(netdev); | 2482 | struct nic *nic = netdev_priv(netdev); |
| 2483 | 2483 | ||
| 2484 | if(!data || data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ)) | 2484 | if (!data || data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ)) |
| 2485 | data = (u32)(MAX_SCHEDULE_TIMEOUT / HZ); | 2485 | data = (u32)(MAX_SCHEDULE_TIMEOUT / HZ); |
| 2486 | mod_timer(&nic->blink_timer, jiffies); | 2486 | mod_timer(&nic->blink_timer, jiffies); |
| 2487 | msleep_interruptible(data * 1000); | 2487 | msleep_interruptible(data * 1000); |
| @@ -2524,7 +2524,7 @@ static void e100_get_ethtool_stats(struct net_device *netdev, | |||
| 2524 | struct nic *nic = netdev_priv(netdev); | 2524 | struct nic *nic = netdev_priv(netdev); |
| 2525 | int i; | 2525 | int i; |
| 2526 | 2526 | ||
| 2527 | for(i = 0; i < E100_NET_STATS_LEN; i++) | 2527 | for (i = 0; i < E100_NET_STATS_LEN; i++) |
| 2528 | data[i] = ((unsigned long *)&netdev->stats)[i]; | 2528 | data[i] = ((unsigned long *)&netdev->stats)[i]; |
| 2529 | 2529 | ||
| 2530 | data[i++] = nic->tx_deferred; | 2530 | data[i++] = nic->tx_deferred; |
| @@ -2539,7 +2539,7 @@ static void e100_get_ethtool_stats(struct net_device *netdev, | |||
| 2539 | 2539 | ||
| 2540 | static void e100_get_strings(struct net_device *netdev, u32 stringset, u8 *data) | 2540 | static void e100_get_strings(struct net_device *netdev, u32 stringset, u8 *data) |
| 2541 | { | 2541 | { |
| 2542 | switch(stringset) { | 2542 | switch (stringset) { |
| 2543 | case ETH_SS_TEST: | 2543 | case ETH_SS_TEST: |
| 2544 | memcpy(data, *e100_gstrings_test, sizeof(e100_gstrings_test)); | 2544 | memcpy(data, *e100_gstrings_test, sizeof(e100_gstrings_test)); |
| 2545 | break; | 2545 | break; |
| @@ -2589,7 +2589,7 @@ static int e100_alloc(struct nic *nic) | |||
| 2589 | 2589 | ||
| 2590 | static void e100_free(struct nic *nic) | 2590 | static void e100_free(struct nic *nic) |
| 2591 | { | 2591 | { |
| 2592 | if(nic->mem) { | 2592 | if (nic->mem) { |
| 2593 | pci_free_consistent(nic->pdev, sizeof(struct mem), | 2593 | pci_free_consistent(nic->pdev, sizeof(struct mem), |
| 2594 | nic->mem, nic->dma_addr); | 2594 | nic->mem, nic->dma_addr); |
| 2595 | nic->mem = NULL; | 2595 | nic->mem = NULL; |
| @@ -2602,7 +2602,7 @@ static int e100_open(struct net_device *netdev) | |||
| 2602 | int err = 0; | 2602 | int err = 0; |
| 2603 | 2603 | ||
| 2604 | netif_carrier_off(netdev); | 2604 | netif_carrier_off(netdev); |
| 2605 | if((err = e100_up(nic))) | 2605 | if ((err = e100_up(nic))) |
| 2606 | DPRINTK(IFUP, ERR, "Cannot open interface, aborting.\n"); | 2606 | DPRINTK(IFUP, ERR, "Cannot open interface, aborting.\n"); |
| 2607 | return err; | 2607 | return err; |
| 2608 | } | 2608 | } |
| @@ -2635,8 +2635,8 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2635 | struct nic *nic; | 2635 | struct nic *nic; |
| 2636 | int err; | 2636 | int err; |
| 2637 | 2637 | ||
| 2638 | if(!(netdev = alloc_etherdev(sizeof(struct nic)))) { | 2638 | if (!(netdev = alloc_etherdev(sizeof(struct nic)))) { |
| 2639 | if(((1 << debug) - 1) & NETIF_MSG_PROBE) | 2639 | if (((1 << debug) - 1) & NETIF_MSG_PROBE) |
| 2640 | printk(KERN_ERR PFX "Etherdev alloc failed, abort.\n"); | 2640 | printk(KERN_ERR PFX "Etherdev alloc failed, abort.\n"); |
| 2641 | return -ENOMEM; | 2641 | return -ENOMEM; |
| 2642 | } | 2642 | } |
| @@ -2653,24 +2653,24 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2653 | nic->msg_enable = (1 << debug) - 1; | 2653 | nic->msg_enable = (1 << debug) - 1; |
| 2654 | pci_set_drvdata(pdev, netdev); | 2654 | pci_set_drvdata(pdev, netdev); |
| 2655 | 2655 | ||
| 2656 | if((err = pci_enable_device(pdev))) { | 2656 | if ((err = pci_enable_device(pdev))) { |
| 2657 | DPRINTK(PROBE, ERR, "Cannot enable PCI device, aborting.\n"); | 2657 | DPRINTK(PROBE, ERR, "Cannot enable PCI device, aborting.\n"); |
| 2658 | goto err_out_free_dev; | 2658 | goto err_out_free_dev; |
| 2659 | } | 2659 | } |
| 2660 | 2660 | ||
| 2661 | if(!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { | 2661 | if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { |
| 2662 | DPRINTK(PROBE, ERR, "Cannot find proper PCI device " | 2662 | DPRINTK(PROBE, ERR, "Cannot find proper PCI device " |
| 2663 | "base address, aborting.\n"); | 2663 | "base address, aborting.\n"); |
| 2664 | err = -ENODEV; | 2664 | err = -ENODEV; |
| 2665 | goto err_out_disable_pdev; | 2665 | goto err_out_disable_pdev; |
| 2666 | } | 2666 | } |
| 2667 | 2667 | ||
| 2668 | if((err = pci_request_regions(pdev, DRV_NAME))) { | 2668 | if ((err = pci_request_regions(pdev, DRV_NAME))) { |
| 2669 | DPRINTK(PROBE, ERR, "Cannot obtain PCI resources, aborting.\n"); | 2669 | DPRINTK(PROBE, ERR, "Cannot obtain PCI resources, aborting.\n"); |
| 2670 | goto err_out_disable_pdev; | 2670 | goto err_out_disable_pdev; |
| 2671 | } | 2671 | } |
| 2672 | 2672 | ||
| 2673 | if((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK))) { | 2673 | if ((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK))) { |
| 2674 | DPRINTK(PROBE, ERR, "No usable DMA configuration, aborting.\n"); | 2674 | DPRINTK(PROBE, ERR, "No usable DMA configuration, aborting.\n"); |
| 2675 | goto err_out_free_res; | 2675 | goto err_out_free_res; |
| 2676 | } | 2676 | } |
| @@ -2681,13 +2681,13 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2681 | DPRINTK(PROBE, INFO, "using i/o access mode\n"); | 2681 | DPRINTK(PROBE, INFO, "using i/o access mode\n"); |
| 2682 | 2682 | ||
| 2683 | nic->csr = pci_iomap(pdev, (use_io ? 1 : 0), sizeof(struct csr)); | 2683 | nic->csr = pci_iomap(pdev, (use_io ? 1 : 0), sizeof(struct csr)); |
| 2684 | if(!nic->csr) { | 2684 | if (!nic->csr) { |
| 2685 | DPRINTK(PROBE, ERR, "Cannot map device registers, aborting.\n"); | 2685 | DPRINTK(PROBE, ERR, "Cannot map device registers, aborting.\n"); |
| 2686 | err = -ENOMEM; | 2686 | err = -ENOMEM; |
| 2687 | goto err_out_free_res; | 2687 | goto err_out_free_res; |
| 2688 | } | 2688 | } |
| 2689 | 2689 | ||
| 2690 | if(ent->driver_data) | 2690 | if (ent->driver_data) |
| 2691 | nic->flags |= ich; | 2691 | nic->flags |= ich; |
| 2692 | else | 2692 | else |
| 2693 | nic->flags &= ~ich; | 2693 | nic->flags &= ~ich; |
| @@ -2715,12 +2715,12 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2715 | 2715 | ||
| 2716 | INIT_WORK(&nic->tx_timeout_task, e100_tx_timeout_task); | 2716 | INIT_WORK(&nic->tx_timeout_task, e100_tx_timeout_task); |
| 2717 | 2717 | ||
| 2718 | if((err = e100_alloc(nic))) { | 2718 | if ((err = e100_alloc(nic))) { |
| 2719 | DPRINTK(PROBE, ERR, "Cannot alloc driver memory, aborting.\n"); | 2719 | DPRINTK(PROBE, ERR, "Cannot alloc driver memory, aborting.\n"); |
| 2720 | goto err_out_iounmap; | 2720 | goto err_out_iounmap; |
| 2721 | } | 2721 | } |
| 2722 | 2722 | ||
| 2723 | if((err = e100_eeprom_load(nic))) | 2723 | if ((err = e100_eeprom_load(nic))) |
| 2724 | goto err_out_free; | 2724 | goto err_out_free; |
| 2725 | 2725 | ||
| 2726 | e100_phy_init(nic); | 2726 | e100_phy_init(nic); |
| @@ -2740,7 +2740,7 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2740 | } | 2740 | } |
| 2741 | 2741 | ||
| 2742 | /* Wol magic packet can be enabled from eeprom */ | 2742 | /* Wol magic packet can be enabled from eeprom */ |
| 2743 | if((nic->mac >= mac_82558_D101_A4) && | 2743 | if ((nic->mac >= mac_82558_D101_A4) && |
| 2744 | (nic->eeprom[eeprom_id] & eeprom_id_wol)) { | 2744 | (nic->eeprom[eeprom_id] & eeprom_id_wol)) { |
| 2745 | nic->flags |= wol_magic; | 2745 | nic->flags |= wol_magic; |
| 2746 | device_set_wakeup_enable(&pdev->dev, true); | 2746 | device_set_wakeup_enable(&pdev->dev, true); |
| @@ -2750,7 +2750,7 @@ static int __devinit e100_probe(struct pci_dev *pdev, | |||
| 2750 | pci_pme_active(pdev, false); | 2750 | pci_pme_active(pdev, false); |
| 2751 | 2751 | ||
| 2752 | strcpy(netdev->name, "eth%d"); | 2752 | strcpy(netdev->name, "eth%d"); |
| 2753 | if((err = register_netdev(netdev))) { | 2753 | if ((err = register_netdev(netdev))) { |
| 2754 | DPRINTK(PROBE, ERR, "Cannot register net device, aborting.\n"); | 2754 | DPRINTK(PROBE, ERR, "Cannot register net device, aborting.\n"); |
| 2755 | goto err_out_free; | 2755 | goto err_out_free; |
| 2756 | } | 2756 | } |
| @@ -2779,7 +2779,7 @@ static void __devexit e100_remove(struct pci_dev *pdev) | |||
| 2779 | { | 2779 | { |
| 2780 | struct net_device *netdev = pci_get_drvdata(pdev); | 2780 | struct net_device *netdev = pci_get_drvdata(pdev); |
| 2781 | 2781 | ||
| 2782 | if(netdev) { | 2782 | if (netdev) { |
| 2783 | struct nic *nic = netdev_priv(netdev); | 2783 | struct nic *nic = netdev_priv(netdev); |
| 2784 | unregister_netdev(netdev); | 2784 | unregister_netdev(netdev); |
| 2785 | e100_free(nic); | 2785 | e100_free(nic); |
| @@ -2932,7 +2932,7 @@ static struct pci_driver e100_driver = { | |||
| 2932 | 2932 | ||
| 2933 | static int __init e100_init_module(void) | 2933 | static int __init e100_init_module(void) |
| 2934 | { | 2934 | { |
| 2935 | if(((1 << debug) - 1) & NETIF_MSG_DRV) { | 2935 | if (((1 << debug) - 1) & NETIF_MSG_DRV) { |
| 2936 | printk(KERN_INFO PFX "%s, %s\n", DRV_DESCRIPTION, DRV_VERSION); | 2936 | printk(KERN_INFO PFX "%s, %s\n", DRV_DESCRIPTION, DRV_VERSION); |
| 2937 | printk(KERN_INFO PFX "%s\n", DRV_COPYRIGHT); | 2937 | printk(KERN_INFO PFX "%s\n", DRV_COPYRIGHT); |
| 2938 | } | 2938 | } |
