zd1211rw-d80211: Fix compilation for d80211 hwmode API change From: Michael Wu This fixes compilation for the d80211 hwmode API change. Based on a patch by Michael Buesch . Signed-off-by: Michael Wu --- drivers/net/wireless/d80211/zd1211rw/zd_mac.c | 12 +++++++++--- drivers/net/wireless/d80211/zd1211rw/zd_mac.h | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/d80211/zd1211rw/zd_mac.c b/drivers/net/wireless/d80211/zd1211rw/zd_mac.c index 6ee650f..35c90fb 100644 --- a/drivers/net/wireless/d80211/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/d80211/zd1211rw/zd_mac.c @@ -574,6 +574,7 @@ struct ieee80211_hw *zd_mac_alloc(struct { struct zd_mac *mac; struct ieee80211_hw *dev; + int i; dev = ieee80211_alloc_hw(sizeof(struct zd_mac), &zd_ops); if (!dev) { @@ -608,12 +609,17 @@ struct ieee80211_hw *zd_mac_alloc(struct IEEE80211_HW_WEP_INCLUDE_IV; dev->maxssi = 100; - dev->num_modes = 2; - dev->modes = mac->modes; - dev->queues = 1; dev->extra_tx_headroom = sizeof(struct zd_ctrlset); + for (i = 0; i < 2; i++) { + if (ieee80211_register_hwmode(dev, &mac->modes[i])) { + dev_dbg_f(&intf->dev, "cannot register hwmode\n"); + ieee80211_free_hw(dev); + return NULL; + } + } + skb_queue_head_init(&mac->tx_queue); zd_chip_init(&mac->chip, dev, intf); housekeeping_init(mac); diff --git a/drivers/net/wireless/d80211/zd1211rw/zd_mac.h b/drivers/net/wireless/d80211/zd1211rw/zd_mac.h index e2ba410..492f7f5 100644 --- a/drivers/net/wireless/d80211/zd1211rw/zd_mac.h +++ b/drivers/net/wireless/d80211/zd1211rw/zd_mac.h @@ -138,7 +138,7 @@ struct zd_mac { struct sk_buff_head tx_queue; struct ieee80211_channel channels[14]; struct ieee80211_rate rates[12]; - struct ieee80211_hw_modes modes[2]; + struct ieee80211_hw_mode modes[2]; }; static inline struct zd_mac *zd_dev_mac(struct ieee80211_hw *dev)