Lines Matching refs:netdev
169 struct net_device *netdev; member
269 static void ks8842_update_link_status(struct net_device *netdev, in ks8842_update_link_status() argument
274 netif_carrier_on(netdev); in ks8842_update_link_status()
275 netif_wake_queue(netdev); in ks8842_update_link_status()
277 netif_stop_queue(netdev); in ks8842_update_link_status()
278 netif_carrier_off(netdev); in ks8842_update_link_status()
431 static int ks8842_tx_frame_dma(struct sk_buff *skb, struct net_device *netdev) in ks8842_tx_frame_dma() argument
433 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tx_frame_dma()
438 netdev_dbg(netdev, "%s: TX ongoing\n", __func__); in ks8842_tx_frame_dma()
466 ctl->adesc->callback_param = netdev; in ks8842_tx_frame_dma()
470 netdev->stats.tx_bytes += skb->len; in ks8842_tx_frame_dma()
477 static int ks8842_tx_frame(struct sk_buff *skb, struct net_device *netdev) in ks8842_tx_frame() argument
479 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tx_frame()
482 netdev_dbg(netdev, "%s: len %u head %p data %p tail %p end %p\n", in ks8842_tx_frame()
494 netdev->stats.tx_bytes += len; in ks8842_tx_frame()
510 netdev->stats.tx_bytes += len; in ks8842_tx_frame()
528 static void ks8842_update_rx_err_counters(struct net_device *netdev, u32 status) in ks8842_update_rx_err_counters() argument
530 netdev_dbg(netdev, "RX error, status: %x\n", status); in ks8842_update_rx_err_counters()
532 netdev->stats.rx_errors++; in ks8842_update_rx_err_counters()
534 netdev->stats.rx_length_errors++; in ks8842_update_rx_err_counters()
536 netdev->stats.rx_crc_errors++; in ks8842_update_rx_err_counters()
538 netdev->stats.rx_frame_errors++; in ks8842_update_rx_err_counters()
541 static void ks8842_update_rx_counters(struct net_device *netdev, u32 status, in ks8842_update_rx_counters() argument
544 netdev_dbg(netdev, "RX packet, len: %d\n", len); in ks8842_update_rx_counters()
546 netdev->stats.rx_packets++; in ks8842_update_rx_counters()
547 netdev->stats.rx_bytes += len; in ks8842_update_rx_counters()
549 netdev->stats.multicast++; in ks8842_update_rx_counters()
552 static int __ks8842_start_new_rx_dma(struct net_device *netdev) in __ks8842_start_new_rx_dma() argument
554 struct ks8842_adapter *adapter = netdev_priv(netdev); in __ks8842_start_new_rx_dma()
559 ctl->skb = netdev_alloc_skb(netdev, DMA_BUFFER_SIZE); in __ks8842_start_new_rx_dma()
578 ctl->adesc->callback_param = netdev; in __ks8842_start_new_rx_dma()
604 struct net_device *netdev = (struct net_device *)arg; in ks8842_rx_frame_dma_tasklet() local
605 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_rx_frame_dma_tasklet()
614 __ks8842_start_new_rx_dma(netdev); in ks8842_rx_frame_dma_tasklet()
621 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame_dma_tasklet()
628 ks8842_update_rx_counters(netdev, status, len); in ks8842_rx_frame_dma_tasklet()
634 skb->protocol = eth_type_trans(skb, netdev); in ks8842_rx_frame_dma_tasklet()
637 ks8842_update_rx_err_counters(netdev, status); in ks8842_rx_frame_dma_tasklet()
642 static void ks8842_rx_frame(struct net_device *netdev, in ks8842_rx_frame() argument
651 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame()
657 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame()
663 struct sk_buff *skb = netdev_alloc_skb_ip_align(netdev, len + 3); in ks8842_rx_frame()
667 ks8842_update_rx_counters(netdev, status, len); in ks8842_rx_frame()
689 skb->protocol = eth_type_trans(skb, netdev); in ks8842_rx_frame()
692 netdev->stats.rx_dropped++; in ks8842_rx_frame()
694 ks8842_update_rx_err_counters(netdev, status); in ks8842_rx_frame()
706 static void ks8842_handle_rx(struct net_device *netdev, in ks8842_handle_rx() argument
710 netdev_dbg(netdev, "%s Entry - rx_data: %d\n", __func__, rx_data); in ks8842_handle_rx()
712 ks8842_rx_frame(netdev, adapter); in ks8842_handle_rx()
717 static void ks8842_handle_tx(struct net_device *netdev, in ks8842_handle_tx() argument
721 netdev_dbg(netdev, "%s - entry, sr: %x\n", __func__, sr); in ks8842_handle_tx()
722 netdev->stats.tx_packets++; in ks8842_handle_tx()
723 if (netif_queue_stopped(netdev)) in ks8842_handle_tx()
724 netif_wake_queue(netdev); in ks8842_handle_tx()
727 static void ks8842_handle_rx_overrun(struct net_device *netdev, in ks8842_handle_rx_overrun() argument
730 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_handle_rx_overrun()
731 netdev->stats.rx_errors++; in ks8842_handle_rx_overrun()
732 netdev->stats.rx_fifo_errors++; in ks8842_handle_rx_overrun()
737 struct net_device *netdev = (struct net_device *)arg; in ks8842_tasklet() local
738 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tasklet()
749 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr); in ks8842_tasklet()
764 if (!netif_running(netdev)) in ks8842_tasklet()
768 ks8842_update_link_status(netdev, adapter); in ks8842_tasklet()
772 ks8842_handle_rx(netdev, adapter); in ks8842_tasklet()
776 ks8842_handle_tx(netdev, adapter); in ks8842_tasklet()
779 ks8842_handle_rx_overrun(netdev, adapter); in ks8842_tasklet()
809 struct net_device *netdev = devid; in ks8842_irq() local
810 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_irq()
816 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr); in ks8842_irq()
844 struct net_device *netdev = data; in ks8842_dma_rx_cb() local
845 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_dma_rx_cb()
847 netdev_dbg(netdev, "RX DMA finished\n"); in ks8842_dma_rx_cb()
855 struct net_device *netdev = data; in ks8842_dma_tx_cb() local
856 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_dma_tx_cb()
859 netdev_dbg(netdev, "TX DMA finished\n"); in ks8842_dma_tx_cb()
864 netdev->stats.tx_packets++; in ks8842_dma_tx_cb()
867 if (netif_queue_stopped(netdev)) in ks8842_dma_tx_cb()
868 netif_wake_queue(netdev); in ks8842_dma_tx_cb()
924 static int ks8842_alloc_dma_bufs(struct net_device *netdev) in ks8842_alloc_dma_bufs() argument
926 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_alloc_dma_bufs()
970 (unsigned long)netdev); in ks8842_alloc_dma_bufs()
980 static int ks8842_open(struct net_device *netdev) in ks8842_open() argument
982 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_open()
985 netdev_dbg(netdev, "%s - entry\n", __func__); in ks8842_open()
988 err = ks8842_alloc_dma_bufs(netdev); in ks8842_open()
992 err = __ks8842_start_new_rx_dma(netdev); in ks8842_open()
1009 ks8842_write_mac_addr(adapter, netdev->dev_addr); in ks8842_open()
1011 ks8842_update_link_status(netdev, adapter); in ks8842_open()
1014 netdev); in ks8842_open()
1023 static int ks8842_close(struct net_device *netdev) in ks8842_close() argument
1025 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_close()
1027 netdev_dbg(netdev, "%s - entry\n", __func__); in ks8842_close()
1035 free_irq(adapter->irq, netdev); in ks8842_close()
1044 struct net_device *netdev) in ks8842_xmit_frame() argument
1047 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_xmit_frame()
1049 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_xmit_frame()
1053 ret = ks8842_tx_frame_dma(skb, netdev); in ks8842_xmit_frame()
1057 netif_stop_queue(netdev); in ks8842_xmit_frame()
1062 ret = ks8842_tx_frame(skb, netdev); in ks8842_xmit_frame()
1064 if (ks8842_tx_fifo_space(adapter) < netdev->mtu + 8) in ks8842_xmit_frame()
1065 netif_stop_queue(netdev); in ks8842_xmit_frame()
1070 static int ks8842_set_mac(struct net_device *netdev, void *p) in ks8842_set_mac() argument
1072 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_set_mac()
1076 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_set_mac()
1081 memcpy(netdev->dev_addr, mac, netdev->addr_len); in ks8842_set_mac()
1091 struct net_device *netdev = adapter->netdev; in ks8842_tx_timeout_work() local
1094 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_tx_timeout_work()
1105 netif_stop_queue(netdev); in ks8842_tx_timeout_work()
1111 ks8842_write_mac_addr(adapter, netdev->dev_addr); in ks8842_tx_timeout_work()
1113 ks8842_update_link_status(netdev, adapter); in ks8842_tx_timeout_work()
1116 __ks8842_start_new_rx_dma(netdev); in ks8842_tx_timeout_work()
1119 static void ks8842_tx_timeout(struct net_device *netdev) in ks8842_tx_timeout() argument
1121 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tx_timeout()
1123 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_tx_timeout()
1145 struct net_device *netdev; in ks8842_probe() local
1155 netdev = alloc_etherdev(sizeof(struct ks8842_adapter)); in ks8842_probe()
1156 if (!netdev) in ks8842_probe()
1159 SET_NETDEV_DEV(netdev, &pdev->dev); in ks8842_probe()
1161 adapter = netdev_priv(netdev); in ks8842_probe()
1162 adapter->netdev = netdev; in ks8842_probe()
1189 tasklet_init(&adapter->tasklet, ks8842_tasklet, (unsigned long)netdev); in ks8842_probe()
1192 netdev->netdev_ops = &ks8842_netdev_ops; in ks8842_probe()
1193 netdev->ethtool_ops = &ks8842_ethtool_ops; in ks8842_probe()
1196 i = netdev->addr_len; in ks8842_probe()
1198 for (i = 0; i < netdev->addr_len; i++) in ks8842_probe()
1202 if (i < netdev->addr_len) in ks8842_probe()
1204 memcpy(netdev->dev_addr, pdata->macaddr, in ks8842_probe()
1205 netdev->addr_len); in ks8842_probe()
1208 if (i == netdev->addr_len) { in ks8842_probe()
1209 ks8842_read_mac_addr(adapter, netdev->dev_addr); in ks8842_probe()
1211 if (!is_valid_ether_addr(netdev->dev_addr)) in ks8842_probe()
1212 eth_hw_addr_random(netdev); in ks8842_probe()
1217 strcpy(netdev->name, "eth%d"); in ks8842_probe()
1218 err = register_netdev(netdev); in ks8842_probe()
1222 platform_set_drvdata(pdev, netdev); in ks8842_probe()
1233 free_netdev(netdev); in ks8842_probe()
1242 struct net_device *netdev = platform_get_drvdata(pdev); in ks8842_remove() local
1243 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_remove()
1246 unregister_netdev(netdev); in ks8842_remove()
1249 free_netdev(netdev); in ks8842_remove()