mac80211: update to wireless-testing 2012-02-06
[openwrt/openwrt.git] / package / mac80211 / patches / 820-b43-add-antenna-control.patch
index fd80824857a9e7f1f45519bfe5220f660d4693a2..c1f7a6f1379ee1f3d1b49a6b5857f3d0aea005bc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/b43/main.c
 +++ b/drivers/net/wireless/b43/main.c
-@@ -1535,7 +1535,7 @@ static void b43_write_beacon_template(st
+@@ -1529,7 +1529,7 @@ static void b43_write_beacon_template(st
                                  len, ram_offset, shm_size_offset, rate);
  
        /* Write the PHY TX control parameters. */
@@ -9,7 +9,7 @@
        antenna = b43_antenna_to_phyctl(antenna);
        ctl = b43_shm_read16(dev, B43_SHM_SHARED, B43_SHM_SH_BEACPHYCTL);
        /* We can't send beacons with short preamble. Would get PHY errors. */
-@@ -3052,8 +3052,8 @@ static int b43_chip_init(struct b43_wlde
+@@ -3031,8 +3031,8 @@ static int b43_chip_init(struct b43_wlde
  
        /* Select the antennae */
        if (phy->ops->set_rx_antenna)
@@ -20,7 +20,7 @@
  
        if (phy->type == B43_PHYTYPE_B) {
                value16 = b43_read16(dev, 0x005E);
-@@ -3782,7 +3782,6 @@ static int b43_op_config(struct ieee8021
+@@ -3775,7 +3775,6 @@ static int b43_op_config(struct ieee8021
        struct b43_wldev *dev;
        struct b43_phy *phy;
        struct ieee80211_conf *conf = &hw->conf;
@@ -28,7 +28,7 @@
        int err = 0;
        bool reload_bss = false;
  
-@@ -3836,11 +3835,9 @@ static int b43_op_config(struct ieee8021
+@@ -3829,11 +3828,9 @@ static int b43_op_config(struct ieee8021
        }
  
        /* Antennas for RX and management frame TX. */
@@ -42,7 +42,7 @@
  
        if (wl->radio_enabled != phy->radio_on) {
                if (wl->radio_enabled) {
-@@ -4910,6 +4907,47 @@ static int b43_op_get_survey(struct ieee
+@@ -4905,6 +4902,47 @@ static int b43_op_get_survey(struct ieee
        return 0;
  }
  
@@ -90,7 +90,7 @@
  static const struct ieee80211_ops b43_hw_ops = {
        .tx                     = b43_op_tx,
        .conf_tx                = b43_op_conf_tx,
-@@ -4931,6 +4969,8 @@ static const struct ieee80211_ops b43_hw
+@@ -4926,6 +4964,8 @@ static const struct ieee80211_ops b43_hw
        .sw_scan_complete       = b43_op_sw_scan_complete_notifier,
        .get_survey             = b43_op_get_survey,
        .rfkill_poll            = b43_rfkill_poll,
@@ -99,7 +99,7 @@
  };
  
  /* Hard-reset the chip. Do not call this directly.
-@@ -5177,6 +5217,8 @@ static int b43_one_core_attach(struct b4
+@@ -5172,6 +5212,8 @@ static int b43_one_core_attach(struct b4
        if (!wldev)
                goto out;
  
        wldev->use_pio = b43_modparam_pio;
        wldev->dev = dev;
        wldev->wl = wl;
-@@ -5264,6 +5306,9 @@ static struct b43_wl *b43_wireless_init(
+@@ -5260,6 +5302,9 @@ static struct b43_wl *b43_wireless_init(
                BIT(NL80211_IFTYPE_WDS) |
                BIT(NL80211_IFTYPE_ADHOC);
  
 +      hw->wiphy->available_antennas_rx = 0x3;
 +      hw->wiphy->available_antennas_tx = 0x3;
 +
-       hw->queues = modparam_qos ? 4 : 1;
+       hw->queues = modparam_qos ? B43_QOS_QUEUE_NUM : 1;
        wl->mac80211_initially_registered_queues = hw->queues;
        hw->max_rates = 2;
 --- a/drivers/net/wireless/b43/b43.h
 +++ b/drivers/net/wireless/b43/b43.h
-@@ -792,6 +792,8 @@ struct b43_wldev {
+@@ -804,6 +804,8 @@ struct b43_wldev {
        bool hwcrypto_enabled;          /* TRUE, if HW crypto acceleration is enabled. */
        bool use_pio;                   /* TRUE if next init should use PIO */
        int gpiomask;                   /* GPIO LED mask as a module parameter */