Lines Matching refs:netdev
173 struct net_device *netdev; in ifec_pci_probe() local
182 netdev = alloc_etherdev ( sizeof(*priv) ); in ifec_pci_probe()
183 if ( !netdev ) in ifec_pci_probe()
186 netdev_init ( netdev, &ifec_operations ); in ifec_pci_probe()
187 priv = netdev->priv; in ifec_pci_probe()
189 pci_set_drvdata ( pci, netdev ); in ifec_pci_probe()
190 netdev->dev = &pci->dev; in ifec_pci_probe()
200 ifec_reset ( netdev ); in ifec_pci_probe()
203 ifec_init_eeprom ( netdev ); in ifec_pci_probe()
206 nvs_read ( &priv->eeprom.nvs, EEPROM_ADDR_MAC_0, netdev->hw_addr, in ifec_pci_probe()
212 ifec_link_update ( netdev ); /* Update link state */ in ifec_pci_probe()
214 if ( ( rc = register_netdev ( netdev ) ) != 0 ) in ifec_pci_probe()
222 ifec_reset ( netdev ); in ifec_pci_probe()
223 netdev_nullify ( netdev ); in ifec_pci_probe()
224 netdev_put ( netdev ); in ifec_pci_probe()
238 struct net_device *netdev = pci_get_drvdata ( pci ); in ifec_pci_remove() local
242 unregister_netdev ( netdev ); in ifec_pci_remove()
243 ifec_reset ( netdev ); in ifec_pci_remove()
244 netdev_nullify ( netdev ); in ifec_pci_remove()
245 netdev_put ( netdev ); in ifec_pci_remove()
257 static void ifec_net_close ( struct net_device *netdev ) in ifec_net_close() argument
259 struct ifec_private *priv = netdev->priv; in ifec_net_close()
266 ifec_net_irq ( netdev, 0 ); in ifec_net_close()
273 ifec_reset ( netdev ); in ifec_net_close()
276 ifec_free ( netdev ); in ifec_net_close()
290 static void ifec_net_irq ( struct net_device *netdev, int enable ) in ifec_net_irq() argument
292 struct ifec_private *priv = netdev->priv; in ifec_net_irq()
309 static int ifec_net_open ( struct net_device *netdev ) in ifec_net_open() argument
311 struct ifec_private *priv = netdev->priv; in ifec_net_open()
320 ifec_net_irq ( netdev, 0 ); in ifec_net_open()
323 ifec_scb_cmd ( netdev, 0, RUAddrLoad ); in ifec_net_open()
324 ifec_scb_cmd ( netdev, virt_to_bus ( &priv->stats ), CUStatsAddr ); in ifec_net_open()
325 ifec_scb_cmd ( netdev, 0, CUCmdBase ); in ifec_net_open()
328 if ( ( rc = ifec_rx_setup ( netdev ) ) != 0 ) in ifec_net_open()
330 if ( ( rc = ifec_tx_setup ( netdev ) ) != 0 ) in ifec_net_open()
335 ifec_mdio_setup ( netdev, options ); in ifec_net_open()
345 memcpy ( ias->ia, netdev->ll_addr, ETH_ALEN ); in ifec_net_open()
359 ifec_scb_cmd ( netdev, virt_to_bus ( ias ), CUStart ); in ifec_net_open()
360 ifec_scb_cmd_wait ( netdev ); in ifec_net_open()
376 ifec_scb_cmd ( netdev, virt_to_bus( priv->rfds[0] ), RUStart ); in ifec_net_open()
377 ifec_scb_cmd_wait ( netdev ); in ifec_net_open()
386 ifec_free ( netdev ); in ifec_net_open()
387 ifec_reset ( netdev ); in ifec_net_open()
400 static void ifec_net_poll ( struct net_device *netdev ) in ifec_net_poll() argument
402 struct ifec_private *priv = netdev->priv; in ifec_net_poll()
417 ifec_link_update ( netdev ); /* Update link state */ in ifec_net_poll()
425 ifec_tx_process ( netdev ); in ifec_net_poll()
426 ifec_rx_process ( netdev ); in ifec_net_poll()
428 ifec_check_ru_status ( netdev, intr_status ); in ifec_net_poll()
442 static int ifec_net_transmit ( struct net_device *netdev, in ifec_net_transmit() argument
445 struct ifec_private *priv = netdev->priv; in ifec_net_transmit()
466 ifec_tx_wake ( netdev ); in ifec_net_transmit()
546 static void ifec_init_eeprom ( struct net_device *netdev ) in ifec_init_eeprom() argument
548 struct ifec_private *priv = netdev->priv; in ifec_init_eeprom()
577 static int ifec_link_check ( struct net_device *netdev ) in ifec_link_check() argument
579 struct ifec_private *priv = netdev->priv; in ifec_link_check()
585 ifec_mdio_read ( netdev, mdio_register & 0x1f, 1 ); in ifec_link_check()
587 if ( ! ( ifec_mdio_read ( netdev, mdio_register & 0x1f, 1 ) in ifec_link_check()
599 static void ifec_link_update ( struct net_device *netdev ) in ifec_link_update() argument
604 if ( ifec_link_check ( netdev ) ) in ifec_link_update()
605 netdev_link_up ( netdev ); in ifec_link_update()
607 netdev_link_down ( netdev ); in ifec_link_update()
616 static int ifec_mdio_read ( struct net_device *netdev, int phy_id, in ifec_mdio_read() argument
619 struct ifec_private *priv = netdev->priv; in ifec_mdio_read()
648 static void ifec_mdio_setup ( struct net_device *netdev, int options ) in ifec_mdio_setup() argument
650 struct ifec_private *priv = netdev->priv; in ifec_mdio_setup()
657 int mdi_reg23 = ifec_mdio_read ( netdev, mdio_register in ifec_mdio_setup()
663 ifec_mdio_write ( netdev, mdio_register & 0x1f, 23, mdi_reg23 ); in ifec_mdio_setup()
667 ifec_mdio_write ( netdev, mdio_register & 0x1f, 0, in ifec_mdio_setup()
680 static int ifec_mdio_write ( struct net_device *netdev, in ifec_mdio_write() argument
683 struct ifec_private *priv = netdev->priv; in ifec_mdio_write()
710 static void ifec_reset ( struct net_device *netdev ) in ifec_reset() argument
712 struct ifec_private *priv = netdev->priv; in ifec_reset()
728 ifec_net_irq ( netdev, 0 ); in ifec_reset()
736 static void ifec_free ( struct net_device *netdev ) in ifec_free() argument
738 struct ifec_private *priv = netdev_priv ( netdev ); in ifec_free()
780 static void ifec_reprime_ru ( struct net_device *netdev ) in ifec_reprime_ru() argument
782 struct ifec_private *priv = netdev->priv; in ifec_reprime_ru()
788 ifec_scb_cmd ( netdev, virt_to_bus ( priv->rfds[cur_rx] ), in ifec_reprime_ru()
790 ifec_scb_cmd_wait ( netdev ); in ifec_reprime_ru()
799 static void ifec_check_ru_status ( struct net_device *netdev, in ifec_check_ru_status() argument
802 struct ifec_private *priv = netdev->priv; in ifec_check_ru_status()
820 ifec_reprime_ru ( netdev ); in ifec_check_ru_status()
838 static void ifec_rx_process ( struct net_device *netdev ) in ifec_rx_process() argument
840 struct ifec_private *priv = netdev->priv; in ifec_rx_process()
860 netdev_rx_err ( netdev, iob, -EINVAL ); in ifec_rx_process()
865 netdev_rx ( netdev, iob ); in ifec_rx_process()
879 ifec_refill_rx_ring ( netdev ); in ifec_rx_process()
892 static int ifec_get_rx_desc ( struct net_device *netdev, int cur, int cmd, in ifec_get_rx_desc() argument
895 struct ifec_private *priv = netdev->priv; in ifec_get_rx_desc()
920 static void ifec_refill_rx_ring ( struct net_device *netdev ) in ifec_refill_rx_ring() argument
922 struct ifec_private *priv = netdev->priv; in ifec_refill_rx_ring()
937 if ( ifec_get_rx_desc ( netdev, cur_rx, in ifec_refill_rx_ring()
951 ifec_check_ru_status ( netdev, intr_status ); in ifec_refill_rx_ring()
960 static int ifec_rx_setup ( struct net_device *netdev ) in ifec_rx_setup() argument
962 struct ifec_private *priv = netdev->priv; in ifec_rx_setup()
974 ifec_refill_rx_ring ( netdev ); in ifec_rx_setup()
987 static int ifec_scb_cmd ( struct net_device *netdev, u32 ptr, u8 cmd ) in ifec_scb_cmd() argument
989 struct ifec_private *priv = netdev->priv; in ifec_scb_cmd()
995 rc = ifec_scb_cmd_wait ( netdev ); /* Wait until ready */ in ifec_scb_cmd()
1009 static int ifec_scb_cmd_wait ( struct net_device *netdev ) in ifec_scb_cmd_wait() argument
1011 struct ifec_private *priv = netdev->priv; in ifec_scb_cmd_wait()
1030 static void ifec_tx_process ( struct net_device *netdev ) in ifec_tx_process() argument
1032 struct ifec_private *priv = netdev->priv; in ifec_tx_process()
1043 netdev_tx_complete_err ( netdev, tcb->iob, -EINVAL ); in ifec_tx_process()
1046 netdev_tx_complete ( netdev, tcb->iob ); in ifec_tx_process()
1064 static int ifec_tx_setup ( struct net_device *netdev ) in ifec_tx_setup() argument
1066 struct ifec_private *priv = netdev->priv; in ifec_tx_setup()
1117 void ifec_tx_wake ( struct net_device *netdev ) in ifec_tx_wake() argument
1119 struct ifec_private *priv = netdev->priv; in ifec_tx_wake()
1129 ifec_scb_cmd ( netdev, virt_to_bus ( tcb ), CUStart ); in ifec_tx_wake()
1130 ifec_scb_cmd_wait ( netdev ); in ifec_tx_wake()
1138 ifec_scb_cmd ( netdev, virt_to_bus ( tcb ), CUStart ); in ifec_tx_wake()
1139 ifec_scb_cmd_wait ( netdev ); in ifec_tx_wake()
1147 ifec_scb_cmd_wait ( netdev ); in ifec_tx_wake()
1152 ifec_scb_cmd_wait ( netdev ); in ifec_tx_wake()