Lines Matching refs:ndev

488 static int enc28j60_set_hw_macaddr(struct net_device *ndev)  in enc28j60_set_hw_macaddr()  argument
491 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_set_hw_macaddr()
498 ndev->name, ndev->dev_addr); in enc28j60_set_hw_macaddr()
500 nolock_regb_write(priv, MAADR5, ndev->dev_addr[0]); in enc28j60_set_hw_macaddr()
501 nolock_regb_write(priv, MAADR4, ndev->dev_addr[1]); in enc28j60_set_hw_macaddr()
502 nolock_regb_write(priv, MAADR3, ndev->dev_addr[2]); in enc28j60_set_hw_macaddr()
503 nolock_regb_write(priv, MAADR2, ndev->dev_addr[3]); in enc28j60_set_hw_macaddr()
504 nolock_regb_write(priv, MAADR1, ndev->dev_addr[4]); in enc28j60_set_hw_macaddr()
505 nolock_regb_write(priv, MAADR0, ndev->dev_addr[5]); in enc28j60_set_hw_macaddr()
778 enc28j60_setlink(struct net_device *ndev, u8 autoneg, u16 speed, u8 duplex) in enc28j60_setlink() argument
780 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_setlink()
791 dev_warn(&ndev->dev, in enc28j60_setlink()
797 dev_warn(&ndev->dev, "Warning: hw must be disabled " in enc28j60_setlink()
899 static void enc28j60_hw_rx(struct net_device *ndev) in enc28j60_hw_rx() argument
901 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_hw_rx()
913 dev_err(&ndev->dev, in enc28j60_hw_rx()
925 ndev->stats.rx_errors++; in enc28j60_hw_rx()
948 dev_err(&ndev->dev, "Rx Error (%04x)\n", rxstat); in enc28j60_hw_rx()
949 ndev->stats.rx_errors++; in enc28j60_hw_rx()
951 ndev->stats.rx_crc_errors++; in enc28j60_hw_rx()
953 ndev->stats.rx_frame_errors++; in enc28j60_hw_rx()
955 ndev->stats.rx_over_errors++; in enc28j60_hw_rx()
957 skb = netdev_alloc_skb(ndev, len + NET_IP_ALIGN); in enc28j60_hw_rx()
960 dev_err(&ndev->dev, in enc28j60_hw_rx()
962 ndev->stats.rx_dropped++; in enc28j60_hw_rx()
971 skb->protocol = eth_type_trans(skb, ndev); in enc28j60_hw_rx()
973 ndev->stats.rx_packets++; in enc28j60_hw_rx()
974 ndev->stats.rx_bytes += len; in enc28j60_hw_rx()
1041 static void enc28j60_check_link_status(struct net_device *ndev) in enc28j60_check_link_status() argument
1043 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_check_link_status()
1055 netif_carrier_on(ndev); in enc28j60_check_link_status()
1057 dev_info(&ndev->dev, "link up - %s\n", in enc28j60_check_link_status()
1061 dev_info(&ndev->dev, "link down\n"); in enc28j60_check_link_status()
1062 netif_carrier_off(ndev); in enc28j60_check_link_status()
1066 static void enc28j60_tx_clear(struct net_device *ndev, bool err) in enc28j60_tx_clear() argument
1068 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_tx_clear()
1071 ndev->stats.tx_errors++; in enc28j60_tx_clear()
1073 ndev->stats.tx_packets++; in enc28j60_tx_clear()
1077 ndev->stats.tx_bytes += priv->tx_skb->len; in enc28j60_tx_clear()
1082 netif_wake_queue(ndev); in enc28j60_tx_clear()
1093 static int enc28j60_rx_interrupt(struct net_device *ndev) in enc28j60_rx_interrupt() argument
1095 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_rx_interrupt()
1110 enc28j60_hw_rx(ndev); in enc28j60_rx_interrupt()
1119 struct net_device *ndev = priv->netdev; in enc28j60_irq_work_handler() local
1144 enc28j60_check_link_status(ndev); in enc28j60_irq_work_handler()
1158 dev_err(&ndev->dev, in enc28j60_irq_work_handler()
1167 enc28j60_tx_clear(ndev, err); in enc28j60_irq_work_handler()
1198 enc28j60_tx_clear(ndev, true); in enc28j60_irq_work_handler()
1200 enc28j60_tx_clear(ndev, true); in enc28j60_irq_work_handler()
1214 ndev->stats.rx_dropped++; in enc28j60_irq_work_handler()
1219 if (enc28j60_rx_interrupt(ndev)) in enc28j60_irq_work_handler()
1327 static void enc28j60_tx_timeout(struct net_device *ndev) in enc28j60_tx_timeout() argument
1329 struct enc28j60_net *priv = netdev_priv(ndev); in enc28j60_tx_timeout()
1332 dev_err(&ndev->dev, DRV_NAME " tx timeout\n"); in enc28j60_tx_timeout()
1334 ndev->stats.tx_errors++; in enc28j60_tx_timeout()
1455 struct net_device *ndev = priv->netdev; in enc28j60_restart_work_handler() local
1459 if (netif_running(ndev)) { in enc28j60_restart_work_handler()
1460 enc28j60_net_close(ndev); in enc28j60_restart_work_handler()
1461 ret = enc28j60_net_open(ndev); in enc28j60_restart_work_handler()
1463 dev_info(&ndev->dev, " could not restart %d\n", ret); in enc28j60_restart_work_handler()
1464 dev_close(ndev); in enc28j60_restart_work_handler()