- zd_chip_control_leds(&mac->chip, LED_OFF);
+ zd_chip_control_leds(&mac->chip, LED_OFF_ZD);
}
---- a/net/mac80211/main.c 2009-01-23 12:56:18.000000000 -0800
-+++ b/net/mac80211/main.c 2009-01-23 12:56:24.000000000 -0800
-@@ -485,6 +485,7 @@
- return;
- }
-
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28))
- if (!test_sta_flags(sta, WLAN_STA_PS) && !skb->requeue) {
- /* Software retry the packet once */
- skb->requeue = 1;
-@@ -492,6 +493,7 @@
- dev_queue_xmit(skb);
- return;
- }
-+#endif
-
- #ifdef CONFIG_MAC80211_VERBOSE_DEBUG
- if (net_ratelimit())
---- a/net/mac80211/rx.c 2009-01-15 16:35:33.000000000 -0800
-+++ b/net/mac80211/rx.c 2009-01-15 16:35:33.000000000 -0800
-@@ -780,12 +780,17 @@
+--- a/net/mac80211/rx.c 2009-02-04 00:21:05.000000000 -0800
++++ b/net/mac80211/rx.c 2009-02-04 00:20:41.000000000 -0800
+@@ -771,12 +771,17 @@
/* Send all buffered frames to the station */
while ((skb = skb_dequeue(&sta->tx_filtered)) != NULL) {
sent++;
#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG
printk(KERN_DEBUG "%s: STA %pM aid %d send PS frame "
-@@ -794,6 +799,9 @@
+@@ -785,6 +790,9 @@
#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
skb->requeue = 1;
dev_queue_xmit(skb);
dev->irq = sdev->irq;
SET_ETHTOOL_OPS(dev, &b44_ethtool_ops);
+--- a/net/mac80211/iface.c 2009-02-04 00:14:56.000000000 -0800
++++ b/net/mac80211/iface.c 2009-02-04 00:19:28.000000000 -0800
+@@ -658,6 +658,7 @@
+ WARN_ON(flushed);
+ }
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ static const struct net_device_ops ieee80211_dataif_ops = {
+ .ndo_open = ieee80211_open,
+ .ndo_stop = ieee80211_stop,
+@@ -677,11 +678,22 @@
+ .ndo_change_mtu = ieee80211_change_mtu,
+ .ndo_set_mac_address = eth_mac_addr,
+ };
++#endif
+
+ static void ieee80211_if_setup(struct net_device *dev)
+ {
+ ether_setup(dev);
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ dev->netdev_ops = &ieee80211_dataif_ops;
++#else
++ dev->hard_start_xmit = ieee80211_subif_start_xmit;
++ dev->set_multicast_list = ieee80211_set_multicast_list;
++ dev->change_mtu = ieee80211_change_mtu;
++ dev->open = ieee80211_open;
++ dev->stop = ieee80211_stop;
++ /* we will validate the address ourselves in ->open */
++ dev->validate_addr = NULL;
++#endif
+ dev->wireless_handlers = &ieee80211_iw_handler_def;
+ dev->destructor = free_netdev;
+ }
+@@ -697,7 +709,11 @@
+
+ /* and set some type-dependent values */
+ sdata->vif.type = type;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ sdata->dev->netdev_ops = &ieee80211_dataif_ops;
++#else
++ sdata->dev->hard_start_xmit = ieee80211_subif_start_xmit;
++#endif
+ sdata->wdev.iftype = type;
+
+ /* only monitor differs */
+@@ -718,7 +734,11 @@
+ break;
+ case NL80211_IFTYPE_MONITOR:
+ sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ sdata->dev->netdev_ops = &ieee80211_monitorif_ops;
++#else
++ sdata->dev->hard_start_xmit = ieee80211_monitor_start_xmit;
++#endif
+ sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
+ MONITOR_FLAG_OTHER_BSS;
+ break;
+@@ -824,6 +844,10 @@
+ if (ret)
+ goto fail;
+
++#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,28))
++ ndev->uninit = ieee80211_teardown_sdata;
++#endif
++
+ if (ieee80211_vif_is_mesh(&sdata->vif) &&
+ params && params->mesh_id_len)
+ ieee80211_sdata_set_mesh_id(sdata,
+--- a/net/mac80211/main.c 2009-02-04 00:10:33.000000000 -0800
++++ b/net/mac80211/main.c 2009-02-04 00:07:50.000000000 -0800
+@@ -485,6 +485,7 @@
+ return;
+ }
+
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28))
+ if (!test_sta_flags(sta, WLAN_STA_PS) && !skb->requeue) {
+ /* Software retry the packet once */
+ skb->requeue = 1;
+@@ -492,6 +493,7 @@
+ dev_queue_xmit(skb);
+ return;
+ }
++#endif
+
+ #ifdef CONFIG_MAC80211_VERBOSE_DEBUG
+ if (net_ratelimit())
+@@ -791,6 +793,7 @@
+ }
+ EXPORT_SYMBOL(ieee80211_alloc_hw);
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ static const struct net_device_ops ieee80211_master_ops = {
+ .ndo_start_xmit = ieee80211_master_start_xmit,
+ .ndo_open = ieee80211_master_open,
+@@ -798,12 +801,22 @@
+ .ndo_set_multicast_list = ieee80211_master_set_multicast_list,
+ .ndo_select_queue = ieee80211_select_queue,
+ };
++#endif
+
+ static void ieee80211_master_setup(struct net_device *mdev)
+ {
+ mdev->type = ARPHRD_IEEE80211;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ mdev->netdev_ops = &ieee80211_master_ops;
+ mdev->header_ops = &ieee80211_header_ops;
++#else
++ mdev->hard_start_xmit = ieee80211_master_start_xmit;
++ mdev->open = ieee80211_master_open;
++ mdev->stop = ieee80211_master_stop;
++ mdev->header_ops = &ieee80211_header_ops;
++ mdev->set_multicast_list = ieee80211_master_set_multicast_list;
++ mdev->select_queue = ieee80211_select_queue;
++#endif
+ mdev->tx_queue_len = 1000;
+ mdev->addr_len = ETH_ALEN;
+ }