|
@@ -722,6 +722,20 @@ err:
|
|
|
return (-1);
|
|
|
} /* End of rt28xx_open */
|
|
|
|
|
|
+static const struct net_device_ops rt2860_netdev_ops = {
|
|
|
+ .ndo_open = MainVirtualIF_open,
|
|
|
+ .ndo_stop = MainVirtualIF_close,
|
|
|
+ .ndo_do_ioctl = rt28xx_ioctl,
|
|
|
+ .ndo_get_stats = RT28xx_get_ether_stats,
|
|
|
+ .ndo_validate_addr = NULL,
|
|
|
+ .ndo_set_mac_address = eth_mac_addr,
|
|
|
+ .ndo_change_mtu = eth_change_mtu,
|
|
|
+#ifdef IKANOS_VX_1X0
|
|
|
+ .ndo_start_xmit = IKANOS_DataFramesTx,
|
|
|
+#else
|
|
|
+ .ndo_start_xmit = rt28xx_send_packets,
|
|
|
+#endif
|
|
|
+};
|
|
|
|
|
|
/* Must not be called for mdev and apdev */
|
|
|
static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd)
|
|
@@ -733,11 +747,6 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
|
|
|
|
|
|
|
|
|
//ether_setup(dev);
|
|
|
- dev->hard_start_xmit = rt28xx_send_packets;
|
|
|
-
|
|
|
-#ifdef IKANOS_VX_1X0
|
|
|
- dev->hard_start_xmit = IKANOS_DataFramesTx;
|
|
|
-#endif // IKANOS_VX_1X0 //
|
|
|
|
|
|
#ifdef CONFIG_STA_SUPPORT
|
|
|
#if WIRELESS_EXT >= 12
|
|
@@ -760,12 +769,8 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
|
|
|
#if WIRELESS_EXT < 21
|
|
|
dev->get_wireless_stats = rt28xx_get_wireless_stats;
|
|
|
#endif
|
|
|
- dev->get_stats = RT28xx_get_ether_stats;
|
|
|
- dev->open = MainVirtualIF_open; //rt28xx_open;
|
|
|
- dev->stop = MainVirtualIF_close; //rt28xx_close;
|
|
|
dev->priv_flags = INT_MAIN;
|
|
|
- dev->do_ioctl = rt28xx_ioctl;
|
|
|
- dev->validate_addr = NULL;
|
|
|
+ dev->netdev_ops = &rt2860_netdev_ops;
|
|
|
// find available device name
|
|
|
for (i = 0; i < 8; i++)
|
|
|
{
|