Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: [PATCH] nl80211: use small state buffer for wiphy_dump
From: Johannes Berg @ 2013-06-24 13:47 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <1371632422-21760-1-git-send-email-johannes@sipsolutions.net>

On Wed, 2013-06-19 at 11:00 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> 
> Avoid parsing the original dump message again and again by
> allocating a small state struct that is used by the functions
> involved in the dump, storing this struct in cb->args[0].
> This reduces the memory allocation size as well.

Applied.

johannes


^ permalink raw reply

* Re: [PATCH 1/2] cfg80211: require passing BSS struct back to cfg80211_assoc_timeout
From: Johannes Berg @ 2013-06-24 13:48 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <1371650017-14293-1-git-send-email-johannes@sipsolutions.net>

On Wed, 2013-06-19 at 15:53 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> 
> Doing so will allow us to hold the BSS (not just ref it) over the
> association process, thus ensuring that it doesn't time out and
> gets invisible to the user (e.g. in 'iw wlan0 link'.)
> 
> This also fixes a leak in mac80211 where it doesn't always release
> the BSS struct properly in all cases where calling this function.
> This leak was reported by Ben Greear.

Applied both.

johannes


^ permalink raw reply

* [PATCH] mac80211: add rate control table update driver method
From: Johannes Berg @ 2013-06-24 13:48 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg

From: Johannes Berg <johannes.berg@intel.com>

Add an update method that to the driver for those drivers
that want to use the rate table directly, rather than doing
per packet lookups in it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 include/net/mac80211.h    |  6 ++++++
 net/mac80211/driver-ops.h | 14 ++++++++++++++
 net/mac80211/rate.c       |  3 +++
 net/mac80211/trace.h      | 35 ++++++++++++++++-------------------
 4 files changed, 39 insertions(+), 19 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5b7a3da..168e50e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2431,6 +2431,9 @@ enum ieee80211_roc_type {
  *	uses hardware rate control (%IEEE80211_HW_HAS_RATE_CONTROL) since
  *	otherwise the rate control algorithm is notified directly.
  *	Must be atomic.
+ * @sta_rate_tbl_update: Notifies the driver that the rate table changed. This
+ *	is only used if the configured rate control algorithm actually uses
+ *	the new rate table API, and is therefore optional. Must be atomic.
  *
  * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
  *	bursting) for a hardware TX queue.
@@ -2728,6 +2731,9 @@ struct ieee80211_ops {
 			      struct ieee80211_vif *vif,
 			      struct ieee80211_sta *sta,
 			      u32 changed);
+	void (*sta_rate_tbl_update)(struct ieee80211_hw *hw,
+				    struct ieee80211_vif *vif,
+				    struct ieee80211_sta *sta);
 	int (*conf_tx)(struct ieee80211_hw *hw,
 		       struct ieee80211_vif *vif, u16 ac,
 		       const struct ieee80211_tx_queue_params *params);
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index b931c96..6f395d1 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -600,6 +600,20 @@ static inline void drv_sta_rc_update(struct ieee80211_local *local,
 	trace_drv_return_void(local);
 }
 
+static inline void drv_sta_rate_tbl_update(struct ieee80211_local *local,
+					   struct ieee80211_sub_if_data *sdata,
+					   struct ieee80211_sta *sta)
+{
+	sdata = get_bss_sdata(sdata);
+	check_sdata_in_driver(sdata);
+
+	trace_drv_sta_rate_tbl_update(local, sdata, sta);
+	if (local->ops->sta_rate_tbl_update)
+		local->ops->sta_rate_tbl_update(&local->hw, &sdata->vif, sta);
+
+	trace_drv_return_void(local);
+}
+
 static inline int drv_conf_tx(struct ieee80211_local *local,
 			      struct ieee80211_sub_if_data *sdata, u16 ac,
 			      const struct ieee80211_tx_queue_params *params)
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index 30d58d2..d93c857 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -694,6 +694,7 @@ int rate_control_set_rates(struct ieee80211_hw *hw,
 			   struct ieee80211_sta *pubsta,
 			   struct ieee80211_sta_rates *rates)
 {
+	struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
 	struct ieee80211_sta_rates *old;
 
 	/*
@@ -707,6 +708,8 @@ int rate_control_set_rates(struct ieee80211_hw *hw,
 	if (old)
 		kfree_rcu(old, rcu_head);
 
+	drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta);
+
 	return 0;
 }
 EXPORT_SYMBOL(rate_control_set_rates);
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index c215fafd7..306c645 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -773,7 +773,7 @@ TRACE_EVENT(drv_sta_rc_update,
 	)
 );
 
-TRACE_EVENT(drv_sta_add,
+DECLARE_EVENT_CLASS(local_sdata_sta_evt,
 	TP_PROTO(struct ieee80211_local *local,
 		 struct ieee80211_sub_if_data *sdata,
 		 struct ieee80211_sta *sta),
@@ -798,29 +798,26 @@ TRACE_EVENT(drv_sta_add,
 	)
 );
 
-TRACE_EVENT(drv_sta_remove,
+
+DEFINE_EVENT(local_sdata_sta_evt, drv_sta_add,
 	TP_PROTO(struct ieee80211_local *local,
 		 struct ieee80211_sub_if_data *sdata,
 		 struct ieee80211_sta *sta),
+	TP_ARGS(local, sdata, sta)
+);
 
-	TP_ARGS(local, sdata, sta),
-
-	TP_STRUCT__entry(
-		LOCAL_ENTRY
-		VIF_ENTRY
-		STA_ENTRY
-	),
-
-	TP_fast_assign(
-		LOCAL_ASSIGN;
-		VIF_ASSIGN;
-		STA_ASSIGN;
-	),
+DEFINE_EVENT(local_sdata_sta_evt, drv_sta_remove,
+	TP_PROTO(struct ieee80211_local *local,
+		 struct ieee80211_sub_if_data *sdata,
+		 struct ieee80211_sta *sta),
+	TP_ARGS(local, sdata, sta)
+);
 
-	TP_printk(
-		LOCAL_PR_FMT  VIF_PR_FMT  STA_PR_FMT,
-		LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
-	)
+DEFINE_EVENT(local_sdata_sta_evt, drv_sta_rate_tbl_update,
+	TP_PROTO(struct ieee80211_local *local,
+		 struct ieee80211_sub_if_data *sdata,
+		 struct ieee80211_sta *sta),
+	TP_ARGS(local, sdata, sta)
 );
 
 TRACE_EVENT(drv_conf_tx,
-- 
1.8.0


^ permalink raw reply related

* Re: [PATCH-WN 1/3] wireless: Make sure __cfg80211_connect_result always puts bss.
From: Johannes Berg @ 2013-06-24 13:56 UTC (permalink / raw)
  To: greearb; +Cc: linux-wireless
In-Reply-To: <1371675987-28732-1-git-send-email-greearb@candelatech.com>

On Wed, 2013-06-19 at 14:06 -0700, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
> 
> Otherwise, we can leak a bss reference.

Applied all 3, still trying to make up my mind about the debugfs one
patch :)

johannes


^ permalink raw reply

* Re: [PATCH] cfg80211: fix compilation warning for cfg80211_leave_all()
From: Johannes Berg @ 2013-06-24 13:58 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless
In-Reply-To: <1371984681-3384-1-git-send-email-arend@broadcom.com>

On Sun, 2013-06-23 at 12:51 +0200, Arend van Spriel wrote:
> The following compilation issue popped up moving from v3.10-rc1 to
> v3.10-rc6 after merging wireless-testing.
> 
> net/wireless/sysfs.c:86:13: error: 'cfg80211_leave_all' defined
> but not used [-Werror=unused-function]
> 
> The function is only called when CONFIG_PM is enabled. Moving the
> function under CONFIG_PM as well.

Applied.

johannes


^ permalink raw reply

* Re: [PATCH 1/2] mac80211: allow self-protected frame tx without sta
From: Johannes Berg @ 2013-06-24 14:00 UTC (permalink / raw)
  To: Thomas Pedersen; +Cc: linux-wireless, open80211s, marco, Bob Copeland
In-Reply-To: <1371797459-16585-1-git-send-email-thomas@cozybit.com>

On Thu, 2013-06-20 at 23:50 -0700, Thomas Pedersen wrote:
> Useful for userspace mesh to authenticate and peer without
> a station entry, since both steps may fail anyway.

Both patches applied.

johannes


^ permalink raw reply

* Re: [PATCH v10 1/2] cfg80211: add flags to cfg80211_rx_mgmt
From: Johannes Berg @ 2013-06-24 14:08 UTC (permalink / raw)
  To: Vladimir Kondratiev
  Cc: linux-wireless, Luis R . Rodriguez, John W . Linville,
	Jouni Malinen
In-Reply-To: <1372063757-24286-2-git-send-email-qca_vkondrat@qca.qualcomm.com>

On Mon, 2013-06-24 at 11:49 +0300, Vladimir Kondratiev wrote:

> +/**
> + * enum nl80211_rxmgmt_flags - flags for cfg80211_rx_mgmt
> + *
> + * Defined are bits, to be used in form like
> + * BIT(NL80211_RXMGMT_FLAG_xxx)
> + *
> + * @NL80211_RXMGMT_FLAG_REPLIED: frame was replied by device/driver.
> + */
> +enum nl80211_rxmgmt_flags {
> +	NL80211_RXMGMT_FLAG_REPLIED,
> +};

I think you should define the bitmasks, i.e. use

NL80211_RXMGMT_FLAG_REPLIED	= 1<<0,

I think that'd be clearer, and userspace doesn't even always have a
BIT() macro.

johannes


^ permalink raw reply

* Re: [PATCH-WN 1/3] wireless: Make sure __cfg80211_connect_result always puts bss.
From: Ben Greear @ 2013-06-24 14:46 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless
In-Reply-To: <1372082182.8439.5.camel@jlt4.sipsolutions.net>

On 06/24/2013 06:56 AM, Johannes Berg wrote:
> On Wed, 2013-06-19 at 14:06 -0700, greearb@candelatech.com wrote:
>> From: Ben Greear <greearb@candelatech.com>
>>
>> Otherwise, we can leak a bss reference.
>
> Applied all 3, still trying to make up my mind about the debugfs one
> patch :)

With regard to that one, how about I allow it to be enabled based on
cfg80211 module option (and only when cfg80211 debugfs is enabled).

That way, no new kernel option, and no significant hit to any runtime
performance unless users specifically enable the feature.

Thanks for applying the other three.

Thanks,
Ben


>
> johannes
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply

* Re: [PATCH 3.9 4/4] iwlwifi: mvm: reduce the number of supported interfaces
From: Greg Kroah-Hartman @ 2013-06-24 15:26 UTC (permalink / raw)
  To: Emmanuel Grumbach; +Cc: stable, linux-wireless
In-Reply-To: <1372079945-7445-4-git-send-email-emmanuel.grumbach@intel.com>

On Mon, Jun 24, 2013 at 04:19:05PM +0300, Emmanuel Grumbach wrote:
> The driver in 3.9 can't support more than one interface
> concurrently. The parameters given to cfg80211 were wrong.
> Next versions are fixed by allowing concurrent interfaces.
> This is why you won't see this patch upstream.

So this isn't an issue in 3.10 at all?

thanks,

greg k-h

^ permalink raw reply

* Re: [rt2x00-users] [PATCH] rt2x00: read 5GHz TX power values from the correct offset
From: Stanislaw Gruszka @ 2013-06-24 15:47 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users, stable
In-Reply-To: <1371899605-30513-1-git-send-email-juhosg@openwrt.org>

On Sat, Jun 22, 2013 at 01:13:25PM +0200, Gabor Juhos wrote:
> The current code uses the same index value both
> for the channel information array and for the TX
> power table. The index starts from 14, however the
> index of the TX power table must start from zero.
> 
> Fix it, in order to get the correct TX power value
> for a given channel.
> 
> The changes in rt61pci.c and rt73usb.c are compile
> tested only.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Cc: stable@vger.kernel.org

Nice catch.

Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>


^ permalink raw reply

* Re: [PATCH 3.9 4/4] iwlwifi: mvm: reduce the number of supported interfaces
From: Johannes Berg @ 2013-06-24 15:45 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Emmanuel Grumbach, stable, linux-wireless
In-Reply-To: <20130624152631.GA13886@kroah.com>

On Mon, 2013-06-24 at 08:26 -0700, Greg Kroah-Hartman wrote:
> On Mon, Jun 24, 2013 at 04:19:05PM +0300, Emmanuel Grumbach wrote:
> > The driver in 3.9 can't support more than one interface
> > concurrently. The parameters given to cfg80211 were wrong.
> > Next versions are fixed by allowing concurrent interfaces.
> > This is why you won't see this patch upstream.
> 
> So this isn't an issue in 3.10 at all?

The dangers of stable-only patches ... I think this was actually
introduced into 3.9 only in my commit
2e8a935b639356f8397d39b118ac914d99b55871 ("iwlwifi: mvm: remove
P2P_DEVICE support"). Sorry about that.

johannes


^ permalink raw reply

* Re: [rt2x00-users] [PATCH 1/2] rt2x00: rt2800pci: don't use TXWI_DESC_SIZE directly
From: Stanislaw Gruszka @ 2013-06-24 15:49 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1371911519-13135-1-git-send-email-juhosg@openwrt.org>

On Sat, Jun 22, 2013 at 04:31:58PM +0200, Gabor Juhos wrote:
> Different chipsets may use different TXWI descriptor
> size. Instead of using a hardcoded value, use the
> 'queue->winfo_size' which holds the correct value for
> a given device.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>


^ permalink raw reply

* Re: [rt2x00-users] [PATCH 2/2] rt2x00: rt2800: unify [RT]XWI_SIZE defines
From: Stanislaw Gruszka @ 2013-06-24 15:49 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1371911519-13135-2-git-send-email-juhosg@openwrt.org>

On Sat, Jun 22, 2013 at 04:31:59PM +0200, Gabor Juhos wrote:
> Use common names instead of chip specific ones.
> The patch contains no functional changes, but
> it makes it easier to add support for further
> descriptor sizes.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>


^ permalink raw reply

* Re: [rt2x00-users] [PATCH 0/3] rt2x00: rt2800: prepare for three-chain device support
From: Stanislaw Gruszka @ 2013-06-24 16:00 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1371915734-13966-1-git-send-email-juhosg@openwrt.org>

On Sat, Jun 22, 2013 at 05:42:11PM +0200, Gabor Juhos wrote:
> Gabor Juhos (3):
>   rt2x00: rt2800: increase EEPROM_SIZE to 512 bytes
>   rt2x00: rt2800lib: turn on secondary PAs/LNAs for 3T/3R devices
>   rt2x00: rt2800lib: turn on tertiary PAs/LNAs for 3T/3R devices
> 
>  drivers/net/wireless/rt2x00/rt2800.h    |    2 +-
>  drivers/net/wireless/rt2x00/rt2800lib.c |   22 ++++++++++++++++++----
>  2 files changed, 19 insertions(+), 5 deletions(-)

This series also looks good to me.

Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>

BTW: Do you plan to create more 3T/3R patches soon ? I plan to work on
adding support for RT3573 usb device (but stuck on other work so far
unfortunetly). Anyway I don't want to duplicate efforts, so would like
to know about your plans.

Thanks
Stanislaw


^ permalink raw reply

* pull-request: mac80211-next 2013-06-24
From: Johannes Berg @ 2013-06-24 17:24 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 2791 bytes --]

John,

As can be expected, I've accumulated a bunch more patches. Much of it is
already trending towards fixes rather than new features, but some of
those are there as well. I've removed the diffstat because git got
confused about it, presumably because I merged mac80211 to resolve a
conflict with the nl80211 fix. Anyway ...

Here we have a few memory leak fixes related to BSS struct handling
mostly from Ben, including a fix for a more theoretical problem
(associating while a BSS struct times out) from myself, a compilation
warning fix from Arend, mesh fixes from Thomas, tracking the beacon
bitrate (Alex), a bandwidth change event fix (Ilan) and some initial
work for 5/10 MHz channels from Simon.

Let me know if there are any issues.

johannes


The following changes since commit 795d855d56c6d172f50a974f603ba923ac93ee76:

  mac80211: Fix rate control mask matching call (2013-06-12 09:12:43 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git for-john

for you to fetch changes up to 6c7c4cbfd5f59c04a40af67ad72d14e19215ef36:

  mac80211: initialize power mode for mesh STAs (2013-06-24 15:59:20 +0200)

----------------------------------------------------------------
Alexander Bondar (1):
      mac80211: track AP's beacon rate and give it to the driver

Antonio Quartulli (1):
      Revert "mac80211: in IBSS use the Auth frame to trigger STA reinsertion"

Arend van Spriel (1):
      cfg80211: fix compilation warning for cfg80211_leave_all()

Ben Greear (4):
      mac80211: Ensure tid_start_tx is protected by sta->lock
      wireless: Make sure __cfg80211_connect_result always puts bss
      wireless: add comments about bss refcounting
      wireless: check for dangling wdev->current_bss pointer

Ilan Peer (1):
      mac80211: Fix VHT bandwidth change event

Johannes Berg (6):
      mac80211: fix TX aggregation TID struct leak
      nl80211: fix attrbuf access race by allocating a separate one
      Merge remote-tracking branch 'mac80211/master' into HEAD
      nl80211: use small state buffer for wiphy_dump
      cfg80211: require passing BSS struct back to cfg80211_assoc_timeout
      cfg80211: hold BSS over association process

Simon Wunderlich (5):
      nl80211: use attributes to parse beacons
      nl80211/cfg80211: add 5 and 10 MHz defines and wiphy flag
      nl80211: add rate flags for 5/10 Mhz channels
      mac80211: fix various components for the new 5 and 10 MHz widths
      mac80211: change IBSS channel state to chandef

Thomas Pedersen (3):
      mac80211: update mesh beacon on workqueue
      mac80211: allow self-protected frame tx without sta
      mac80211: initialize power mode for mesh STAs


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply

* Re: [PATCH 1/2] rt2x00: rt2800pci: don't use TXWI_DESC_SIZE directly
From: Gertjan van Wingerde @ 2013-06-24 17:29 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos
In-Reply-To: <1371911519-13135-1-git-send-email-juhosg@openwrt.org>



Sent from my iPad

On 22 jun. 2013, at 16:31, Gabor Juhos <juhosg@openwrt.org> wrote:

> Different chipsets may use different TXWI descriptor
> size. Instead of using a hardcoded value, use the
> 'queue->winfo_size' which holds the correct value for
> a given device.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>

> ---
> drivers/net/wireless/rt2x00/rt2800pci.c |    5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
> index 7c74782..e664918 100644
> --- a/drivers/net/wireless/rt2x00/rt2800pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
> @@ -637,6 +637,7 @@ static void rt2800pci_write_tx_desc(struct queue_entry *entry,
>    struct queue_entry_priv_mmio *entry_priv = entry->priv_data;
>    __le32 *txd = entry_priv->desc;
>    u32 word;
> +    const unsigned int txwi_size = entry->queue->winfo_size;
> 
>    /*
>     * The buffers pointed by SD_PTR0/SD_LEN0 and SD_PTR1/SD_LEN1
> @@ -659,14 +660,14 @@ static void rt2800pci_write_tx_desc(struct queue_entry *entry,
>               !test_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags));
>    rt2x00_set_field32(&word, TXD_W1_BURST,
>               test_bit(ENTRY_TXD_BURST, &txdesc->flags));
> -    rt2x00_set_field32(&word, TXD_W1_SD_LEN0, TXWI_DESC_SIZE);
> +    rt2x00_set_field32(&word, TXD_W1_SD_LEN0, txwi_size);
>    rt2x00_set_field32(&word, TXD_W1_LAST_SEC0, 0);
>    rt2x00_set_field32(&word, TXD_W1_DMA_DONE, 0);
>    rt2x00_desc_write(txd, 1, word);
> 
>    word = 0;
>    rt2x00_set_field32(&word, TXD_W2_SD_PTR1,
> -               skbdesc->skb_dma + TXWI_DESC_SIZE);
> +               skbdesc->skb_dma + txwi_size);
>    rt2x00_desc_write(txd, 2, word);
> 
>    word = 0;
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 2/2] rt2x00: rt2800: unify [RT]XWI_SIZE defines
From: Gertjan van Wingerde @ 2013-06-24 17:29 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos
In-Reply-To: <1371911519-13135-2-git-send-email-juhosg@openwrt.org>



Sent from my iPad

On 22 jun. 2013, at 16:31, Gabor Juhos <juhosg@openwrt.org> wrote:

> Use common names instead of chip specific ones.
> The patch contains no functional changes, but
> it makes it easier to add support for further
> descriptor sizes.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>

> ---
> drivers/net/wireless/rt2x00/rt2800.h    |   10 ++++++----
> drivers/net/wireless/rt2x00/rt2800pci.c |    6 +++---
> drivers/net/wireless/rt2x00/rt2800usb.c |    8 ++++----
> 3 files changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
> index a7630d5..fe43d01 100644
> --- a/drivers/net/wireless/rt2x00/rt2800.h
> +++ b/drivers/net/wireless/rt2x00/rt2800.h
> @@ -2625,11 +2625,13 @@ struct mac_iveiv_entry {
> /*
>  * DMA descriptor defines.
>  */
> -#define TXWI_DESC_SIZE            (4 * sizeof(__le32))
> -#define RXWI_DESC_SIZE            (4 * sizeof(__le32))
> 
> -#define TXWI_DESC_SIZE_5592        (5 * sizeof(__le32))
> -#define RXWI_DESC_SIZE_5592        (6 * sizeof(__le32))
> +#define TXWI_DESC_SIZE_4WORDS        (4 * sizeof(__le32))
> +#define TXWI_DESC_SIZE_5WORDS        (5 * sizeof(__le32))
> +
> +#define RXWI_DESC_SIZE_4WORDS        (4 * sizeof(__le32))
> +#define RXWI_DESC_SIZE_6WORDS        (6 * sizeof(__le32))
> +
> /*
>  * TX WI structure
>  */
> diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
> index e664918..0005562 100644
> --- a/drivers/net/wireless/rt2x00/rt2800pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
> @@ -1194,7 +1194,7 @@ static void rt2800pci_queue_init(struct data_queue *queue)
>        queue->limit = 128;
>        queue->data_size = AGGREGATION_SIZE;
>        queue->desc_size = RXD_DESC_SIZE;
> -        queue->winfo_size = RXWI_DESC_SIZE;
> +        queue->winfo_size = RXWI_DESC_SIZE_4WORDS;
>        queue->priv_size = sizeof(struct queue_entry_priv_mmio);
>        break;
> 
> @@ -1205,7 +1205,7 @@ static void rt2800pci_queue_init(struct data_queue *queue)
>        queue->limit = 64;
>        queue->data_size = AGGREGATION_SIZE;
>        queue->desc_size = TXD_DESC_SIZE;
> -        queue->winfo_size = TXWI_DESC_SIZE;
> +        queue->winfo_size = TXWI_DESC_SIZE_4WORDS;
>        queue->priv_size = sizeof(struct queue_entry_priv_mmio);
>        break;
> 
> @@ -1213,7 +1213,7 @@ static void rt2800pci_queue_init(struct data_queue *queue)
>        queue->limit = 8;
>        queue->data_size = 0; /* No DMA required for beacons */
>        queue->desc_size = TXD_DESC_SIZE;
> -        queue->winfo_size = TXWI_DESC_SIZE;
> +        queue->winfo_size = TXWI_DESC_SIZE_4WORDS;
>        queue->priv_size = sizeof(struct queue_entry_priv_mmio);
>        break;
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
> index 7edd903..840833b 100644
> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
> @@ -855,11 +855,11 @@ static void rt2800usb_queue_init(struct data_queue *queue)
>    unsigned short txwi_size, rxwi_size;
> 
>    if (rt2x00_rt(rt2x00dev, RT5592)) {
> -        txwi_size = TXWI_DESC_SIZE_5592;
> -        rxwi_size = RXWI_DESC_SIZE_5592;
> +        txwi_size = TXWI_DESC_SIZE_5WORDS;
> +        rxwi_size = RXWI_DESC_SIZE_6WORDS;
>    } else {
> -        txwi_size = TXWI_DESC_SIZE;
> -        rxwi_size = RXWI_DESC_SIZE;
> +        txwi_size = TXWI_DESC_SIZE_4WORDS;
> +        rxwi_size = RXWI_DESC_SIZE_4WORDS;
>    }
> 
>    switch (queue->qid) {
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH] rt2x00: read 5GHz TX power values from the correct offset
From: Gertjan van Wingerde @ 2013-06-24 17:31 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos,
	stable@vger.kernel.org
In-Reply-To: <1371899605-30513-1-git-send-email-juhosg@openwrt.org>



Sent from my iPad

On 22 jun. 2013, at 13:13, Gabor Juhos <juhosg@openwrt.org> wrote:

> The current code uses the same index value both
> for the channel information array and for the TX
> power table. The index starts from 14, however the
> index of the TX power table must start from zero.
> 
> Fix it, in order to get the correct TX power value
> for a given channel.
> 
> The changes in rt61pci.c and rt73usb.c are compile
> tested only.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Cc: stable@vger.kernel.org

Acked-by: Gertjan van Wingerde

Good catch. This can certainly explain why people were seeing bad results on the 5 GHz band.

> ---
> John,
> 
> If there is any chance for that, this should go
> into 3.10. However the code is wrong since a few
> years and nobody noticed that so far, so it is
> not a big problem if it will be applied only in
> 3.11.
> 
> -Gabor
> ---
> drivers/net/wireless/rt2x00/rt2800lib.c |    4 ++--
> drivers/net/wireless/rt2x00/rt61pci.c   |    3 ++-
> drivers/net/wireless/rt2x00/rt73usb.c   |    3 ++-
> 3 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index 3aa30dd..4072242 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -6254,8 +6254,8 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
>        default_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A2);
> 
>        for (i = 14; i < spec->num_channels; i++) {
> -            info[i].default_power1 = default_power1[i];
> -            info[i].default_power2 = default_power2[i];
> +            info[i].default_power1 = default_power1[i - 14];
> +            info[i].default_power2 = default_power2[i - 14];
>        }
>    }
> 
> diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
> index 53754bc6..54d3ddf 100644
> --- a/drivers/net/wireless/rt2x00/rt61pci.c
> +++ b/drivers/net/wireless/rt2x00/rt61pci.c
> @@ -2825,7 +2825,8 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
>        tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START);
>        for (i = 14; i < spec->num_channels; i++) {
>            info[i].max_power = MAX_TXPOWER;
> -            info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]);
> +            info[i].default_power1 =
> +                    TXPOWER_FROM_DEV(tx_power[i - 14]);
>        }
>    }
> 
> diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
> index 1616ed4..1d3880e 100644
> --- a/drivers/net/wireless/rt2x00/rt73usb.c
> +++ b/drivers/net/wireless/rt2x00/rt73usb.c
> @@ -2167,7 +2167,8 @@ static int rt73usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
>        tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START);
>        for (i = 14; i < spec->num_channels; i++) {
>            info[i].max_power = MAX_TXPOWER;
> -            info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]);
> +            info[i].default_power1 =
> +                    TXPOWER_FROM_DEV(tx_power[i - 14]);
>        }
>    }
> 
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 1/3] rt2x00: rt2800: increase EEPROM_SIZE to 512 bytes
From: Gertjan van Wingerde @ 2013-06-24 17:32 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos
In-Reply-To: <1371915734-13966-2-git-send-email-juhosg@openwrt.org>



Sent from my iPad

On 22 jun. 2013, at 17:42, Gabor Juhos <juhosg@openwrt.org> wrote:

> Ralink 3T chipsets are using a different EEPROM
> layout than the others. The EEPROM on these devices
> contain more data than the others which does not fit
> into 272 byte which the rt2800 driver actually uses.
> 
> The Ralink reference driver defines EEPROM_SIZE to
> 512/1024 bytes for PCI/USB devices respectively.
> 
> Increase the EEPROM_SIZE constant to 512 bytes, in
> order to make room for EEPROM data of 3T devices.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>

> ---
> drivers/net/wireless/rt2x00/rt2800.h |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
> index fe43d01..d78c495 100644
> --- a/drivers/net/wireless/rt2x00/rt2800.h
> +++ b/drivers/net/wireless/rt2x00/rt2800.h
> @@ -100,7 +100,7 @@
> #define CSR_REG_BASE            0x1000
> #define CSR_REG_SIZE            0x0800
> #define EEPROM_BASE            0x0000
> -#define EEPROM_SIZE            0x0110
> +#define EEPROM_SIZE            0x0200
> #define BBP_BASE            0x0000
> #define BBP_SIZE            0x00ff
> #define RF_BASE                0x0004
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 2/3] rt2x00: rt2800lib: turn on secondary PAs/LNAs for 3T/3R devices
From: Gertjan van Wingerde @ 2013-06-24 17:33 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos
In-Reply-To: <1371915734-13966-3-git-send-email-juhosg@openwrt.org>

Hi Gabor,

Sent from my iPad

On 22 jun. 2013, at 17:42, Gabor Juhos <juhosg@openwrt.org> wrote:

> The secondary PAs/LNAs are turned on only for 2T/2R
> devices, however these are used for 3T/3R devices as
> well. Always turn those on if the device uses more
> than one tx/rx chains.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Looks good to me. However, please resubmit with the typo noticed by Helmut fixed.

You can add my Acked-by in that resubmission.

> ---
> drivers/net/wireless/rt2x00/rt2800lib.c |    8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index 4072242..f4cd3d8 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -2678,16 +2678,16 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
> 
>    tx_pin = 0;
> 
> -    /* Turn on unused PA or LNA when not using 1T or 1R */
> -    if (rt2x00dev->default_ant.tx_chain_num == 2) {
> +    if (rt2x00dev->default_ant.tx_chain_num > 1) {
> +        /* Turn on secondary PAs for 2T adn for 3T devices*/
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_A1_EN,
>                   rf->channel > 14);
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_G1_EN,
>                   rf->channel <= 14);
>    }
> 
> -    /* Turn on unused PA or LNA when not using 1T or 1R */
> -    if (rt2x00dev->default_ant.rx_chain_num == 2) {
> +    if (rt2x00dev->default_ant.rx_chain_num > 1) {
> +        /* Turn on secondary LNAs for 2R and for 3R devices */
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN, 1);
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN, 1);
>    }
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 3/3] rt2x00: rt2800lib: turn on tertiary PAs/LNAs for 3T/3R devices
From: Gertjan van Wingerde @ 2013-06-24 17:42 UTC (permalink / raw)
  To: Gabor Juhos
  Cc: John Linville, linux-wireless@vger.kernel.org,
	users@rt2x00.serialmonkey.com, Gabor Juhos
In-Reply-To: <1371915734-13966-4-git-send-email-juhosg@openwrt.org>

Hi Gabor,

Sent from my iPad

On 22 jun. 2013, at 17:42, Gabor Juhos <juhosg@openwrt.org> wrote:

> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> ---
> drivers/net/wireless/rt2x00/rt2800lib.c |   14 ++++++++++++++
> 1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index f4cd3d8..664e9e1 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -2684,12 +2684,26 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
>                   rf->channel > 14);
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_G1_EN,
>                   rf->channel <= 14);
> +
> +        if (rt2x00dev->default_ant.tx_chain_num > 2) {
> +            /* Turn on tertiary PAs for 3T devices */
> +            rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_A2_EN,
> +                    rf->channel > 14);
> +            rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_G2_EN,
> +                    rf->channel <= 14);
> +        }
>    }
> 
>    if (rt2x00dev->default_ant.rx_chain_num > 1) {
>        /* Turn on secondary LNAs for 2R and for 3R devices */
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN, 1);
>        rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN, 1);
> +
> +        if (rt2x00dev->default_ant.rx_chain_num > 2) {
> +            /* Turn on tertiary LNAs for 3R devices */
> +            rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A2_EN, 1);
> +            rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G2_EN, 1);
> +        }
>    }

Stylistic I would prefer the if outside of if block you included it in.
Something like:

if (tx_chain_num > 2) {
     /* Turn on tertiary PAs for 3T devices */
}
if (tx_chain_num > 1) {
    /* Turn on secondary PAs for 2T and for 3T devices */
}
/* Turn on primary PAs for 1T, 2T and for 3T devices */

At least to me this is easier to read.

Alternatively it could be changed to a switch statement wit fall-through cases for the number of RX/TX streams. 

> 
>    rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A0_EN, 1);
> -- 
> 1.7.10
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: pull request: bluetooth 2013-06-23
From: John W. Linville @ 2013-06-24 17:58 UTC (permalink / raw)
  To: Gustavo Padovan, linux-wireless, linux-bluetooth, linux-kernel
In-Reply-To: <20130623021351.GA2327@joana>

On Sun, Jun 23, 2013 at 03:13:51AM +0100, Gustavo Padovan wrote:
> Hi John,
> 
> A important fix to 3.10, this patch fixes an issues that was preventing the 
> l2cap info response command to be handled properly. Please pull. Thanks!
> 
>         Gustavo
>         
> ---
> The following changes since commit fcb3701849957917a234a61b58ad70ed35c83eda:
> 
>   brcmfmac: free primary net_device when brcmf_bus_start() fails (2013-06-13 13:24:12 -0400)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth master
> 
> for you to fetch changes up to 3f6fa3d489e127ca5a5b298eabac3ff5dbe0e112:
> 
>   Bluetooth: Fix invalid length check in l2cap_information_rsp() (2013-06-23 00:24:58 +0100)
> 
> ----------------------------------------------------------------
> Jaganath Kanakkassery (1):
>       Bluetooth: Fix invalid length check in l2cap_information_rsp()
> 
>  net/bluetooth/l2cap_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Pulling now...

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: pull-request: mac80211-next 2013-06-24
From: John W. Linville @ 2013-06-24 18:45 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless
In-Reply-To: <1372094678.8439.24.camel@jlt4.sipsolutions.net>

On Mon, Jun 24, 2013 at 07:24:38PM +0200, Johannes Berg wrote:
> John,
> 
> As can be expected, I've accumulated a bunch more patches. Much of it is
> already trending towards fixes rather than new features, but some of
> those are there as well. I've removed the diffstat because git got
> confused about it, presumably because I merged mac80211 to resolve a
> conflict with the nl80211 fix. Anyway ...
> 
> Here we have a few memory leak fixes related to BSS struct handling
> mostly from Ben, including a fix for a more theoretical problem
> (associating while a BSS struct times out) from myself, a compilation
> warning fix from Arend, mesh fixes from Thomas, tracking the beacon
> bitrate (Alex), a bandwidth change event fix (Ilan) and some initial
> work for 5/10 MHz channels from Simon.
> 
> Let me know if there are any issues.
> 
> johannes
> 
> 
> The following changes since commit 795d855d56c6d172f50a974f603ba923ac93ee76:
> 
>   mac80211: Fix rate control mask matching call (2013-06-12 09:12:43 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git for-john
> 
> for you to fetch changes up to 6c7c4cbfd5f59c04a40af67ad72d14e19215ef36:
> 
>   mac80211: initialize power mode for mesh STAs (2013-06-24 15:59:20 +0200)

Pulling now...

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: pull request: bluetooth-next 2013-06-23
From: John W. Linville @ 2013-06-24 18:46 UTC (permalink / raw)
  To: Gustavo Padovan, linux-wireless, linux-bluetooth, linux-kernel
In-Reply-To: <20130623022356.GB2327@joana>

On Sun, Jun 23, 2013 at 03:23:56AM +0100, Gustavo Padovan wrote:
> Hi John,
> 
> Here goes a set of patches to 3.11. The biggest work here is from Andre Guedes
> on the move of the Discovery to use the new request framework. Other than that
> Johan provided a bunch of fixes to the L2CAP code. The rest are just small
> fixes and clean ups. 
> 
> Please pull or let me know of any problem! Thanks.
> 
> 	Gustavo
> 
> ---
> The following changes since commit b887664d882ee4f6a67e0bf05e5f141d32fcc067:
> 
>   mwifiex: channel switch handling for station (2013-06-19 15:28:43 -0400)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next for-upstream
> 
> for you to fetch changes up to b8f4e068004859eefac7b1ced59ddb67ca6d2d80:
> 
>   Bluetooth: Improve comments on the HCI_Delete_Store_Link_Key issue (2013-06-23 03:05:47 +0100)

Pulling now...

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: [PATCH 2/3] rt2x00: rt2800lib: turn on secondary PAs/LNAs for 3T/3R devices
From: Gabor Juhos @ 2013-06-24 19:00 UTC (permalink / raw)
  To: Helmut Schaa; +Cc: John Linville, linux-wireless, rt2x00 Users List
In-Reply-To: <CAGXE3d9_zOt0h6WaWUedXnJu9yucJ=Jtaa8PPacz1-6G2Wf63w@mail.gmail.com>

2013.06.24. 15:00 keltezéssel, Helmut Schaa írta:
> On Sat, Jun 22, 2013 at 5:42 PM, Gabor Juhos <juhosg@openwrt.org> wrote:
>> The secondary PAs/LNAs are turned on only for 2T/2R
>> devices, however these are used for 3T/3R devices as
>> well. Always turn those on if the device uses more
>> than one tx/rx chains.
>>
>> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
>> ---
>>  drivers/net/wireless/rt2x00/rt2800lib.c |    8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
>> index 4072242..f4cd3d8 100644
>> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
>> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
>> @@ -2678,16 +2678,16 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
>>
>>         tx_pin = 0;
>>
>> -       /* Turn on unused PA or LNA when not using 1T or 1R */
>> -       if (rt2x00dev->default_ant.tx_chain_num == 2) {
>> +       if (rt2x00dev->default_ant.tx_chain_num > 1) {
>> +               /* Turn on secondary PAs for 2T adn for 3T devices*/
> 
> Typo adn -> and.
> 
> Otherwise looks good to me.

Thanks, I will send a fixed version.

-Gabor

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox