p54: 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/p54/prism54.h | 2 +- drivers/net/wireless/d80211/p54/prism54common.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/d80211/p54/prism54.h b/drivers/net/wireless/d80211/p54/prism54.h index 5e4f331..de8197e 100644 --- a/drivers/net/wireless/d80211/p54/prism54.h +++ b/drivers/net/wireless/d80211/p54/prism54.h @@ -63,7 +63,7 @@ struct p54_common { /* FIXME: this channels/modes/rates stuff sucks */ struct ieee80211_channel channels[14]; struct ieee80211_rate rates[12]; - struct ieee80211_hw_modes modes[2]; + struct ieee80211_hw_mode modes[2]; }; int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb); diff --git a/drivers/net/wireless/d80211/p54/prism54common.c b/drivers/net/wireless/d80211/p54/prism54common.c index 185cd53..2e19bf4 100644 --- a/drivers/net/wireless/d80211/p54/prism54common.c +++ b/drivers/net/wireless/d80211/p54/prism54common.c @@ -745,6 +745,7 @@ struct ieee80211_hw *p54_init_common(siz { struct ieee80211_hw *dev; struct p54_common *priv; + int i; dev = ieee80211_alloc_hw(priv_data_len, &p54_ops); if (!dev) @@ -774,13 +775,17 @@ struct ieee80211_hw *p54_init_common(siz dev->channel_change_time = 1000; /* TODO: find actual value */ dev->maxssi = 100; // just to avoid dividing by zero - dev->num_modes = 2; - dev->modes = priv->modes; - dev->queues = 1; dev->extra_tx_headroom = sizeof(struct p54_control_hdr) + 4 + sizeof(struct p54_tx_control_allocdata); + for (i = 0; i < 2; i++) { + if (ieee80211_register_hwmode(dev, &priv->modes[i])) { + ieee80211_free_hw(dev); + return NULL; + } + } + return dev; } EXPORT_SYMBOL_GPL(p54_init_common);