aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/r6040.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/r6040.c')
-rw-r--r--drivers/net/r6040.c49
1 files changed, 22 insertions, 27 deletions
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 15d5373dc8f3..412291645596 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -29,7 +29,6 @@
29#include <linux/timer.h> 29#include <linux/timer.h>
30#include <linux/errno.h> 30#include <linux/errno.h>
31#include <linux/ioport.h> 31#include <linux/ioport.h>
32#include <linux/slab.h>
33#include <linux/interrupt.h> 32#include <linux/interrupt.h>
34#include <linux/pci.h> 33#include <linux/pci.h>
35#include <linux/netdevice.h> 34#include <linux/netdevice.h>
@@ -135,7 +134,7 @@
135#define RX_DESC_SIZE (RX_DCNT * sizeof(struct r6040_descriptor)) 134#define RX_DESC_SIZE (RX_DCNT * sizeof(struct r6040_descriptor))
136#define TX_DESC_SIZE (TX_DCNT * sizeof(struct r6040_descriptor)) 135#define TX_DESC_SIZE (TX_DCNT * sizeof(struct r6040_descriptor))
137#define MBCR_DEFAULT 0x012A /* MAC Bus Control Register */ 136#define MBCR_DEFAULT 0x012A /* MAC Bus Control Register */
138#define MCAST_MAX 4 /* Max number multicast addresses to filter */ 137#define MCAST_MAX 3 /* Max number multicast addresses to filter */
139 138
140/* Descriptor status */ 139/* Descriptor status */
141#define DSC_OWNER_MAC 0x8000 /* MAC is the owner of this descriptor */ 140#define DSC_OWNER_MAC 0x8000 /* MAC is the owner of this descriptor */
@@ -331,7 +330,7 @@ static int r6040_alloc_rxbufs(struct net_device *dev)
331 do { 330 do {
332 skb = netdev_alloc_skb(dev, MAX_BUF_SIZE); 331 skb = netdev_alloc_skb(dev, MAX_BUF_SIZE);
333 if (!skb) { 332 if (!skb) {
334 printk(KERN_ERR DRV_NAME "%s: failed to alloc skb for rx\n", dev->name); 333 netdev_err(dev, "failed to alloc skb for rx\n");
335 rc = -ENOMEM; 334 rc = -ENOMEM;
336 goto err_exit; 335 goto err_exit;
337 } 336 }
@@ -411,9 +410,9 @@ static void r6040_tx_timeout(struct net_device *dev)
411 struct r6040_private *priv = netdev_priv(dev); 410 struct r6040_private *priv = netdev_priv(dev);
412 void __iomem *ioaddr = priv->base; 411 void __iomem *ioaddr = priv->base;
413 412
414 printk(KERN_WARNING "%s: transmit timed out, int enable %4.4x " 413 netdev_warn(dev, "transmit timed out, int enable %4.4x "
415 "status %4.4x, PHY status %4.4x\n", 414 "status %4.4x, PHY status %4.4x\n",
416 dev->name, ioread16(ioaddr + MIER), 415 ioread16(ioaddr + MIER),
417 ioread16(ioaddr + MISR), 416 ioread16(ioaddr + MISR),
418 r6040_mdio_read(dev, priv->mii_if.phy_id, MII_BMSR)); 417 r6040_mdio_read(dev, priv->mii_if.phy_id, MII_BMSR));
419 418
@@ -898,7 +897,7 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
898 if (!lp->tx_free_desc) { 897 if (!lp->tx_free_desc) {
899 spin_unlock_irqrestore(&lp->lock, flags); 898 spin_unlock_irqrestore(&lp->lock, flags);
900 netif_stop_queue(dev); 899 netif_stop_queue(dev);
901 printk(KERN_ERR DRV_NAME ": no tx descriptor\n"); 900 netdev_err(dev, ": no tx descriptor\n");
902 return NETDEV_TX_BUSY; 901 return NETDEV_TX_BUSY;
903 } 902 }
904 903
@@ -938,7 +937,7 @@ static void r6040_multicast_list(struct net_device *dev)
938 u16 *adrp; 937 u16 *adrp;
939 u16 reg; 938 u16 reg;
940 unsigned long flags; 939 unsigned long flags;
941 struct dev_mc_list *dmi; 940 struct netdev_hw_addr *ha;
942 int i; 941 int i;
943 942
944 /* MAC Address */ 943 /* MAC Address */
@@ -973,8 +972,8 @@ static void r6040_multicast_list(struct net_device *dev)
973 for (i = 0; i < 4; i++) 972 for (i = 0; i < 4; i++)
974 hash_table[i] = 0; 973 hash_table[i] = 0;
975 974
976 netdev_for_each_mc_addr(dmi, dev) { 975 netdev_for_each_mc_addr(ha, dev) {
977 char *addrs = dmi->dmi_addr; 976 char *addrs = ha->addr;
978 977
979 if (!(*addrs & 1)) 978 if (!(*addrs & 1))
980 continue; 979 continue;
@@ -983,9 +982,6 @@ static void r6040_multicast_list(struct net_device *dev)
983 crc >>= 26; 982 crc >>= 26;
984 hash_table[crc >> 4] |= 1 << (15 - (crc & 0xf)); 983 hash_table[crc >> 4] |= 1 << (15 - (crc & 0xf));
985 } 984 }
986 /* Write the index of the hash table */
987 for (i = 0; i < 4; i++)
988 iowrite16(hash_table[i] << 14, ioaddr + MCR1);
989 /* Fill the MAC hash tables with their values */ 985 /* Fill the MAC hash tables with their values */
990 iowrite16(hash_table[0], ioaddr + MAR0); 986 iowrite16(hash_table[0], ioaddr + MAR0);
991 iowrite16(hash_table[1], ioaddr + MAR1); 987 iowrite16(hash_table[1], ioaddr + MAR1);
@@ -994,16 +990,16 @@ static void r6040_multicast_list(struct net_device *dev)
994 } 990 }
995 /* Multicast Address 1~4 case */ 991 /* Multicast Address 1~4 case */
996 i = 0; 992 i = 0;
997 netdev_for_each_mc_addr(dmi, dev) { 993 netdev_for_each_mc_addr(ha, dev) {
998 if (i < MCAST_MAX) { 994 if (i < MCAST_MAX) {
999 adrp = (u16 *) dmi->dmi_addr; 995 adrp = (u16 *) ha->addr;
1000 iowrite16(adrp[0], ioaddr + MID_1L + 8 * i); 996 iowrite16(adrp[0], ioaddr + MID_1L + 8 * i);
1001 iowrite16(adrp[1], ioaddr + MID_1M + 8 * i); 997 iowrite16(adrp[1], ioaddr + MID_1M + 8 * i);
1002 iowrite16(adrp[2], ioaddr + MID_1H + 8 * i); 998 iowrite16(adrp[2], ioaddr + MID_1H + 8 * i);
1003 } else { 999 } else {
1004 iowrite16(0xffff, ioaddr + MID_0L + 8 * i); 1000 iowrite16(0xffff, ioaddr + MID_1L + 8 * i);
1005 iowrite16(0xffff, ioaddr + MID_0M + 8 * i); 1001 iowrite16(0xffff, ioaddr + MID_1M + 8 * i);
1006 iowrite16(0xffff, ioaddr + MID_0H + 8 * i); 1002 iowrite16(0xffff, ioaddr + MID_1H + 8 * i);
1007 } 1003 }
1008 i++; 1004 i++;
1009 } 1005 }
@@ -1094,20 +1090,20 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1094 /* this should always be supported */ 1090 /* this should always be supported */
1095 err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); 1091 err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
1096 if (err) { 1092 if (err) {
1097 printk(KERN_ERR DRV_NAME ": 32-bit PCI DMA addresses" 1093 dev_err(&pdev->dev, "32-bit PCI DMA addresses"
1098 "not supported by the card\n"); 1094 "not supported by the card\n");
1099 goto err_out; 1095 goto err_out;
1100 } 1096 }
1101 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); 1097 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
1102 if (err) { 1098 if (err) {
1103 printk(KERN_ERR DRV_NAME ": 32-bit PCI DMA addresses" 1099 dev_err(&pdev->dev, "32-bit PCI DMA addresses"
1104 "not supported by the card\n"); 1100 "not supported by the card\n");
1105 goto err_out; 1101 goto err_out;
1106 } 1102 }
1107 1103
1108 /* IO Size check */ 1104 /* IO Size check */
1109 if (pci_resource_len(pdev, bar) < io_size) { 1105 if (pci_resource_len(pdev, bar) < io_size) {
1110 printk(KERN_ERR DRV_NAME ": Insufficient PCI resources, aborting\n"); 1106 dev_err(&pdev->dev, "Insufficient PCI resources, aborting\n");
1111 err = -EIO; 1107 err = -EIO;
1112 goto err_out; 1108 goto err_out;
1113 } 1109 }
@@ -1116,7 +1112,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1116 1112
1117 dev = alloc_etherdev(sizeof(struct r6040_private)); 1113 dev = alloc_etherdev(sizeof(struct r6040_private));
1118 if (!dev) { 1114 if (!dev) {
1119 printk(KERN_ERR DRV_NAME ": Failed to allocate etherdev\n"); 1115 dev_err(&pdev->dev, "Failed to allocate etherdev\n");
1120 err = -ENOMEM; 1116 err = -ENOMEM;
1121 goto err_out; 1117 goto err_out;
1122 } 1118 }
@@ -1126,14 +1122,13 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1126 err = pci_request_regions(pdev, DRV_NAME); 1122 err = pci_request_regions(pdev, DRV_NAME);
1127 1123
1128 if (err) { 1124 if (err) {
1129 printk(KERN_ERR DRV_NAME ": Failed to request PCI regions\n"); 1125 dev_err(&pdev->dev, "Failed to request PCI regions\n");
1130 goto err_out_free_dev; 1126 goto err_out_free_dev;
1131 } 1127 }
1132 1128
1133 ioaddr = pci_iomap(pdev, bar, io_size); 1129 ioaddr = pci_iomap(pdev, bar, io_size);
1134 if (!ioaddr) { 1130 if (!ioaddr) {
1135 printk(KERN_ERR DRV_NAME ": ioremap failed for device %s\n", 1131 dev_err(&pdev->dev, "ioremap failed for device\n");
1136 pci_name(pdev));
1137 err = -EIO; 1132 err = -EIO;
1138 goto err_out_free_res; 1133 goto err_out_free_res;
1139 } 1134 }
@@ -1160,7 +1155,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1160 /* Some bootloader/BIOSes do not initialize 1155 /* Some bootloader/BIOSes do not initialize
1161 * MAC address, warn about that */ 1156 * MAC address, warn about that */
1162 if (!(adrp[0] || adrp[1] || adrp[2])) { 1157 if (!(adrp[0] || adrp[1] || adrp[2])) {
1163 printk(KERN_WARNING DRV_NAME ": MAC address not initialized, generating random\n"); 1158 netdev_warn(dev, "MAC address not initialized, generating random\n");
1164 random_ether_addr(dev->dev_addr); 1159 random_ether_addr(dev->dev_addr);
1165 } 1160 }
1166 1161
@@ -1188,7 +1183,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1188 1183
1189 /* Check the vendor ID on the PHY, if 0xffff assume none attached */ 1184 /* Check the vendor ID on the PHY, if 0xffff assume none attached */
1190 if (r6040_phy_read(ioaddr, lp->phy_addr, 2) == 0xffff) { 1185 if (r6040_phy_read(ioaddr, lp->phy_addr, 2) == 0xffff) {
1191 printk(KERN_ERR DRV_NAME ": Failed to detect an attached PHY\n"); 1186 dev_err(&pdev->dev, "Failed to detect an attached PHY\n");
1192 err = -ENODEV; 1187 err = -ENODEV;
1193 goto err_out_unmap; 1188 goto err_out_unmap;
1194 } 1189 }
@@ -1196,7 +1191,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1196 /* Register net device. After this dev->name assign */ 1191 /* Register net device. After this dev->name assign */
1197 err = register_netdev(dev); 1192 err = register_netdev(dev);
1198 if (err) { 1193 if (err) {
1199 printk(KERN_ERR DRV_NAME ": Failed to register net device\n"); 1194 dev_err(&pdev->dev, "Failed to register net device\n");
1200 goto err_out_unmap; 1195 goto err_out_unmap;
1201 } 1196 }
1202 return 0; 1197 return 0;