diff options
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r-- | drivers/net/spider_net.c | 184 |
1 files changed, 127 insertions, 57 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c index 7a4aa6a9f949..f5abb5279d4d 100644 --- a/drivers/net/spider_net.c +++ b/drivers/net/spider_net.c | |||
@@ -434,7 +434,8 @@ spider_net_prepare_rx_descr(struct spider_net_card *card, | |||
434 | bufsize + SPIDER_NET_RXBUF_ALIGN - 1); | 434 | bufsize + SPIDER_NET_RXBUF_ALIGN - 1); |
435 | if (!descr->skb) { | 435 | if (!descr->skb) { |
436 | if (netif_msg_rx_err(card) && net_ratelimit()) | 436 | if (netif_msg_rx_err(card) && net_ratelimit()) |
437 | pr_err("Not enough memory to allocate rx buffer\n"); | 437 | dev_err(&card->netdev->dev, |
438 | "Not enough memory to allocate rx buffer\n"); | ||
438 | card->spider_stats.alloc_rx_skb_error++; | 439 | card->spider_stats.alloc_rx_skb_error++; |
439 | return -ENOMEM; | 440 | return -ENOMEM; |
440 | } | 441 | } |
@@ -455,7 +456,7 @@ spider_net_prepare_rx_descr(struct spider_net_card *card, | |||
455 | dev_kfree_skb_any(descr->skb); | 456 | dev_kfree_skb_any(descr->skb); |
456 | descr->skb = NULL; | 457 | descr->skb = NULL; |
457 | if (netif_msg_rx_err(card) && net_ratelimit()) | 458 | if (netif_msg_rx_err(card) && net_ratelimit()) |
458 | pr_err("Could not iommu-map rx buffer\n"); | 459 | dev_err(&card->netdev->dev, "Could not iommu-map rx buffer\n"); |
459 | card->spider_stats.rx_iommu_map_error++; | 460 | card->spider_stats.rx_iommu_map_error++; |
460 | hwdescr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE; | 461 | hwdescr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE; |
461 | } else { | 462 | } else { |
@@ -500,6 +501,20 @@ spider_net_enable_rxdmac(struct spider_net_card *card) | |||
500 | } | 501 | } |
501 | 502 | ||
502 | /** | 503 | /** |
504 | * spider_net_disable_rxdmac - disables the receive DMA controller | ||
505 | * @card: card structure | ||
506 | * | ||
507 | * spider_net_disable_rxdmac terminates processing on the DMA controller | ||
508 | * by turing off the DMA controller, with the force-end flag set. | ||
509 | */ | ||
510 | static inline void | ||
511 | spider_net_disable_rxdmac(struct spider_net_card *card) | ||
512 | { | ||
513 | spider_net_write_reg(card, SPIDER_NET_GDADMACCNTR, | ||
514 | SPIDER_NET_DMA_RX_FEND_VALUE); | ||
515 | } | ||
516 | |||
517 | /** | ||
503 | * spider_net_refill_rx_chain - refills descriptors/skbs in the rx chains | 518 | * spider_net_refill_rx_chain - refills descriptors/skbs in the rx chains |
504 | * @card: card structure | 519 | * @card: card structure |
505 | * | 520 | * |
@@ -655,20 +670,6 @@ write_hash: | |||
655 | } | 670 | } |
656 | 671 | ||
657 | /** | 672 | /** |
658 | * spider_net_disable_rxdmac - disables the receive DMA controller | ||
659 | * @card: card structure | ||
660 | * | ||
661 | * spider_net_disable_rxdmac terminates processing on the DMA controller by | ||
662 | * turing off DMA and issueing a force end | ||
663 | */ | ||
664 | static void | ||
665 | spider_net_disable_rxdmac(struct spider_net_card *card) | ||
666 | { | ||
667 | spider_net_write_reg(card, SPIDER_NET_GDADMACCNTR, | ||
668 | SPIDER_NET_DMA_RX_FEND_VALUE); | ||
669 | } | ||
670 | |||
671 | /** | ||
672 | * spider_net_prepare_tx_descr - fill tx descriptor with skb data | 673 | * spider_net_prepare_tx_descr - fill tx descriptor with skb data |
673 | * @card: card structure | 674 | * @card: card structure |
674 | * @descr: descriptor structure to fill out | 675 | * @descr: descriptor structure to fill out |
@@ -692,7 +693,7 @@ spider_net_prepare_tx_descr(struct spider_net_card *card, | |||
692 | buf = pci_map_single(card->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); | 693 | buf = pci_map_single(card->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); |
693 | if (pci_dma_mapping_error(buf)) { | 694 | if (pci_dma_mapping_error(buf)) { |
694 | if (netif_msg_tx_err(card) && net_ratelimit()) | 695 | if (netif_msg_tx_err(card) && net_ratelimit()) |
695 | pr_err("could not iommu-map packet (%p, %i). " | 696 | dev_err(&card->netdev->dev, "could not iommu-map packet (%p, %i). " |
696 | "Dropping packet\n", skb->data, skb->len); | 697 | "Dropping packet\n", skb->data, skb->len); |
697 | card->spider_stats.tx_iommu_map_error++; | 698 | card->spider_stats.tx_iommu_map_error++; |
698 | return -ENOMEM; | 699 | return -ENOMEM; |
@@ -715,7 +716,7 @@ spider_net_prepare_tx_descr(struct spider_net_card *card, | |||
715 | hwdescr->data_status = 0; | 716 | hwdescr->data_status = 0; |
716 | 717 | ||
717 | hwdescr->dmac_cmd_status = | 718 | hwdescr->dmac_cmd_status = |
718 | SPIDER_NET_DESCR_CARDOWNED | SPIDER_NET_DMAC_NOCS; | 719 | SPIDER_NET_DESCR_CARDOWNED | SPIDER_NET_DMAC_TXFRMTL; |
719 | spin_unlock_irqrestore(&chain->lock, flags); | 720 | spin_unlock_irqrestore(&chain->lock, flags); |
720 | 721 | ||
721 | if (skb->ip_summed == CHECKSUM_PARTIAL) | 722 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
@@ -832,9 +833,8 @@ spider_net_release_tx_chain(struct spider_net_card *card, int brutal) | |||
832 | case SPIDER_NET_DESCR_PROTECTION_ERROR: | 833 | case SPIDER_NET_DESCR_PROTECTION_ERROR: |
833 | case SPIDER_NET_DESCR_FORCE_END: | 834 | case SPIDER_NET_DESCR_FORCE_END: |
834 | if (netif_msg_tx_err(card)) | 835 | if (netif_msg_tx_err(card)) |
835 | pr_err("%s: forcing end of tx descriptor " | 836 | dev_err(&card->netdev->dev, "forcing end of tx descriptor " |
836 | "with status x%02x\n", | 837 | "with status x%02x\n", status); |
837 | card->netdev->name, status); | ||
838 | card->netdev_stats.tx_errors++; | 838 | card->netdev_stats.tx_errors++; |
839 | break; | 839 | break; |
840 | 840 | ||
@@ -1022,34 +1022,94 @@ spider_net_pass_skb_up(struct spider_net_descr *descr, | |||
1022 | netif_receive_skb(skb); | 1022 | netif_receive_skb(skb); |
1023 | } | 1023 | } |
1024 | 1024 | ||
1025 | #ifdef DEBUG | ||
1026 | static void show_rx_chain(struct spider_net_card *card) | 1025 | static void show_rx_chain(struct spider_net_card *card) |
1027 | { | 1026 | { |
1028 | struct spider_net_descr_chain *chain = &card->rx_chain; | 1027 | struct spider_net_descr_chain *chain = &card->rx_chain; |
1029 | struct spider_net_descr *start= chain->tail; | 1028 | struct spider_net_descr *start= chain->tail; |
1030 | struct spider_net_descr *descr= start; | 1029 | struct spider_net_descr *descr= start; |
1030 | struct spider_net_hw_descr *hwd = start->hwdescr; | ||
1031 | struct device *dev = &card->netdev->dev; | ||
1032 | u32 curr_desc, next_desc; | ||
1031 | int status; | 1033 | int status; |
1032 | 1034 | ||
1035 | int tot = 0; | ||
1033 | int cnt = 0; | 1036 | int cnt = 0; |
1034 | int cstat = spider_net_get_descr_status(descr); | 1037 | int off = start - chain->ring; |
1035 | printk(KERN_INFO "RX chain tail at descr=%ld\n", | 1038 | int cstat = hwd->dmac_cmd_status; |
1036 | (start - card->descr) - card->tx_chain.num_desc); | 1039 | |
1040 | dev_info(dev, "Total number of descrs=%d\n", | ||
1041 | chain->num_desc); | ||
1042 | dev_info(dev, "Chain tail located at descr=%d, status=0x%x\n", | ||
1043 | off, cstat); | ||
1044 | |||
1045 | curr_desc = spider_net_read_reg(card, SPIDER_NET_GDACTDPA); | ||
1046 | next_desc = spider_net_read_reg(card, SPIDER_NET_GDACNEXTDA); | ||
1047 | |||
1037 | status = cstat; | 1048 | status = cstat; |
1038 | do | 1049 | do |
1039 | { | 1050 | { |
1040 | status = spider_net_get_descr_status(descr); | 1051 | hwd = descr->hwdescr; |
1052 | off = descr - chain->ring; | ||
1053 | status = hwd->dmac_cmd_status; | ||
1054 | |||
1055 | if (descr == chain->head) | ||
1056 | dev_info(dev, "Chain head is at %d, head status=0x%x\n", | ||
1057 | off, status); | ||
1058 | |||
1059 | if (curr_desc == descr->bus_addr) | ||
1060 | dev_info(dev, "HW curr desc (GDACTDPA) is at %d, status=0x%x\n", | ||
1061 | off, status); | ||
1062 | |||
1063 | if (next_desc == descr->bus_addr) | ||
1064 | dev_info(dev, "HW next desc (GDACNEXTDA) is at %d, status=0x%x\n", | ||
1065 | off, status); | ||
1066 | |||
1067 | if (hwd->next_descr_addr == 0) | ||
1068 | dev_info(dev, "chain is cut at %d\n", off); | ||
1069 | |||
1041 | if (cstat != status) { | 1070 | if (cstat != status) { |
1042 | printk(KERN_INFO "Have %d descrs with stat=x%08x\n", cnt, cstat); | 1071 | int from = (chain->num_desc + off - cnt) % chain->num_desc; |
1072 | int to = (chain->num_desc + off - 1) % chain->num_desc; | ||
1073 | dev_info(dev, "Have %d (from %d to %d) descrs " | ||
1074 | "with stat=0x%08x\n", cnt, from, to, cstat); | ||
1043 | cstat = status; | 1075 | cstat = status; |
1044 | cnt = 0; | 1076 | cnt = 0; |
1045 | } | 1077 | } |
1078 | |||
1046 | cnt ++; | 1079 | cnt ++; |
1080 | tot ++; | ||
1081 | descr = descr->next; | ||
1082 | } while (descr != start); | ||
1083 | |||
1084 | dev_info(dev, "Last %d descrs with stat=0x%08x " | ||
1085 | "for a total of %d descrs\n", cnt, cstat, tot); | ||
1086 | |||
1087 | #ifdef DEBUG | ||
1088 | /* Now dump the whole ring */ | ||
1089 | descr = start; | ||
1090 | do | ||
1091 | { | ||
1092 | struct spider_net_hw_descr *hwd = descr->hwdescr; | ||
1093 | status = spider_net_get_descr_status(hwd); | ||
1094 | cnt = descr - chain->ring; | ||
1095 | dev_info(dev, "Descr %d stat=0x%08x skb=%p\n", | ||
1096 | cnt, status, descr->skb); | ||
1097 | dev_info(dev, "bus addr=%08x buf addr=%08x sz=%d\n", | ||
1098 | descr->bus_addr, hwd->buf_addr, hwd->buf_size); | ||
1099 | dev_info(dev, "next=%08x result sz=%d valid sz=%d\n", | ||
1100 | hwd->next_descr_addr, hwd->result_size, | ||
1101 | hwd->valid_size); | ||
1102 | dev_info(dev, "dmac=%08x data stat=%08x data err=%08x\n", | ||
1103 | hwd->dmac_cmd_status, hwd->data_status, | ||
1104 | hwd->data_error); | ||
1105 | dev_info(dev, "\n"); | ||
1106 | |||
1047 | descr = descr->next; | 1107 | descr = descr->next; |
1048 | } while (descr != start); | 1108 | } while (descr != start); |
1049 | printk(KERN_INFO "Last %d descrs with stat=x%08x\n", cnt, cstat); | ||
1050 | } | ||
1051 | #endif | 1109 | #endif |
1052 | 1110 | ||
1111 | } | ||
1112 | |||
1053 | /** | 1113 | /** |
1054 | * spider_net_resync_head_ptr - Advance head ptr past empty descrs | 1114 | * spider_net_resync_head_ptr - Advance head ptr past empty descrs |
1055 | * | 1115 | * |
@@ -1127,6 +1187,7 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
1127 | struct spider_net_descr_chain *chain = &card->rx_chain; | 1187 | struct spider_net_descr_chain *chain = &card->rx_chain; |
1128 | struct spider_net_descr *descr = chain->tail; | 1188 | struct spider_net_descr *descr = chain->tail; |
1129 | struct spider_net_hw_descr *hwdescr = descr->hwdescr; | 1189 | struct spider_net_hw_descr *hwdescr = descr->hwdescr; |
1190 | u32 hw_buf_addr; | ||
1130 | int status; | 1191 | int status; |
1131 | 1192 | ||
1132 | status = spider_net_get_descr_status(hwdescr); | 1193 | status = spider_net_get_descr_status(hwdescr); |
@@ -1140,15 +1201,17 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
1140 | chain->tail = descr->next; | 1201 | chain->tail = descr->next; |
1141 | 1202 | ||
1142 | /* unmap descriptor */ | 1203 | /* unmap descriptor */ |
1143 | pci_unmap_single(card->pdev, hwdescr->buf_addr, | 1204 | hw_buf_addr = hwdescr->buf_addr; |
1205 | hwdescr->buf_addr = 0xffffffff; | ||
1206 | pci_unmap_single(card->pdev, hw_buf_addr, | ||
1144 | SPIDER_NET_MAX_FRAME, PCI_DMA_FROMDEVICE); | 1207 | SPIDER_NET_MAX_FRAME, PCI_DMA_FROMDEVICE); |
1145 | 1208 | ||
1146 | if ( (status == SPIDER_NET_DESCR_RESPONSE_ERROR) || | 1209 | if ( (status == SPIDER_NET_DESCR_RESPONSE_ERROR) || |
1147 | (status == SPIDER_NET_DESCR_PROTECTION_ERROR) || | 1210 | (status == SPIDER_NET_DESCR_PROTECTION_ERROR) || |
1148 | (status == SPIDER_NET_DESCR_FORCE_END) ) { | 1211 | (status == SPIDER_NET_DESCR_FORCE_END) ) { |
1149 | if (netif_msg_rx_err(card)) | 1212 | if (netif_msg_rx_err(card)) |
1150 | pr_err("%s: dropping RX descriptor with state %d\n", | 1213 | dev_err(&card->netdev->dev, |
1151 | card->netdev->name, status); | 1214 | "dropping RX descriptor with state %d\n", status); |
1152 | card->netdev_stats.rx_dropped++; | 1215 | card->netdev_stats.rx_dropped++; |
1153 | goto bad_desc; | 1216 | goto bad_desc; |
1154 | } | 1217 | } |
@@ -1156,8 +1219,8 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
1156 | if ( (status != SPIDER_NET_DESCR_COMPLETE) && | 1219 | if ( (status != SPIDER_NET_DESCR_COMPLETE) && |
1157 | (status != SPIDER_NET_DESCR_FRAME_END) ) { | 1220 | (status != SPIDER_NET_DESCR_FRAME_END) ) { |
1158 | if (netif_msg_rx_err(card)) | 1221 | if (netif_msg_rx_err(card)) |
1159 | pr_err("%s: RX descriptor with unknown state %d\n", | 1222 | dev_err(&card->netdev->dev, |
1160 | card->netdev->name, status); | 1223 | "RX descriptor with unknown state %d\n", status); |
1161 | card->spider_stats.rx_desc_unk_state++; | 1224 | card->spider_stats.rx_desc_unk_state++; |
1162 | goto bad_desc; | 1225 | goto bad_desc; |
1163 | } | 1226 | } |
@@ -1165,18 +1228,17 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
1165 | /* The cases we'll throw away the packet immediately */ | 1228 | /* The cases we'll throw away the packet immediately */ |
1166 | if (hwdescr->data_error & SPIDER_NET_DESTROY_RX_FLAGS) { | 1229 | if (hwdescr->data_error & SPIDER_NET_DESTROY_RX_FLAGS) { |
1167 | if (netif_msg_rx_err(card)) | 1230 | if (netif_msg_rx_err(card)) |
1168 | pr_err("%s: error in received descriptor found, " | 1231 | dev_err(&card->netdev->dev, |
1232 | "error in received descriptor found, " | ||
1169 | "data_status=x%08x, data_error=x%08x\n", | 1233 | "data_status=x%08x, data_error=x%08x\n", |
1170 | card->netdev->name, | ||
1171 | hwdescr->data_status, hwdescr->data_error); | 1234 | hwdescr->data_status, hwdescr->data_error); |
1172 | goto bad_desc; | 1235 | goto bad_desc; |
1173 | } | 1236 | } |
1174 | 1237 | ||
1175 | if (hwdescr->dmac_cmd_status & 0xfcf4) { | 1238 | if (hwdescr->dmac_cmd_status & SPIDER_NET_DESCR_BAD_STATUS) { |
1176 | pr_err("%s: bad status, cmd_status=x%08x\n", | 1239 | dev_err(&card->netdev->dev, "bad status, cmd_status=x%08x\n", |
1177 | card->netdev->name, | ||
1178 | hwdescr->dmac_cmd_status); | 1240 | hwdescr->dmac_cmd_status); |
1179 | pr_err("buf_addr=x%08x\n", hwdescr->buf_addr); | 1241 | pr_err("buf_addr=x%08x\n", hw_buf_addr); |
1180 | pr_err("buf_size=x%08x\n", hwdescr->buf_size); | 1242 | pr_err("buf_size=x%08x\n", hwdescr->buf_size); |
1181 | pr_err("next_descr_addr=x%08x\n", hwdescr->next_descr_addr); | 1243 | pr_err("next_descr_addr=x%08x\n", hwdescr->next_descr_addr); |
1182 | pr_err("result_size=x%08x\n", hwdescr->result_size); | 1244 | pr_err("result_size=x%08x\n", hwdescr->result_size); |
@@ -1196,6 +1258,8 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
1196 | return 1; | 1258 | return 1; |
1197 | 1259 | ||
1198 | bad_desc: | 1260 | bad_desc: |
1261 | if (netif_msg_rx_err(card)) | ||
1262 | show_rx_chain(card); | ||
1199 | dev_kfree_skb_irq(descr->skb); | 1263 | dev_kfree_skb_irq(descr->skb); |
1200 | descr->skb = NULL; | 1264 | descr->skb = NULL; |
1201 | hwdescr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE; | 1265 | hwdescr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE; |
@@ -1221,7 +1285,6 @@ spider_net_poll(struct net_device *netdev, int *budget) | |||
1221 | int packets_to_do, packets_done = 0; | 1285 | int packets_to_do, packets_done = 0; |
1222 | int no_more_packets = 0; | 1286 | int no_more_packets = 0; |
1223 | 1287 | ||
1224 | spider_net_cleanup_tx_ring(card); | ||
1225 | packets_to_do = min(*budget, netdev->quota); | 1288 | packets_to_do = min(*budget, netdev->quota); |
1226 | 1289 | ||
1227 | while (packets_to_do) { | 1290 | while (packets_to_do) { |
@@ -1246,6 +1309,8 @@ spider_net_poll(struct net_device *netdev, int *budget) | |||
1246 | spider_net_refill_rx_chain(card); | 1309 | spider_net_refill_rx_chain(card); |
1247 | spider_net_enable_rxdmac(card); | 1310 | spider_net_enable_rxdmac(card); |
1248 | 1311 | ||
1312 | spider_net_cleanup_tx_ring(card); | ||
1313 | |||
1249 | /* if all packets are in the stack, enable interrupts and return 0 */ | 1314 | /* if all packets are in the stack, enable interrupts and return 0 */ |
1250 | /* if not, return 1 */ | 1315 | /* if not, return 1 */ |
1251 | if (no_more_packets) { | 1316 | if (no_more_packets) { |
@@ -1415,7 +1480,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg) | |||
1415 | case SPIDER_NET_GPWFFINT: | 1480 | case SPIDER_NET_GPWFFINT: |
1416 | /* PHY command queue full */ | 1481 | /* PHY command queue full */ |
1417 | if (netif_msg_intr(card)) | 1482 | if (netif_msg_intr(card)) |
1418 | pr_err("PHY write queue full\n"); | 1483 | dev_err(&card->netdev->dev, "PHY write queue full\n"); |
1419 | show_error = 0; | 1484 | show_error = 0; |
1420 | break; | 1485 | break; |
1421 | 1486 | ||
@@ -1582,9 +1647,8 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg) | |||
1582 | } | 1647 | } |
1583 | 1648 | ||
1584 | if ((show_error) && (netif_msg_intr(card)) && net_ratelimit()) | 1649 | if ((show_error) && (netif_msg_intr(card)) && net_ratelimit()) |
1585 | pr_err("Got error interrupt on %s, GHIINT0STS = 0x%08x, " | 1650 | dev_err(&card->netdev->dev, "Error interrupt, GHIINT0STS = 0x%08x, " |
1586 | "GHIINT1STS = 0x%08x, GHIINT2STS = 0x%08x\n", | 1651 | "GHIINT1STS = 0x%08x, GHIINT2STS = 0x%08x\n", |
1587 | card->netdev->name, | ||
1588 | status_reg, error_reg1, error_reg2); | 1652 | status_reg, error_reg1, error_reg2); |
1589 | 1653 | ||
1590 | /* clear interrupt sources */ | 1654 | /* clear interrupt sources */ |
@@ -1849,7 +1913,8 @@ spider_net_init_firmware(struct spider_net_card *card) | |||
1849 | SPIDER_NET_FIRMWARE_NAME, &card->pdev->dev) == 0) { | 1913 | SPIDER_NET_FIRMWARE_NAME, &card->pdev->dev) == 0) { |
1850 | if ( (firmware->size != SPIDER_NET_FIRMWARE_LEN) && | 1914 | if ( (firmware->size != SPIDER_NET_FIRMWARE_LEN) && |
1851 | netif_msg_probe(card) ) { | 1915 | netif_msg_probe(card) ) { |
1852 | pr_err("Incorrect size of spidernet firmware in " \ | 1916 | dev_err(&card->netdev->dev, |
1917 | "Incorrect size of spidernet firmware in " \ | ||
1853 | "filesystem. Looking in host firmware...\n"); | 1918 | "filesystem. Looking in host firmware...\n"); |
1854 | goto try_host_fw; | 1919 | goto try_host_fw; |
1855 | } | 1920 | } |
@@ -1873,8 +1938,8 @@ try_host_fw: | |||
1873 | 1938 | ||
1874 | if ( (fw_size != SPIDER_NET_FIRMWARE_LEN) && | 1939 | if ( (fw_size != SPIDER_NET_FIRMWARE_LEN) && |
1875 | netif_msg_probe(card) ) { | 1940 | netif_msg_probe(card) ) { |
1876 | pr_err("Incorrect size of spidernet firmware in " \ | 1941 | dev_err(&card->netdev->dev, |
1877 | "host firmware\n"); | 1942 | "Incorrect size of spidernet firmware in host firmware\n"); |
1878 | goto done; | 1943 | goto done; |
1879 | } | 1944 | } |
1880 | 1945 | ||
@@ -1884,7 +1949,8 @@ done: | |||
1884 | return err; | 1949 | return err; |
1885 | out_err: | 1950 | out_err: |
1886 | if (netif_msg_probe(card)) | 1951 | if (netif_msg_probe(card)) |
1887 | pr_err("Couldn't find spidernet firmware in filesystem " \ | 1952 | dev_err(&card->netdev->dev, |
1953 | "Couldn't find spidernet firmware in filesystem " \ | ||
1888 | "or host firmware\n"); | 1954 | "or host firmware\n"); |
1889 | return err; | 1955 | return err; |
1890 | } | 1956 | } |
@@ -2279,13 +2345,14 @@ spider_net_setup_netdev(struct spider_net_card *card) | |||
2279 | 2345 | ||
2280 | result = spider_net_set_mac(netdev, &addr); | 2346 | result = spider_net_set_mac(netdev, &addr); |
2281 | if ((result) && (netif_msg_probe(card))) | 2347 | if ((result) && (netif_msg_probe(card))) |
2282 | pr_err("Failed to set MAC address: %i\n", result); | 2348 | dev_err(&card->netdev->dev, |
2349 | "Failed to set MAC address: %i\n", result); | ||
2283 | 2350 | ||
2284 | result = register_netdev(netdev); | 2351 | result = register_netdev(netdev); |
2285 | if (result) { | 2352 | if (result) { |
2286 | if (netif_msg_probe(card)) | 2353 | if (netif_msg_probe(card)) |
2287 | pr_err("Couldn't register net_device: %i\n", | 2354 | dev_err(&card->netdev->dev, |
2288 | result); | 2355 | "Couldn't register net_device: %i\n", result); |
2289 | return result; | 2356 | return result; |
2290 | } | 2357 | } |
2291 | 2358 | ||
@@ -2363,17 +2430,19 @@ spider_net_setup_pci_dev(struct pci_dev *pdev) | |||
2363 | unsigned long mmio_start, mmio_len; | 2430 | unsigned long mmio_start, mmio_len; |
2364 | 2431 | ||
2365 | if (pci_enable_device(pdev)) { | 2432 | if (pci_enable_device(pdev)) { |
2366 | pr_err("Couldn't enable PCI device\n"); | 2433 | dev_err(&pdev->dev, "Couldn't enable PCI device\n"); |
2367 | return NULL; | 2434 | return NULL; |
2368 | } | 2435 | } |
2369 | 2436 | ||
2370 | if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { | 2437 | if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { |
2371 | pr_err("Couldn't find proper PCI device base address.\n"); | 2438 | dev_err(&pdev->dev, |
2439 | "Couldn't find proper PCI device base address.\n"); | ||
2372 | goto out_disable_dev; | 2440 | goto out_disable_dev; |
2373 | } | 2441 | } |
2374 | 2442 | ||
2375 | if (pci_request_regions(pdev, spider_net_driver_name)) { | 2443 | if (pci_request_regions(pdev, spider_net_driver_name)) { |
2376 | pr_err("Couldn't obtain PCI resources, aborting.\n"); | 2444 | dev_err(&pdev->dev, |
2445 | "Couldn't obtain PCI resources, aborting.\n"); | ||
2377 | goto out_disable_dev; | 2446 | goto out_disable_dev; |
2378 | } | 2447 | } |
2379 | 2448 | ||
@@ -2381,8 +2450,8 @@ spider_net_setup_pci_dev(struct pci_dev *pdev) | |||
2381 | 2450 | ||
2382 | card = spider_net_alloc_card(); | 2451 | card = spider_net_alloc_card(); |
2383 | if (!card) { | 2452 | if (!card) { |
2384 | pr_err("Couldn't allocate net_device structure, " | 2453 | dev_err(&pdev->dev, |
2385 | "aborting.\n"); | 2454 | "Couldn't allocate net_device structure, aborting.\n"); |
2386 | goto out_release_regions; | 2455 | goto out_release_regions; |
2387 | } | 2456 | } |
2388 | card->pdev = pdev; | 2457 | card->pdev = pdev; |
@@ -2396,7 +2465,8 @@ spider_net_setup_pci_dev(struct pci_dev *pdev) | |||
2396 | card->regs = ioremap(mmio_start, mmio_len); | 2465 | card->regs = ioremap(mmio_start, mmio_len); |
2397 | 2466 | ||
2398 | if (!card->regs) { | 2467 | if (!card->regs) { |
2399 | pr_err("Couldn't obtain PCI resources, aborting.\n"); | 2468 | dev_err(&pdev->dev, |
2469 | "Couldn't obtain PCI resources, aborting.\n"); | ||
2400 | goto out_release_regions; | 2470 | goto out_release_regions; |
2401 | } | 2471 | } |
2402 | 2472 | ||