|
@@ -1813,6 +1813,25 @@ static void __devinit amd8111e_probe_ext_phy(struct net_device* dev)
|
|
lp->ext_phy_addr = 1;
|
|
lp->ext_phy_addr = 1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static const struct net_device_ops amd8111e_netdev_ops = {
|
|
|
|
+ .ndo_open = amd8111e_open,
|
|
|
|
+ .ndo_stop = amd8111e_close,
|
|
|
|
+ .ndo_start_xmit = amd8111e_start_xmit,
|
|
|
|
+ .ndo_tx_timeout = amd8111e_tx_timeout,
|
|
|
|
+ .ndo_get_stats = amd8111e_get_stats,
|
|
|
|
+ .ndo_set_multicast_list = amd8111e_set_multicast_list,
|
|
|
|
+ .ndo_validate_addr = eth_validate_addr,
|
|
|
|
+ .ndo_set_mac_address = amd8111e_set_mac_address,
|
|
|
|
+ .ndo_do_ioctl = amd8111e_ioctl,
|
|
|
|
+ .ndo_change_mtu = amd8111e_change_mtu,
|
|
|
|
+#if AMD8111E_VLAN_TAG_USED
|
|
|
|
+ .ndo_vlan_rx_register = amd8111e_vlan_rx_register,
|
|
|
|
+#endif
|
|
|
|
+#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
|
+ .ndo_poll_controller = amd8111e_poll,
|
|
|
|
+#endif
|
|
|
|
+};
|
|
|
|
+
|
|
static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
|
|
static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
|
|
const struct pci_device_id *ent)
|
|
const struct pci_device_id *ent)
|
|
{
|
|
{
|
|
@@ -1872,7 +1891,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
|
|
|
|
|
|
#if AMD8111E_VLAN_TAG_USED
|
|
#if AMD8111E_VLAN_TAG_USED
|
|
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
|
|
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
|
|
- dev->vlan_rx_register =amd8111e_vlan_rx_register;
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
lp = netdev_priv(dev);
|
|
lp = netdev_priv(dev);
|
|
@@ -1901,27 +1919,16 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
|
|
if(dynamic_ipg[card_idx++])
|
|
if(dynamic_ipg[card_idx++])
|
|
lp->options |= OPTION_DYN_IPG_ENABLE;
|
|
lp->options |= OPTION_DYN_IPG_ENABLE;
|
|
|
|
|
|
|
|
+
|
|
/* Initialize driver entry points */
|
|
/* Initialize driver entry points */
|
|
- dev->open = amd8111e_open;
|
|
|
|
- dev->hard_start_xmit = amd8111e_start_xmit;
|
|
|
|
- dev->stop = amd8111e_close;
|
|
|
|
- dev->get_stats = amd8111e_get_stats;
|
|
|
|
- dev->set_multicast_list = amd8111e_set_multicast_list;
|
|
|
|
- dev->set_mac_address = amd8111e_set_mac_address;
|
|
|
|
- dev->do_ioctl = amd8111e_ioctl;
|
|
|
|
- dev->change_mtu = amd8111e_change_mtu;
|
|
|
|
|
|
+ dev->netdev_ops = &amd8111e_netdev_ops;
|
|
SET_ETHTOOL_OPS(dev, &ops);
|
|
SET_ETHTOOL_OPS(dev, &ops);
|
|
dev->irq =pdev->irq;
|
|
dev->irq =pdev->irq;
|
|
- dev->tx_timeout = amd8111e_tx_timeout;
|
|
|
|
dev->watchdog_timeo = AMD8111E_TX_TIMEOUT;
|
|
dev->watchdog_timeo = AMD8111E_TX_TIMEOUT;
|
|
netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32);
|
|
netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32);
|
|
-#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
|
- dev->poll_controller = amd8111e_poll;
|
|
|
|
-#endif
|
|
|
|
|
|
|
|
#if AMD8111E_VLAN_TAG_USED
|
|
#if AMD8111E_VLAN_TAG_USED
|
|
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
|
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
|
- dev->vlan_rx_register =amd8111e_vlan_rx_register;
|
|
|
|
#endif
|
|
#endif
|
|
/* Probe the external PHY */
|
|
/* Probe the external PHY */
|
|
amd8111e_probe_ext_phy(dev);
|
|
amd8111e_probe_ext_phy(dev);
|