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.c46
1 files changed, 21 insertions, 25 deletions
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 0298d8c1dcb..9a251acf5ab 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -330,7 +330,7 @@ static int r6040_alloc_rxbufs(struct net_device *dev)
330 do { 330 do {
331 skb = netdev_alloc_skb(dev, MAX_BUF_SIZE); 331 skb = netdev_alloc_skb(dev, MAX_BUF_SIZE);
332 if (!skb) { 332 if (!skb) {
333 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");
334 rc = -ENOMEM; 334 rc = -ENOMEM;
335 goto err_exit; 335 goto err_exit;
336 } 336 }
@@ -400,9 +400,6 @@ static void r6040_init_mac_regs(struct net_device *dev)
400 * we may got called by r6040_tx_timeout which has left 400 * we may got called by r6040_tx_timeout which has left
401 * some unsent tx buffers */ 401 * some unsent tx buffers */
402 iowrite16(0x01, ioaddr + MTPR); 402 iowrite16(0x01, ioaddr + MTPR);
403
404 /* Check media */
405 mii_check_media(&lp->mii_if, 1, 1);
406} 403}
407 404
408static void r6040_tx_timeout(struct net_device *dev) 405static void r6040_tx_timeout(struct net_device *dev)
@@ -410,9 +407,9 @@ static void r6040_tx_timeout(struct net_device *dev)
410 struct r6040_private *priv = netdev_priv(dev); 407 struct r6040_private *priv = netdev_priv(dev);
411 void __iomem *ioaddr = priv->base; 408 void __iomem *ioaddr = priv->base;
412 409
413 printk(KERN_WARNING "%s: transmit timed out, int enable %4.4x " 410 netdev_warn(dev, "transmit timed out, int enable %4.4x "
414 "status %4.4x, PHY status %4.4x\n", 411 "status %4.4x, PHY status %4.4x\n",
415 dev->name, ioread16(ioaddr + MIER), 412 ioread16(ioaddr + MIER),
416 ioread16(ioaddr + MISR), 413 ioread16(ioaddr + MISR),
417 r6040_mdio_read(dev, priv->mii_if.phy_id, MII_BMSR)); 414 r6040_mdio_read(dev, priv->mii_if.phy_id, MII_BMSR));
418 415
@@ -530,8 +527,6 @@ static int r6040_phy_mode_chk(struct net_device *dev)
530 phy_dat = 0x0000; 527 phy_dat = 0x0000;
531 } 528 }
532 529
533 mii_check_media(&lp->mii_if, 0, 1);
534
535 return phy_dat; 530 return phy_dat;
536}; 531};
537 532
@@ -813,6 +808,9 @@ static void r6040_timer(unsigned long data)
813 808
814 /* Timer active again */ 809 /* Timer active again */
815 mod_timer(&lp->timer, round_jiffies(jiffies + HZ)); 810 mod_timer(&lp->timer, round_jiffies(jiffies + HZ));
811
812 /* Check media */
813 mii_check_media(&lp->mii_if, 1, 1);
816} 814}
817 815
818/* Read/set MAC address routines */ 816/* Read/set MAC address routines */
@@ -897,7 +895,7 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
897 if (!lp->tx_free_desc) { 895 if (!lp->tx_free_desc) {
898 spin_unlock_irqrestore(&lp->lock, flags); 896 spin_unlock_irqrestore(&lp->lock, flags);
899 netif_stop_queue(dev); 897 netif_stop_queue(dev);
900 printk(KERN_ERR DRV_NAME ": no tx descriptor\n"); 898 netdev_err(dev, ": no tx descriptor\n");
901 return NETDEV_TX_BUSY; 899 return NETDEV_TX_BUSY;
902 } 900 }
903 901
@@ -924,7 +922,6 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
924 if (!lp->tx_free_desc) 922 if (!lp->tx_free_desc)
925 netif_stop_queue(dev); 923 netif_stop_queue(dev);
926 924
927 dev->trans_start = jiffies;
928 spin_unlock_irqrestore(&lp->lock, flags); 925 spin_unlock_irqrestore(&lp->lock, flags);
929 926
930 return NETDEV_TX_OK; 927 return NETDEV_TX_OK;
@@ -937,7 +934,7 @@ static void r6040_multicast_list(struct net_device *dev)
937 u16 *adrp; 934 u16 *adrp;
938 u16 reg; 935 u16 reg;
939 unsigned long flags; 936 unsigned long flags;
940 struct dev_mc_list *dmi; 937 struct netdev_hw_addr *ha;
941 int i; 938 int i;
942 939
943 /* MAC Address */ 940 /* MAC Address */
@@ -972,8 +969,8 @@ static void r6040_multicast_list(struct net_device *dev)
972 for (i = 0; i < 4; i++) 969 for (i = 0; i < 4; i++)
973 hash_table[i] = 0; 970 hash_table[i] = 0;
974 971
975 netdev_for_each_mc_addr(dmi, dev) { 972 netdev_for_each_mc_addr(ha, dev) {
976 char *addrs = dmi->dmi_addr; 973 char *addrs = ha->addr;
977 974
978 if (!(*addrs & 1)) 975 if (!(*addrs & 1))
979 continue; 976 continue;
@@ -990,9 +987,9 @@ static void r6040_multicast_list(struct net_device *dev)
990 } 987 }
991 /* Multicast Address 1~4 case */ 988 /* Multicast Address 1~4 case */
992 i = 0; 989 i = 0;
993 netdev_for_each_mc_addr(dmi, dev) { 990 netdev_for_each_mc_addr(ha, dev) {
994 if (i < MCAST_MAX) { 991 if (i < MCAST_MAX) {
995 adrp = (u16 *) dmi->dmi_addr; 992 adrp = (u16 *) ha->addr;
996 iowrite16(adrp[0], ioaddr + MID_1L + 8 * i); 993 iowrite16(adrp[0], ioaddr + MID_1L + 8 * i);
997 iowrite16(adrp[1], ioaddr + MID_1M + 8 * i); 994 iowrite16(adrp[1], ioaddr + MID_1M + 8 * i);
998 iowrite16(adrp[2], ioaddr + MID_1H + 8 * i); 995 iowrite16(adrp[2], ioaddr + MID_1H + 8 * i);
@@ -1090,20 +1087,20 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1090 /* this should always be supported */ 1087 /* this should always be supported */
1091 err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); 1088 err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
1092 if (err) { 1089 if (err) {
1093 printk(KERN_ERR DRV_NAME ": 32-bit PCI DMA addresses" 1090 dev_err(&pdev->dev, "32-bit PCI DMA addresses"
1094 "not supported by the card\n"); 1091 "not supported by the card\n");
1095 goto err_out; 1092 goto err_out;
1096 } 1093 }
1097 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); 1094 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
1098 if (err) { 1095 if (err) {
1099 printk(KERN_ERR DRV_NAME ": 32-bit PCI DMA addresses" 1096 dev_err(&pdev->dev, "32-bit PCI DMA addresses"
1100 "not supported by the card\n"); 1097 "not supported by the card\n");
1101 goto err_out; 1098 goto err_out;
1102 } 1099 }
1103 1100
1104 /* IO Size check */ 1101 /* IO Size check */
1105 if (pci_resource_len(pdev, bar) < io_size) { 1102 if (pci_resource_len(pdev, bar) < io_size) {
1106 printk(KERN_ERR DRV_NAME ": Insufficient PCI resources, aborting\n"); 1103 dev_err(&pdev->dev, "Insufficient PCI resources, aborting\n");
1107 err = -EIO; 1104 err = -EIO;
1108 goto err_out; 1105 goto err_out;
1109 } 1106 }
@@ -1112,7 +1109,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1112 1109
1113 dev = alloc_etherdev(sizeof(struct r6040_private)); 1110 dev = alloc_etherdev(sizeof(struct r6040_private));
1114 if (!dev) { 1111 if (!dev) {
1115 printk(KERN_ERR DRV_NAME ": Failed to allocate etherdev\n"); 1112 dev_err(&pdev->dev, "Failed to allocate etherdev\n");
1116 err = -ENOMEM; 1113 err = -ENOMEM;
1117 goto err_out; 1114 goto err_out;
1118 } 1115 }
@@ -1122,14 +1119,13 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1122 err = pci_request_regions(pdev, DRV_NAME); 1119 err = pci_request_regions(pdev, DRV_NAME);
1123 1120
1124 if (err) { 1121 if (err) {
1125 printk(KERN_ERR DRV_NAME ": Failed to request PCI regions\n"); 1122 dev_err(&pdev->dev, "Failed to request PCI regions\n");
1126 goto err_out_free_dev; 1123 goto err_out_free_dev;
1127 } 1124 }
1128 1125
1129 ioaddr = pci_iomap(pdev, bar, io_size); 1126 ioaddr = pci_iomap(pdev, bar, io_size);
1130 if (!ioaddr) { 1127 if (!ioaddr) {
1131 printk(KERN_ERR DRV_NAME ": ioremap failed for device %s\n", 1128 dev_err(&pdev->dev, "ioremap failed for device\n");
1132 pci_name(pdev));
1133 err = -EIO; 1129 err = -EIO;
1134 goto err_out_free_res; 1130 goto err_out_free_res;
1135 } 1131 }
@@ -1156,7 +1152,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1156 /* Some bootloader/BIOSes do not initialize 1152 /* Some bootloader/BIOSes do not initialize
1157 * MAC address, warn about that */ 1153 * MAC address, warn about that */
1158 if (!(adrp[0] || adrp[1] || adrp[2])) { 1154 if (!(adrp[0] || adrp[1] || adrp[2])) {
1159 printk(KERN_WARNING DRV_NAME ": MAC address not initialized, generating random\n"); 1155 netdev_warn(dev, "MAC address not initialized, generating random\n");
1160 random_ether_addr(dev->dev_addr); 1156 random_ether_addr(dev->dev_addr);
1161 } 1157 }
1162 1158
@@ -1184,7 +1180,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1184 1180
1185 /* Check the vendor ID on the PHY, if 0xffff assume none attached */ 1181 /* Check the vendor ID on the PHY, if 0xffff assume none attached */
1186 if (r6040_phy_read(ioaddr, lp->phy_addr, 2) == 0xffff) { 1182 if (r6040_phy_read(ioaddr, lp->phy_addr, 2) == 0xffff) {
1187 printk(KERN_ERR DRV_NAME ": Failed to detect an attached PHY\n"); 1183 dev_err(&pdev->dev, "Failed to detect an attached PHY\n");
1188 err = -ENODEV; 1184 err = -ENODEV;
1189 goto err_out_unmap; 1185 goto err_out_unmap;
1190 } 1186 }
@@ -1192,7 +1188,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1192 /* Register net device. After this dev->name assign */ 1188 /* Register net device. After this dev->name assign */
1193 err = register_netdev(dev); 1189 err = register_netdev(dev);
1194 if (err) { 1190 if (err) {
1195 printk(KERN_ERR DRV_NAME ": Failed to register net device\n"); 1191 dev_err(&pdev->dev, "Failed to register net device\n");
1196 goto err_out_unmap; 1192 goto err_out_unmap;
1197 } 1193 }
1198 return 0; 1194 return 0;