Lines Matching refs:netdev
157 struct net_device *netdev;
257 static void ks8842_update_link_status(struct net_device *netdev,
262 netif_carrier_on(netdev);
263 netif_wake_queue(netdev);
265 netif_stop_queue(netdev);
266 netif_carrier_off(netdev);
359 eth_hw_addr_set(adapter->netdev, addr);
421 static int ks8842_tx_frame_dma(struct sk_buff *skb, struct net_device *netdev)
423 struct ks8842_adapter *adapter = netdev_priv(netdev);
428 netdev_dbg(netdev, "%s: TX ongoing\n", __func__);
456 ctl->adesc->callback_param = netdev;
460 netdev->stats.tx_bytes += skb->len;
467 static int ks8842_tx_frame(struct sk_buff *skb, struct net_device *netdev)
469 struct ks8842_adapter *adapter = netdev_priv(netdev);
472 netdev_dbg(netdev, "%s: len %u head %p data %p tail %p end %p\n",
484 netdev->stats.tx_bytes += len;
500 netdev->stats.tx_bytes += len;
518 static void ks8842_update_rx_err_counters(struct net_device *netdev, u32 status)
520 netdev_dbg(netdev, "RX error, status: %x\n", status);
522 netdev->stats.rx_errors++;
524 netdev->stats.rx_length_errors++;
526 netdev->stats.rx_crc_errors++;
528 netdev->stats.rx_frame_errors++;
531 static void ks8842_update_rx_counters(struct net_device *netdev, u32 status,
534 netdev_dbg(netdev, "RX packet, len: %d\n", len);
536 netdev->stats.rx_packets++;
537 netdev->stats.rx_bytes += len;
539 netdev->stats.multicast++;
542 static int __ks8842_start_new_rx_dma(struct net_device *netdev)
544 struct ks8842_adapter *adapter = netdev_priv(netdev);
549 ctl->skb = netdev_alloc_skb(netdev, DMA_BUFFER_SIZE);
570 ctl->adesc->callback_param = netdev;
595 struct net_device *netdev = adapter->netdev;
604 __ks8842_start_new_rx_dma(netdev);
611 netdev_dbg(netdev, "%s - rx_data: status: %x\n",
618 ks8842_update_rx_counters(netdev, status, len);
624 skb->protocol = eth_type_trans(skb, netdev);
627 ks8842_update_rx_err_counters(netdev, status);
632 static void ks8842_rx_frame(struct net_device *netdev,
641 netdev_dbg(netdev, "%s - rx_data: status: %x\n",
647 netdev_dbg(netdev, "%s - rx_data: status: %x\n",
653 struct sk_buff *skb = netdev_alloc_skb_ip_align(netdev, len + 3);
657 ks8842_update_rx_counters(netdev, status, len);
679 skb->protocol = eth_type_trans(skb, netdev);
682 netdev->stats.rx_dropped++;
684 ks8842_update_rx_err_counters(netdev, status);
696 static void ks8842_handle_rx(struct net_device *netdev,
700 netdev_dbg(netdev, "%s Entry - rx_data: %d\n", __func__, rx_data);
702 ks8842_rx_frame(netdev, adapter);
707 static void ks8842_handle_tx(struct net_device *netdev,
711 netdev_dbg(netdev, "%s - entry, sr: %x\n", __func__, sr);
712 netdev->stats.tx_packets++;
713 if (netif_queue_stopped(netdev))
714 netif_wake_queue(netdev);
717 static void ks8842_handle_rx_overrun(struct net_device *netdev,
720 netdev_dbg(netdev, "%s: entry\n", __func__);
721 netdev->stats.rx_errors++;
722 netdev->stats.rx_fifo_errors++;
728 struct net_device *netdev = adapter->netdev;
739 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr);
754 if (!netif_running(netdev))
758 ks8842_update_link_status(netdev, adapter);
762 ks8842_handle_rx(netdev, adapter);
766 ks8842_handle_tx(netdev, adapter);
769 ks8842_handle_rx_overrun(netdev, adapter);
799 struct net_device *netdev = devid;
800 struct ks8842_adapter *adapter = netdev_priv(netdev);
806 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr);
834 struct net_device *netdev = data;
835 struct ks8842_adapter *adapter = netdev_priv(netdev);
837 netdev_dbg(netdev, "RX DMA finished\n");
845 struct net_device *netdev = data;
846 struct ks8842_adapter *adapter = netdev_priv(netdev);
849 netdev_dbg(netdev, "TX DMA finished\n");
854 netdev->stats.tx_packets++;
857 if (netif_queue_stopped(netdev))
858 netif_wake_queue(netdev);
914 static int ks8842_alloc_dma_bufs(struct net_device *netdev)
916 struct ks8842_adapter *adapter = netdev_priv(netdev);
968 static int ks8842_open(struct net_device *netdev)
970 struct ks8842_adapter *adapter = netdev_priv(netdev);
973 netdev_dbg(netdev, "%s - entry\n", __func__);
976 err = ks8842_alloc_dma_bufs(netdev);
980 err = __ks8842_start_new_rx_dma(netdev);
997 ks8842_write_mac_addr(adapter, netdev->dev_addr);
999 ks8842_update_link_status(netdev, adapter);
1002 netdev);
1011 static int ks8842_close(struct net_device *netdev)
1013 struct ks8842_adapter *adapter = netdev_priv(netdev);
1015 netdev_dbg(netdev, "%s - entry\n", __func__);
1023 free_irq(adapter->irq, netdev);
1032 struct net_device *netdev)
1035 struct ks8842_adapter *adapter = netdev_priv(netdev);
1037 netdev_dbg(netdev, "%s: entry\n", __func__);
1041 ret = ks8842_tx_frame_dma(skb, netdev);
1045 netif_stop_queue(netdev);
1050 ret = ks8842_tx_frame(skb, netdev);
1052 if (ks8842_tx_fifo_space(adapter) < netdev->mtu + 8)
1053 netif_stop_queue(netdev);
1058 static int ks8842_set_mac(struct net_device *netdev, void *p)
1060 struct ks8842_adapter *adapter = netdev_priv(netdev);
1064 netdev_dbg(netdev, "%s: entry\n", __func__);
1069 eth_hw_addr_set(netdev, mac);
1079 struct net_device *netdev = adapter->netdev;
1082 netdev_dbg(netdev, "%s: entry\n", __func__);
1093 netif_stop_queue(netdev);
1099 ks8842_write_mac_addr(adapter, netdev->dev_addr);
1101 ks8842_update_link_status(netdev, adapter);
1104 __ks8842_start_new_rx_dma(netdev);
1107 static void ks8842_tx_timeout(struct net_device *netdev, unsigned int txqueue)
1109 struct ks8842_adapter *adapter = netdev_priv(netdev);
1111 netdev_dbg(netdev, "%s: entry\n", __func__);
1133 struct net_device *netdev;
1147 netdev = alloc_etherdev(sizeof(struct ks8842_adapter));
1148 if (!netdev)
1151 SET_NETDEV_DEV(netdev, &pdev->dev);
1153 adapter = netdev_priv(netdev);
1154 adapter->netdev = netdev;
1184 netdev->netdev_ops = &ks8842_netdev_ops;
1185 netdev->ethtool_ops = &ks8842_ethtool_ops;
1188 i = netdev->addr_len;
1190 for (i = 0; i < netdev->addr_len; i++)
1194 if (i < netdev->addr_len)
1196 eth_hw_addr_set(netdev, pdata->macaddr);
1199 if (i == netdev->addr_len) {
1202 if (!is_valid_ether_addr(netdev->dev_addr))
1203 eth_hw_addr_random(netdev);
1208 strcpy(netdev->name, "eth%d");
1209 err = register_netdev(netdev);
1213 platform_set_drvdata(pdev, netdev);
1224 free_netdev(netdev);
1233 struct net_device *netdev = platform_get_drvdata(pdev);
1234 struct ks8842_adapter *adapter = netdev_priv(netdev);
1237 unregister_netdev(netdev);
1240 free_netdev(netdev);