|
@@ -1774,6 +1774,20 @@ static int __devinit smc911x_findirq(struct net_device *dev)
|
|
|
return probe_irq_off(cookie);
|
|
|
}
|
|
|
|
|
|
+static const struct net_device_ops smc911x_netdev_ops = {
|
|
|
+ .ndo_open = smc911x_open,
|
|
|
+ .ndo_stop = smc911x_close,
|
|
|
+ .ndo_start_xmit = smc911x_hard_start_xmit,
|
|
|
+ .ndo_tx_timeout = smc911x_timeout,
|
|
|
+ .ndo_set_multicast_list = smc911x_set_multicast_list,
|
|
|
+ .ndo_change_mtu = eth_change_mtu,
|
|
|
+ .ndo_validate_addr = eth_validate_addr,
|
|
|
+ .ndo_set_mac_address = eth_mac_addr,
|
|
|
+#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
+ .ndo_poll_controller = smc911x_poll_controller,
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* Function: smc911x_probe(unsigned long ioaddr)
|
|
|
*
|
|
@@ -1940,16 +1954,9 @@ static int __devinit smc911x_probe(struct net_device *dev)
|
|
|
/* Fill in the fields of the device structure with ethernet values. */
|
|
|
ether_setup(dev);
|
|
|
|
|
|
- dev->open = smc911x_open;
|
|
|
- dev->stop = smc911x_close;
|
|
|
- dev->hard_start_xmit = smc911x_hard_start_xmit;
|
|
|
- dev->tx_timeout = smc911x_timeout;
|
|
|
+ dev->netdev_ops = &smc911x_netdev_ops;
|
|
|
dev->watchdog_timeo = msecs_to_jiffies(watchdog);
|
|
|
- dev->set_multicast_list = smc911x_set_multicast_list;
|
|
|
dev->ethtool_ops = &smc911x_ethtool_ops;
|
|
|
-#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
- dev->poll_controller = smc911x_poll_controller;
|
|
|
-#endif
|
|
|
|
|
|
INIT_WORK(&lp->phy_configure, smc911x_phy_configure);
|
|
|
lp->mii.phy_id_mask = 0x1f;
|