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()
580 ctl->adesc->callback_param = netdev; in __ks8842_start_new_rx_dma()
606 struct net_device *netdev = (struct net_device *)arg; in ks8842_rx_frame_dma_tasklet() local
607 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_rx_frame_dma_tasklet()
616 __ks8842_start_new_rx_dma(netdev); in ks8842_rx_frame_dma_tasklet()
623 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame_dma_tasklet()
630 ks8842_update_rx_counters(netdev, status, len); in ks8842_rx_frame_dma_tasklet()
636 skb->protocol = eth_type_trans(skb, netdev); in ks8842_rx_frame_dma_tasklet()
639 ks8842_update_rx_err_counters(netdev, status); in ks8842_rx_frame_dma_tasklet()
644 static void ks8842_rx_frame(struct net_device *netdev, in ks8842_rx_frame() argument
653 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame()
659 netdev_dbg(netdev, "%s - rx_data: status: %x\n", in ks8842_rx_frame()
665 struct sk_buff *skb = netdev_alloc_skb_ip_align(netdev, len + 3); in ks8842_rx_frame()
669 ks8842_update_rx_counters(netdev, status, len); in ks8842_rx_frame()
691 skb->protocol = eth_type_trans(skb, netdev); in ks8842_rx_frame()
694 netdev->stats.rx_dropped++; in ks8842_rx_frame()
696 ks8842_update_rx_err_counters(netdev, status); in ks8842_rx_frame()
708 static void ks8842_handle_rx(struct net_device *netdev, in ks8842_handle_rx() argument
712 netdev_dbg(netdev, "%s Entry - rx_data: %d\n", __func__, rx_data); in ks8842_handle_rx()
714 ks8842_rx_frame(netdev, adapter); in ks8842_handle_rx()
719 static void ks8842_handle_tx(struct net_device *netdev, in ks8842_handle_tx() argument
723 netdev_dbg(netdev, "%s - entry, sr: %x\n", __func__, sr); in ks8842_handle_tx()
724 netdev->stats.tx_packets++; in ks8842_handle_tx()
725 if (netif_queue_stopped(netdev)) in ks8842_handle_tx()
726 netif_wake_queue(netdev); in ks8842_handle_tx()
729 static void ks8842_handle_rx_overrun(struct net_device *netdev, in ks8842_handle_rx_overrun() argument
732 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_handle_rx_overrun()
733 netdev->stats.rx_errors++; in ks8842_handle_rx_overrun()
734 netdev->stats.rx_fifo_errors++; in ks8842_handle_rx_overrun()
739 struct net_device *netdev = (struct net_device *)arg; in ks8842_tasklet() local
740 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tasklet()
751 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr); in ks8842_tasklet()
766 if (!netif_running(netdev)) in ks8842_tasklet()
770 ks8842_update_link_status(netdev, adapter); in ks8842_tasklet()
774 ks8842_handle_rx(netdev, adapter); in ks8842_tasklet()
778 ks8842_handle_tx(netdev, adapter); in ks8842_tasklet()
781 ks8842_handle_rx_overrun(netdev, adapter); in ks8842_tasklet()
811 struct net_device *netdev = devid; in ks8842_irq() local
812 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_irq()
818 netdev_dbg(netdev, "%s - ISR: 0x%x\n", __func__, isr); in ks8842_irq()
846 struct net_device *netdev = data; in ks8842_dma_rx_cb() local
847 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_dma_rx_cb()
849 netdev_dbg(netdev, "RX DMA finished\n"); in ks8842_dma_rx_cb()
857 struct net_device *netdev = data; in ks8842_dma_tx_cb() local
858 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_dma_tx_cb()
861 netdev_dbg(netdev, "TX DMA finished\n"); in ks8842_dma_tx_cb()
866 netdev->stats.tx_packets++; in ks8842_dma_tx_cb()
869 if (netif_queue_stopped(netdev)) in ks8842_dma_tx_cb()
870 netif_wake_queue(netdev); in ks8842_dma_tx_cb()
926 static int ks8842_alloc_dma_bufs(struct net_device *netdev) in ks8842_alloc_dma_bufs() argument
928 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_alloc_dma_bufs()
971 (unsigned long)netdev); in ks8842_alloc_dma_bufs()
981 static int ks8842_open(struct net_device *netdev) in ks8842_open() argument
983 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_open()
986 netdev_dbg(netdev, "%s - entry\n", __func__); in ks8842_open()
989 err = ks8842_alloc_dma_bufs(netdev); in ks8842_open()
993 err = __ks8842_start_new_rx_dma(netdev); in ks8842_open()
1010 ks8842_write_mac_addr(adapter, netdev->dev_addr); in ks8842_open()
1012 ks8842_update_link_status(netdev, adapter); in ks8842_open()
1015 netdev); in ks8842_open()
1024 static int ks8842_close(struct net_device *netdev) in ks8842_close() argument
1026 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_close()
1028 netdev_dbg(netdev, "%s - entry\n", __func__); in ks8842_close()
1036 free_irq(adapter->irq, netdev); in ks8842_close()
1045 struct net_device *netdev) in ks8842_xmit_frame() argument
1048 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_xmit_frame()
1050 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_xmit_frame()
1054 ret = ks8842_tx_frame_dma(skb, netdev); in ks8842_xmit_frame()
1058 netif_stop_queue(netdev); in ks8842_xmit_frame()
1063 ret = ks8842_tx_frame(skb, netdev); in ks8842_xmit_frame()
1065 if (ks8842_tx_fifo_space(adapter) < netdev->mtu + 8) in ks8842_xmit_frame()
1066 netif_stop_queue(netdev); in ks8842_xmit_frame()
1071 static int ks8842_set_mac(struct net_device *netdev, void *p) in ks8842_set_mac() argument
1073 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_set_mac()
1077 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_set_mac()
1082 memcpy(netdev->dev_addr, mac, netdev->addr_len); in ks8842_set_mac()
1092 struct net_device *netdev = adapter->netdev; in ks8842_tx_timeout_work() local
1095 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_tx_timeout_work()
1106 netif_stop_queue(netdev); in ks8842_tx_timeout_work()
1112 ks8842_write_mac_addr(adapter, netdev->dev_addr); in ks8842_tx_timeout_work()
1114 ks8842_update_link_status(netdev, adapter); in ks8842_tx_timeout_work()
1117 __ks8842_start_new_rx_dma(netdev); in ks8842_tx_timeout_work()
1120 static void ks8842_tx_timeout(struct net_device *netdev) in ks8842_tx_timeout() argument
1122 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_tx_timeout()
1124 netdev_dbg(netdev, "%s: entry\n", __func__); in ks8842_tx_timeout()
1146 struct net_device *netdev; in ks8842_probe() local
1156 netdev = alloc_etherdev(sizeof(struct ks8842_adapter)); in ks8842_probe()
1157 if (!netdev) in ks8842_probe()
1160 SET_NETDEV_DEV(netdev, &pdev->dev); in ks8842_probe()
1162 adapter = netdev_priv(netdev); in ks8842_probe()
1163 adapter->netdev = netdev; in ks8842_probe()
1190 tasklet_init(&adapter->tasklet, ks8842_tasklet, (unsigned long)netdev); in ks8842_probe()
1193 netdev->netdev_ops = &ks8842_netdev_ops; in ks8842_probe()
1194 netdev->ethtool_ops = &ks8842_ethtool_ops; in ks8842_probe()
1197 i = netdev->addr_len; in ks8842_probe()
1199 for (i = 0; i < netdev->addr_len; i++) in ks8842_probe()
1203 if (i < netdev->addr_len) in ks8842_probe()
1205 memcpy(netdev->dev_addr, pdata->macaddr, in ks8842_probe()
1206 netdev->addr_len); in ks8842_probe()
1209 if (i == netdev->addr_len) { in ks8842_probe()
1210 ks8842_read_mac_addr(adapter, netdev->dev_addr); in ks8842_probe()
1212 if (!is_valid_ether_addr(netdev->dev_addr)) in ks8842_probe()
1213 eth_hw_addr_random(netdev); in ks8842_probe()
1218 strcpy(netdev->name, "eth%d"); in ks8842_probe()
1219 err = register_netdev(netdev); in ks8842_probe()
1223 platform_set_drvdata(pdev, netdev); in ks8842_probe()
1234 free_netdev(netdev); in ks8842_probe()
1243 struct net_device *netdev = platform_get_drvdata(pdev); in ks8842_remove() local
1244 struct ks8842_adapter *adapter = netdev_priv(netdev); in ks8842_remove()
1247 unregister_netdev(netdev); in ks8842_remove()
1250 free_netdev(netdev); in ks8842_remove()