aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43legacy/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/b43legacy/main.c')
-rw-r--r--drivers/net/wireless/b43legacy/main.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c
index ab6a18c2e9d9..174ac6bde2b1 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -61,6 +61,8 @@ MODULE_AUTHOR("Michael Buesch");
61MODULE_LICENSE("GPL"); 61MODULE_LICENSE("GPL");
62 62
63MODULE_FIRMWARE(B43legacy_SUPPORTED_FIRMWARE_ID); 63MODULE_FIRMWARE(B43legacy_SUPPORTED_FIRMWARE_ID);
64MODULE_FIRMWARE("b43legacy/ucode2.fw");
65MODULE_FIRMWARE("b43legacy/ucode4.fw");
64 66
65#if defined(CONFIG_B43LEGACY_DMA) && defined(CONFIG_B43LEGACY_PIO) 67#if defined(CONFIG_B43LEGACY_DMA) && defined(CONFIG_B43LEGACY_PIO)
66static int modparam_pio; 68static int modparam_pio;
@@ -3361,7 +3363,7 @@ err_kfree_lo_control:
3361} 3363}
3362 3364
3363static int b43legacy_op_add_interface(struct ieee80211_hw *hw, 3365static int b43legacy_op_add_interface(struct ieee80211_hw *hw,
3364 struct ieee80211_if_init_conf *conf) 3366 struct ieee80211_vif *vif)
3365{ 3367{
3366 struct b43legacy_wl *wl = hw_to_b43legacy_wl(hw); 3368 struct b43legacy_wl *wl = hw_to_b43legacy_wl(hw);
3367 struct b43legacy_wldev *dev; 3369 struct b43legacy_wldev *dev;
@@ -3370,23 +3372,23 @@ static int b43legacy_op_add_interface(struct ieee80211_hw *hw,
3370 3372
3371 /* TODO: allow WDS/AP devices to coexist */ 3373 /* TODO: allow WDS/AP devices to coexist */
3372 3374
3373 if (conf->type != NL80211_IFTYPE_AP && 3375 if (vif->type != NL80211_IFTYPE_AP &&
3374 conf->type != NL80211_IFTYPE_STATION && 3376 vif->type != NL80211_IFTYPE_STATION &&
3375 conf->type != NL80211_IFTYPE_WDS && 3377 vif->type != NL80211_IFTYPE_WDS &&
3376 conf->type != NL80211_IFTYPE_ADHOC) 3378 vif->type != NL80211_IFTYPE_ADHOC)
3377 return -EOPNOTSUPP; 3379 return -EOPNOTSUPP;
3378 3380
3379 mutex_lock(&wl->mutex); 3381 mutex_lock(&wl->mutex);
3380 if (wl->operating) 3382 if (wl->operating)
3381 goto out_mutex_unlock; 3383 goto out_mutex_unlock;
3382 3384
3383 b43legacydbg(wl, "Adding Interface type %d\n", conf->type); 3385 b43legacydbg(wl, "Adding Interface type %d\n", vif->type);
3384 3386
3385 dev = wl->current_dev; 3387 dev = wl->current_dev;
3386 wl->operating = 1; 3388 wl->operating = 1;
3387 wl->vif = conf->vif; 3389 wl->vif = vif;
3388 wl->if_type = conf->type; 3390 wl->if_type = vif->type;
3389 memcpy(wl->mac_addr, conf->mac_addr, ETH_ALEN); 3391 memcpy(wl->mac_addr, vif->addr, ETH_ALEN);
3390 3392
3391 spin_lock_irqsave(&wl->irq_lock, flags); 3393 spin_lock_irqsave(&wl->irq_lock, flags);
3392 b43legacy_adjust_opmode(dev); 3394 b43legacy_adjust_opmode(dev);
@@ -3403,18 +3405,18 @@ static int b43legacy_op_add_interface(struct ieee80211_hw *hw,
3403} 3405}
3404 3406
3405static void b43legacy_op_remove_interface(struct ieee80211_hw *hw, 3407static void b43legacy_op_remove_interface(struct ieee80211_hw *hw,
3406 struct ieee80211_if_init_conf *conf) 3408 struct ieee80211_vif *vif)
3407{ 3409{
3408 struct b43legacy_wl *wl = hw_to_b43legacy_wl(hw); 3410 struct b43legacy_wl *wl = hw_to_b43legacy_wl(hw);
3409 struct b43legacy_wldev *dev = wl->current_dev; 3411 struct b43legacy_wldev *dev = wl->current_dev;
3410 unsigned long flags; 3412 unsigned long flags;
3411 3413
3412 b43legacydbg(wl, "Removing Interface type %d\n", conf->type); 3414 b43legacydbg(wl, "Removing Interface type %d\n", vif->type);
3413 3415
3414 mutex_lock(&wl->mutex); 3416 mutex_lock(&wl->mutex);
3415 3417
3416 B43legacy_WARN_ON(!wl->operating); 3418 B43legacy_WARN_ON(!wl->operating);
3417 B43legacy_WARN_ON(wl->vif != conf->vif); 3419 B43legacy_WARN_ON(wl->vif != vif);
3418 wl->vif = NULL; 3420 wl->vif = NULL;
3419 3421
3420 wl->operating = 0; 3422 wl->operating = 0;
@@ -3960,7 +3962,7 @@ static struct ssb_driver b43legacy_ssb_driver = {
3960 3962
3961static void b43legacy_print_driverinfo(void) 3963static void b43legacy_print_driverinfo(void)
3962{ 3964{
3963 const char *feat_pci = "", *feat_leds = "", *feat_rfkill = "", 3965 const char *feat_pci = "", *feat_leds = "",
3964 *feat_pio = "", *feat_dma = ""; 3966 *feat_pio = "", *feat_dma = "";
3965 3967
3966#ifdef CONFIG_B43LEGACY_PCI_AUTOSELECT 3968#ifdef CONFIG_B43LEGACY_PCI_AUTOSELECT
@@ -3969,9 +3971,6 @@ static void b43legacy_print_driverinfo(void)
3969#ifdef CONFIG_B43LEGACY_LEDS 3971#ifdef CONFIG_B43LEGACY_LEDS
3970 feat_leds = "L"; 3972 feat_leds = "L";
3971#endif 3973#endif
3972#ifdef CONFIG_B43LEGACY_RFKILL
3973 feat_rfkill = "R";
3974#endif
3975#ifdef CONFIG_B43LEGACY_PIO 3974#ifdef CONFIG_B43LEGACY_PIO
3976 feat_pio = "I"; 3975 feat_pio = "I";
3977#endif 3976#endif
@@ -3979,9 +3978,9 @@ static void b43legacy_print_driverinfo(void)
3979 feat_dma = "D"; 3978 feat_dma = "D";
3980#endif 3979#endif
3981 printk(KERN_INFO "Broadcom 43xx-legacy driver loaded " 3980 printk(KERN_INFO "Broadcom 43xx-legacy driver loaded "
3982 "[ Features: %s%s%s%s%s, Firmware-ID: " 3981 "[ Features: %s%s%s%s, Firmware-ID: "
3983 B43legacy_SUPPORTED_FIRMWARE_ID " ]\n", 3982 B43legacy_SUPPORTED_FIRMWARE_ID " ]\n",
3984 feat_pci, feat_leds, feat_rfkill, feat_pio, feat_dma); 3983 feat_pci, feat_leds, feat_pio, feat_dma);
3985} 3984}
3986 3985
3987static int __init b43legacy_init(void) 3986static int __init b43legacy_init(void)