Oleksij Rempel | 19 May 2013 09:38
Picon
Gravatar

[PATCH 0/3] Work on STBC Rx monitoring

This patch set will pass RxSTBC flags from ath9k to ieee80211
and to radiotap.
This field is now a part of radiotap specification:
http://www.radiotap.org/defined-fields/MCS

Oleksij Rempel (3):
  mac80211: add STBC flag for radiotap
  ath9k: remove useless flag conversation.
  ath9k: check for Rx-STBC flag and pass it to ieee80211

 drivers/net/wireless/ath/ath9k/ar9003_mac.c |  5 +++--
 drivers/net/wireless/ath/ath9k/mac.c        | 16 ++++++++++++----
 drivers/net/wireless/ath/ath9k/mac.h        |  4 +++-
 drivers/net/wireless/ath/ath9k/recv.c       |  5 +----
 include/net/ieee80211_radiotap.h            |  7 +++++++
 include/net/mac80211.h                      |  4 ++++
 net/mac80211/main.c                         |  3 ++-
 net/mac80211/rx.c                           |  4 ++++
 net/mac80211/status.c                       |  3 ++-
 9 files changed, 38 insertions(+), 13 deletions(-)

--

-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html

(Continue reading)

Felix Fietkau | 18 May 2013 21:28

[PATCH 3.10] ath9k: prevent aggregation session deadlocks

Waiting for all subframes of an existing aggregation session to drain
before allowing mac80211 to start a new one is fragile and deadlocks
caused by this behavior have been observed.

Since mac80211 has proper synchronization for aggregation session
start/stop handling, a better approach to session handling is to simply
allow mac80211 to start a new session at any time. This requires
changing the code to discard any packets outside of the BlockAck window
in the A-MPDU software retry code.

This patch implements the above and also simplifies the code.

Signed-off-by: Felix Fietkau <nbd@...>
---
 drivers/net/wireless/ath/ath9k/ath9k.h |  14 +---
 drivers/net/wireless/ath/ath9k/main.c  |   3 +-
 drivers/net/wireless/ath/ath9k/rc.c    |   5 +-
 drivers/net/wireless/ath/ath9k/xmit.c  | 138 ++++++++++-----------------------
 4 files changed, 46 insertions(+), 114 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 366002f..42b03dc 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
 <at>  <at>  -251,10 +251,9  <at>  <at>  struct ath_atx_tid {
 	int tidno;
 	int baw_head;   /* first un-acked tx buffer */
 	int baw_tail;   /* next unused tx buffer slot */
-	int sched;
-	int paused;
(Continue reading)

Alessandro Lannocca | 18 May 2013 17:10
Picon

rt3070-based usb device won't accept mac address changes

Hi, after switching to kernel 3.8.8 (ubuntu quantal to raring), I'm
unable to change my alfa AWUS036NH mac address; a simple:

ifconfig <device> down
ifconfig <device> hw ether <random hw>

results in:

SIOCSIFHWADDR: Invalid argument

I tried the drivers shipped with the distribution,
compat-drivers-3.9-rc4-2-su and compat-drivers-2013-03-28-4-u aswell;
all to no avail.

Any help appreciated, I'm able to recompile/test if needed.

Thank you for your time.

Alessandro Lannocca

Attached 'lsusb -v' , kernel 3.8.8 x86_64

<snip>

Bus 003 Device 005: ID 148f:3070 Ralink Technology, Corp.
RT2870/RT3070 Wireless Adapter
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
(Continue reading)

stf_xl | 18 May 2013 14:03
Picon
Favicon

[PATCH 00/32] BBP initialization split

This series spits big and messy rt2800_init_bbp() procedure into small
per chip (or few similar chips) subroutines.

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Bing Zhao | 18 May 2013 02:54
Favicon

[PATCH v2 17/17] mwifiex: add support for Marvell SD8897 chipset

From: Yogesh Ashok Powar <yogeshp@...>

Some of the key differences between SD8897 and older chipsets
are as follows:

a) sdio mpa_rx and mpa_tx ports have been increased from 16 to 32
b) Same is the case with read/write bitmap that one receives from
   mpa_reg read
c) aggregation packet count doubled from 8 to 16
d) Most of key reg addresses are changed
e) There is a separate command or control port
f) Now command rx/tx_done have new interrupts

1. 'supports_sdio_new_mode' flag is added to handle (a) and (b).
2. (c) and (d) are taken care of by filling chip specific
   information in global structurei (mwifiex_sdio_sd8897).
3. For older chipsets, port 0 was cmd port and port 1->15 were
   data port. Therefore we had CTRL_PORT_MASK to differentiate
   port type. Now these changes are under 'has_control_mask' flag.

Signed-off-by: Yogesh Ashok Powar <yogeshp@...>
Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Nishant Sarmukadam <nishants@...>
Signed-off-by: Bing Zhao <bzhao@...>
Signed-off-by: Frank Huang <frankh@...>
---
v2: fix cmd53 single port address overwriting

 drivers/net/wireless/mwifiex/Kconfig |   4 +-
 drivers/net/wireless/mwifiex/sdio.c  | 267 ++++++++++++++++++++++++++++-------
(Continue reading)

Bing Zhao | 18 May 2013 02:54
Favicon

[PATCH v2 16/17] mwifiex: code rearrangement in multiport aggregation path

From: Amitkumar Karwar <akarwar@...>

There are some macros defined for multiport aggregation
calculations. As we may need to add some more code to
accomodate new chipsets, we will change them to inline
functions. Also, use dynamic allocation for Rx buffer array.

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
 drivers/net/wireless/mwifiex/sdio.c | 17 +++++---
 drivers/net/wireless/mwifiex/sdio.h | 83 +++++++++++++++++++++++--------------
 2 files changed, 64 insertions(+), 36 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index 1892e88..4b196dc 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
 <at>  <at>  -1084,10 +1084,10  <at>  <at>  static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter,
 	if (f_aggr_cur) {
 		dev_dbg(adapter->dev, "info: current packet aggregation\n");
 		/* Curr pkt can be aggregated */
-		MP_RX_AGGR_SETUP(card, skb, port);
+		mp_rx_aggr_setup(card, skb, port);

 		if (MP_RX_AGGR_PKT_LIMIT_REACHED(card) ||
-		    MP_RX_AGGR_PORT_LIMIT_REACHED(card)) {
+		    mp_rx_aggr_port_limit_reached(card)) {
 			dev_dbg(adapter->dev, "info: %s: aggregated packet "
 				"limit reached\n", __func__);
(Continue reading)

Bing Zhao | 18 May 2013 02:54
Favicon

[PATCH v2 15/17] mwifiex: remove unnecessary macros in sdio.h

From: Amitkumar Karwar <akarwar@...>

They are not used in the code.

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
 drivers/net/wireless/mwifiex/sdio.h | 51 -------------------------------------
 1 file changed, 51 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.h b/drivers/net/wireless/mwifiex/sdio.h
index e4016d2..339608b 100644
--- a/drivers/net/wireless/mwifiex/sdio.h
+++ b/drivers/net/wireless/mwifiex/sdio.h
 <at>  <at>  -66,14 +66,8  <at>  <at> 

 /* Host Control Registers : Configuration */
 #define CONFIGURATION_REG		0x00
-/* Host Control Registers : Host without Command 53 finish host*/
-#define HOST_TO_CARD_EVENT       (0x1U << 3)
-/* Host Control Registers : Host without Command 53 finish host */
-#define HOST_WO_CMD53_FINISH_HOST	(0x1U << 2)
 /* Host Control Registers : Host power up */
 #define HOST_POWER_UP			(0x1U << 1)
-/* Host Control Registers : Host power down */
-#define HOST_POWER_DOWN			(0x1U << 0)

 /* Host Control Registers : Host interrupt mask */
 #define HOST_INT_MASK_REG		0x02
 <at>  <at>  -93,60 +87,15  <at>  <at> 
(Continue reading)

Bing Zhao | 18 May 2013 02:54
Favicon

[PATCH v2 14/17] mwifiex: define a macro for MPA base address

From: Amitkumar Karwar <akarwar@...>

As Multiple-Port Aggregation base address value is fixed, we can
have a macro for it.

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
 drivers/net/wireless/mwifiex/sdio.c | 4 ++--
 drivers/net/wireless/mwifiex/sdio.h | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index 99a508b..1892e88 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
 <at>  <at>  -1100,7 +1100,7  <at>  <at>  static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter,
 		dev_dbg(adapter->dev, "info: do_rx_aggr: num of packets: %d\n",
 			card->mpa_rx.pkt_cnt);

-		mport = (adapter->ioport | 0x1000 |
+		mport = (adapter->ioport | SDIO_MPA_ADDR_BASE |
 			 (card->mpa_rx.ports << 4)) + card->mpa_rx.start_port;

 		if (mwifiex_read_data_sync(adapter, card->mpa_rx.buf,
 <at>  <at>  -1419,7 +1419,7  <at>  <at>  static int mwifiex_host_to_card_mp_aggr(struct mwifiex_adapter *adapter,
 		dev_dbg(adapter->dev, "data: %s: send aggr buffer: %d %d\n",
 			__func__,
 				card->mpa_tx.start_port, card->mpa_tx.ports);
-		mport = (adapter->ioport | 0x1000 |
(Continue reading)

Bing Zhao | 18 May 2013 02:54
Favicon

[PATCH v2 13/17] mwifiex: do port calculations separately

From: Amitkumar Karwar <akarwar@...>

This patch rearranges the code for better readability

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Yogesh Ashok Powar <yogeshp@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
v2: fix cmd53 single port address overwriting

 drivers/net/wireless/mwifiex/sdio.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index a18a5b4..99a508b 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
 <at>  <at>  -539,7 +539,7  <at>  <at>  static int mwifiex_get_rd_port(struct mwifiex_adapter *adapter, u8 *port)
  * increased (provided it does not reach the maximum limit, in which
  * case it is reset to 1)
  */
-static int mwifiex_get_wr_port_data(struct mwifiex_adapter *adapter, u8 *port)
+static int mwifiex_get_wr_port_data(struct mwifiex_adapter *adapter, u32 *port)
 {
 	struct sdio_mmc_card *card = adapter->card;
 	u32 wr_bitmap = card->mp_wr_bitmap;
 <at>  <at>  -1027,7 +1027,7  <at>  <at>  static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter,
 	s32 f_aggr_cur = 0;
 	struct sk_buff *skb_deaggr;
 	u32 pind;
(Continue reading)

Bing Zhao | 18 May 2013 02:53
Favicon

[PATCH v2 11/17] mwifiex: replace unnecessary u32 variables with u8 in sdio.c

From: Amitkumar Karwar <akarwar@...>

Some u32 variables in sdio.c are used to store/pass u8 values.
Replace them with u8 variables.

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
 drivers/net/wireless/mwifiex/sdio.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index 022e9fd..e4357a6 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
 <at>  <at>  -294,13 +294,13  <at>  <at>  static struct sdio_driver mwifiex_sdio = {
  * This function writes data into SDIO card register.
  */
 static int
-mwifiex_write_reg(struct mwifiex_adapter *adapter, u32 reg, u32 data)
+mwifiex_write_reg(struct mwifiex_adapter *adapter, u32 reg, u8 data)
 {
 	struct sdio_mmc_card *card = adapter->card;
 	int ret = -1;

 	sdio_claim_host(card->func);
-	sdio_writeb(card->func, (u8) data, reg, &ret);
+	sdio_writeb(card->func, data, reg, &ret);
 	sdio_release_host(card->func);

(Continue reading)

Bing Zhao | 18 May 2013 02:53
Favicon

[PATCH v2 12/17] mwifiex: code rearrangement in mwifiex_get_rd_port()

From: Amitkumar Karwar <akarwar@...>

Get rid of 'if else' usage by returning in 'if' block.
This improves readability by removing indentations.

Signed-off-by: Amitkumar Karwar <akarwar@...>
Signed-off-by: Bing Zhao <bzhao@...>
---
 drivers/net/wireless/mwifiex/sdio.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index e4357a6..a18a5b4 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
 <at>  <at>  -512,22 +512,23  <at>  <at>  static int mwifiex_get_rd_port(struct mwifiex_adapter *adapter, u8 *port)
 		*port = CTRL_PORT;
 		dev_dbg(adapter->dev, "data: port=%d mp_rd_bitmap=0x%08x\n",
 			*port, card->mp_rd_bitmap);
-	} else {
-		if (card->mp_rd_bitmap & (1 << card->curr_rd_port)) {
-			card->mp_rd_bitmap &= (u32)
-						(~(1 << card->curr_rd_port));
-			*port = card->curr_rd_port;
+		return 0;
+	}

-			if (++card->curr_rd_port == card->max_ports)
-				card->curr_rd_port = reg->start_rd_port;
-		} else {
(Continue reading)


Gmane