These attached patches are a simplified version of Michael Buesch's original hwmode API patches to adm8211, p54, and zd1211rw-d80211. These will be necessary once you pull up2 from Jiri Benc's tree.
Thanks, -Michael Wu
adm8211: Fix compilation for d80211 hwmode API change From: Michael Wu <[EMAIL PROTECTED]> This fixes compilation for the d80211 hwmode API change. Based on a patch by Michael Buesch <[EMAIL PROTECTED]>. Signed-off-by: Michael Wu <[EMAIL PROTECTED]> --- drivers/net/wireless/d80211/adm8211/adm8211.c | 8 ++++++-- drivers/net/wireless/d80211/adm8211/adm8211.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/d80211/adm8211/adm8211.c b/drivers/net/wireless/d80211/adm8211/adm8211.c index d7fb484..3bdcec3 100644 --- a/drivers/net/wireless/d80211/adm8211/adm8211.c +++ b/drivers/net/wireless/d80211/adm8211/adm8211.c @@ -2035,8 +2035,6 @@ static int __devinit adm8211_probe(struc dev->channel_change_time = 1000; dev->maxssi = ADM8211_RX_MAX_SSI;// FIXME - This is an approximation - dev->num_modes = 1; - dev->modes = priv->modes; priv->modes[0].mode = MODE_IEEE80211B; /* channel info filled in by adm8211_read_eeprom */ memcpy(priv->rates, adm8211_rates, sizeof(adm8211_rates)); @@ -2069,6 +2067,12 @@ static int __devinit adm8211_probe(struc priv->channel = priv->modes[0].channels[0].chan; + err = ieee80211_register_hwmode(dev, &priv->modes[0]); + if (err) { + printk(KERN_ERR "%s (adm8211): Cannot register hwmode\n", pci_name(pdev)); + goto err_free_desc; + } + err = ieee80211_register_hw(dev); if (err) { printk(KERN_ERR "%s (adm8211): Cannot register hardware\n", pci_name(pdev)); diff --git a/drivers/net/wireless/d80211/adm8211/adm8211.h b/drivers/net/wireless/d80211/adm8211/adm8211.h index 06c54bc..dc7902f 100644 --- a/drivers/net/wireless/d80211/adm8211/adm8211.h +++ b/drivers/net/wireless/d80211/adm8211/adm8211.h @@ -532,7 +532,7 @@ struct adm8211_priv { unsigned cur_tx, dirty_tx, cur_rx; struct ieee80211_low_level_stats stats; - struct ieee80211_hw_modes modes[1]; + struct ieee80211_hw_mode modes[1]; struct ieee80211_rate rates[ARRAY_SIZE(adm8211_rates)]; int mode;
p54: Fix compilation for d80211 hwmode API change From: Michael Wu <[EMAIL PROTECTED]> This fixes compilation for the d80211 hwmode API change. Based on a patch by Michael Buesch <[EMAIL PROTECTED]>. Signed-off-by: Michael Wu <[EMAIL PROTECTED]> --- 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);
zd1211rw-d80211: Fix compilation for d80211 hwmode API change From: Michael Wu <[EMAIL PROTECTED]> This fixes compilation for the d80211 hwmode API change. Based on a patch by Michael Buesch <[EMAIL PROTECTED]>. Signed-off-by: Michael Wu <[EMAIL PROTECTED]> --- 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)
pgpwUmaU5TlaV.pgp
Description: PGP signature