Home | History | Annotate | Download | only in net

Lines Matching defs:netdev

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