Lines Matching refs:dev

67 static int greth_open(struct net_device *dev);
69 struct net_device *dev);
71 struct net_device *dev);
72 static int greth_rx(struct net_device *dev, int limit);
73 static int greth_rx_gbit(struct net_device *dev, int limit);
74 static void greth_clean_tx(struct net_device *dev);
75 static void greth_clean_tx_gbit(struct net_device *dev);
77 static int greth_close(struct net_device *dev);
78 static int greth_set_mac_add(struct net_device *dev, void *p);
79 static void greth_set_multicast_list(struct net_device *dev);
177 dma_unmap_single(greth->dev,
192 dma_unmap_single(greth->dev,
201 dma_unmap_page(greth->dev,
217 dma_unmap_single(greth->dev,
224 dma_unmap_single(greth->dev,
249 dev_err(greth->dev, "Error allocating DMA ring.\n");
253 dma_addr = dma_map_single(greth->dev,
258 if (dma_mapping_error(greth->dev, dma_addr)) {
260 dev_err(greth->dev, "Could not create initial DMA mapping\n");
278 dev_err(greth->dev, "Error allocating DMA ring.\n");
282 dma_addr = dma_map_single(greth->dev,
287 if (dma_mapping_error(greth->dev, dma_addr)) {
289 dev_err(greth->dev, "Could not create initial DMA mapping\n");
301 dev_err(greth->dev, "Error allocating DMA ring.\n");
305 dma_addr = dma_map_single(greth->dev,
310 if (dma_mapping_error(greth->dev, dma_addr)) {
312 dev_err(greth->dev, "Could not create initial DMA mapping\n");
339 static int greth_open(struct net_device *dev)
341 struct greth_private *greth = netdev_priv(dev);
347 dev_err(&dev->dev, "Could not allocate memory for DMA rings\n");
351 err = request_irq(greth->irq, greth_interrupt, 0, "eth", (void *) dev);
354 dev_err(&dev->dev, "Could not allocate interrupt %d\n", dev->irq);
360 dev_dbg(&dev->dev, " starting queue\n");
361 netif_start_queue(dev);
374 static int greth_close(struct net_device *dev)
376 struct greth_private *greth = netdev_priv(dev);
384 netif_stop_queue(dev);
386 free_irq(greth->irq, (void *) dev);
394 greth_start_xmit(struct sk_buff *skb, struct net_device *dev)
396 struct greth_private *greth = netdev_priv(dev);
411 netif_stop_queue(dev);
421 dev->stats.tx_errors++;
430 dma_sync_single_for_device(greth->dev, dma_addr, skb->len, DMA_TO_DEVICE);
463 greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
465 struct greth_private *greth = netdev_priv(dev);
477 netif_stop_queue(dev);
486 dev->stats.tx_errors++;
508 dma_addr = dma_map_single(greth->dev, skb->data, skb_headlen(skb), DMA_TO_DEVICE);
510 if (unlikely(dma_mapping_error(greth->dev, dma_addr)))
540 dma_addr = skb_frag_dma_map(greth->dev, frag, 0, skb_frag_size(frag),
543 if (unlikely(dma_mapping_error(greth->dev, dma_addr)))
569 dma_unmap_single(greth->dev,
577 dev_warn(greth->dev, "Could not create TX DMA mapping\n");
585 struct net_device *dev = dev_id;
590 greth = netdev_priv(dev);
618 static void greth_clean_tx(struct net_device *dev)
624 greth = netdev_priv(dev);
640 dev->stats.tx_errors++;
642 dev->stats.tx_aborted_errors++;
644 dev->stats.tx_fifo_errors++;
646 dev->stats.tx_packets++;
647 dev->stats.tx_bytes += greth->tx_bufs_length[greth->tx_last];
653 netif_wake_queue(dev);
657 static inline void greth_update_tx_stats(struct net_device *dev, u32 stat)
661 dev->stats.tx_errors++;
663 dev->stats.tx_aborted_errors++;
665 dev->stats.tx_fifo_errors++;
667 dev->stats.tx_aborted_errors++;
669 dev->stats.tx_packets++;
672 static void greth_clean_tx_gbit(struct net_device *dev)
681 greth = netdev_priv(dev);
702 greth_update_tx_stats(dev, stat);
703 dev->stats.tx_bytes += skb->len;
709 dma_unmap_single(greth->dev,
718 dma_unmap_page(greth->dev,
731 if (netif_queue_stopped(dev) &&
734 netif_wake_queue(dev);
738 static int greth_rx(struct net_device *dev, int limit)
748 greth = netdev_priv(dev);
767 dev->stats.rx_length_errors++;
771 dev->stats.rx_frame_errors++;
775 dev->stats.rx_crc_errors++;
780 dev->stats.rx_errors++;
786 skb = netdev_alloc_skb(dev, pkt_len + NET_IP_ALIGN);
791 dev_warn(&dev->dev, "low on memory - " "packet dropped\n");
793 dev->stats.rx_dropped++;
798 dma_sync_single_for_cpu(greth->dev,
809 skb->protocol = eth_type_trans(skb, dev);
810 dev->stats.rx_bytes += pkt_len;
811 dev->stats.rx_packets++;
824 dma_sync_single_for_device(greth->dev, dma_addr, MAX_FRAME_SIZE, DMA_FROM_DEVICE);
854 static int greth_rx_gbit(struct net_device *dev, int limit)
864 greth = netdev_priv(dev);
882 dev->stats.rx_length_errors++;
886 dev->stats.rx_frame_errors++;
889 dev->stats.rx_crc_errors++;
896 if (!bad && (newskb=netdev_alloc_skb(dev, MAX_FRAME_SIZE + NET_IP_ALIGN))) {
899 dma_addr = dma_map_single(greth->dev,
904 if (!dma_mapping_error(greth->dev, dma_addr)) {
908 dma_unmap_single(greth->dev,
918 if (dev->features & NETIF_F_RXCSUM && hw_checksummed(status))
923 skb->protocol = eth_type_trans(skb, dev);
924 dev->stats.rx_packets++;
925 dev->stats.rx_bytes += pkt_len;
932 dev_warn(greth->dev, "Could not create DMA mapping, dropping packet\n");
935 dev->stats.rx_dropped++;
939 dev->stats.rx_dropped++;
948 dev_warn(greth->dev, "Could not allocate SKB, dropping packet\n");
950 dev->stats.rx_dropped++;
1017 static int greth_set_mac_add(struct net_device *dev, void *p)
1023 greth = netdev_priv(dev);
1029 memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
1030 GRETH_REGSAVE(regs->esa_msb, dev->dev_addr[0] << 8 | dev->dev_addr[1]);
1031 GRETH_REGSAVE(regs->esa_lsb, dev->dev_addr[2] << 24 | dev->dev_addr[3] << 16 |
1032 dev->dev_addr[4] << 8 | dev->dev_addr[5]);
1042 static void greth_set_hash_filter(struct net_device *dev)
1045 struct greth_private *greth = netdev_priv(dev);
1052 netdev_for_each_mc_addr(ha, dev) {
1061 static void greth_set_multicast_list(struct net_device *dev)
1064 struct greth_private *greth = netdev_priv(dev);
1068 if (dev->flags & IFF_PROMISC)
1074 if (dev->flags & IFF_ALLMULTI) {
1082 if (netdev_mc_empty(dev)) {
1089 greth_set_hash_filter(dev);
1095 static u32 greth_get_msglevel(struct net_device *dev)
1097 struct greth_private *greth = netdev_priv(dev);
1101 static void greth_set_msglevel(struct net_device *dev, u32 value)
1103 struct greth_private *greth = netdev_priv(dev);
1107 static int greth_get_regs_len(struct net_device *dev)
1112 static void greth_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
1114 struct greth_private *greth = netdev_priv(dev);
1116 strlcpy(info->driver, dev_driver_string(greth->dev),
1118 strlcpy(info->bus_info, greth->dev->bus->name, sizeof(info->bus_info));
1121 static void greth_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
1124 struct greth_private *greth = netdev_priv(dev);
1199 static void greth_link_change(struct net_device *dev)
1201 struct greth_private *greth = netdev_priv(dev);
1202 struct phy_device *phydev = dev->phydev;
1245 dev->name, phydev->speed,
1248 pr_debug("%s: link down\n", dev->name);
1252 static int greth_mdio_probe(struct net_device *dev)
1254 struct greth_private *greth = netdev_priv(dev);
1263 dev_err(&dev->dev, "no PHY found\n");
1267 ret = phy_connect_direct(dev, phy, &greth_link_change,
1271 dev_err(&dev->dev, "could not attach to PHY\n");
1314 dev_err(&greth->netdev->dev, "failed to probe MDIO bus\n");
1343 struct net_device *dev;
1352 dev = alloc_etherdev(sizeof(struct greth_private));
1354 if (dev == NULL)
1357 greth = netdev_priv(dev);
1358 greth->netdev = dev;
1359 greth->dev = &ofdev->dev;
1374 dev_err(greth->dev, "ioremap failure.\n");
1382 dev_set_drvdata(greth->dev, dev);
1383 SET_NETDEV_DEV(dev, greth->dev);
1386 dev_dbg(greth->dev, "resetting controller.\n");
1397 dev_err(greth->dev, "timeout when waiting for reset.\n");
1425 dev_err(greth->dev, "failed to register MDIO bus\n");
1430 greth->tx_bd_base = dma_alloc_coherent(greth->dev, 1024,
1439 greth->rx_bd_base = dma_alloc_coherent(greth->dev, 1024,
1455 addr = of_get_mac_address(ofdev->dev.of_node);
1468 dev->dev_addr[i] = macaddr[i];
1472 if (!is_valid_ether_addr(&dev->dev_addr[0])) {
1474 dev_err(greth->dev, "no valid ethernet address, aborting.\n");
1479 GRETH_REGSAVE(regs->esa_msb, dev->dev_addr[0] << 8 | dev->dev_addr[1]);
1480 GRETH_REGSAVE(regs->esa_lsb, dev->dev_addr[2] << 24 | dev->dev_addr[3] << 16 |
1481 dev->dev_addr[4] << 8 | dev->dev_addr[5]);
1487 dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
1489 dev->features = dev->hw_features | NETIF_F_HIGHDMA;
1495 dev->flags |= IFF_MULTICAST;
1497 dev->flags &= ~IFF_MULTICAST;
1500 dev->netdev_ops = &greth_netdev_ops;
1501 dev->ethtool_ops = &greth_ethtool_ops;
1503 err = register_netdev(dev);
1506 dev_err(greth->dev, "netdevice registration failed.\n");
1511 netif_napi_add(dev, &greth->napi, greth_poll, 64);
1516 dma_free_coherent(greth->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys);
1518 dma_free_coherent(greth->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys);
1524 free_netdev(dev);
1534 dma_free_coherent(&of_dev->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys);
1536 dma_free_coherent(&of_dev->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys);