Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Michael Büsch @ 2010-06-25 13:22 UTC (permalink / raw)
  To: Larry Finger
  Cc: Joe Perches, John W. Linville, Stefano Brivio, linux-wireless,
	netdev, linux-kernel, zajec5, Gábor Stefanik
In-Reply-To: <4C241770.6030701@lwfinger.net>

On 06/25/2010 04:41 AM, Larry Finger wrote:
> On 06/24/2010 06:57 PM, Joe Perches wrote:
>> On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
>>> I never said that b43 is unmaintained. It is definitely getting much
>>> more than "odd fixes".
>>
>> If Stefano isn't maintaining it, who is?
>
> We are working on that.

Well, there are some developers working on the driver and there
are some developers that do not actively work on the driver but used
to work on it in the past (that includes me). Neither of them is an
official maintainer (yet). I used to be a maintainer, but I dropped
my official MAINTAINERS file entry, because I do not actively work
on b43 anymore. However, I still read the patches going into the driver
and comment on them as appropriate.
So well. I think b43 does not have a maintainer. But it's
not unmaintained. There are lots of people working on it. I don't think
an official maintainer is needed. Patches are sent directly to John
(the wireless maintainer) and the b43 development crew reviews them.
There's no problem with that.

-- 
Greetings Michael.

^ permalink raw reply

* Re: [PATCH 1/2] ath9k_htc: Add AP mode to supported modes
From: Sujith @ 2010-06-25  9:33 UTC (permalink / raw)
  To: Pavel Roskin; +Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org
In-Reply-To: <1276878831.5110.4.camel@mj>

Pavel Roskin wrote:
> On Thu, 2010-06-17 at 14:58 +0530, Sujith wrote:
> > Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
> > ---
> >  drivers/net/wireless/ath/ath9k/htc_drv_init.c |    3 ++-
> >  drivers/net/wireless/ath/ath9k/htc_drv_main.c |    3 +++
> >  2 files changed, 5 insertions(+), 1 deletions(-)
> 
> I confirm that the AP mode is working on TP-Link TL-WN422G (0cf3:1006).
> I tested both patched of the series at once.
> 
> That's great news!  TL-WN422G has an external antenna, connects over USB
> and supports AP mode.  Users keep asking about that combination of
> features.  Now we have an answer :-)
> 

Thanks for testing, the buffering patch is a bit buggy.
Will send out updated patches doing things properly.

Sujith

^ permalink raw reply

* [internal-ath9k-devel] [PATCH v2] ath9k: declare MODULE_FIRMWARE for ath9k_htc
From: Sujith @ 2010-06-25  8:40 UTC (permalink / raw)
  To: atheros.eng.projects.ath9k-devel@mailman.users.atheros.com
  Cc: linux-wireless@vger.kernel.org, John W. Linville
In-Reply-To: <1277319039-20837-1-git-send-email-linville@tuxdriver.com>

John W. Linville wrote:
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> ---
> v2 -> avoid duplicate strings for firmware names and simultaneously
> 	attract attention to MODULE_FIRMWARE section in the even of
> 	any updates
> 

Neat, thanks.

Sujith

^ permalink raw reply

* [PATCH] mac80211: auth retries if AP sends temporary deauth
From: Paul Stewart @ 2010-06-25  7:33 UTC (permalink / raw)
  To: linux-wireless

Hi folks.

If a STA gets sent a DEAUTH from an AP it is actively trying to
authenticate to, mac80211 currently shoots itself in the foot by
letting  ieee80211_sta_rx_mgmt() clean up state for the connection
(removing an entry from authtry_bsses[] in wireless/mlme.c),
but the retry loop contiinues, leading to a kernel warning but no
connection.

An AP is allowed by the spec to return DEAUTH as a result of a
temporary failure, one of which is "you are already authenticated
-- what are you talking about?"

The scenario I've been running into works like this: we try to auth
to an AP that still has state about us (we may have shut down
uncleanly without sending a DEAUTH).  So we send the AUTH, the server
replies with the DEAUTH above.  At this point we have a stalemate
-- the state for the AP is gone, but the STA retry mechanism is still
actively repeating AUTH attempts.  In fact, the "try 2" AUTH
succeeds, and the AP sends a successful AUTH response, but we don't
have the state anymore and cfg80211_send_rx_auth bombs out
with the "WARN(!done)" because the authtry_bsses entry was
deleted when we processed the DEAUTH. Therefore we don't proceed
to the association phase, and when the upper level decides to retry
with a directed probe and AUTH, the AP replies "you are already
authenticated", since from its perspective the STA has AUTHed
successfully on the previous attempt and so the cycle goes on.

There are two possible solutions that I thought of. One is that if
we get a DEAUTH as a response to an AUTH, we can not only drop
the bss state, but also kill the retry process. This slows down
the overall retry process since in most cases we need to do a
scan again as well, but then we don't perform a pointless second
(or third) AUTH. The second way is to recognize that we got
a DEAUTH while we wer AUTHing and suppress further processing,
letting the retry process continue as it has before.

The patch attached below goes the route of the latter approach.
It turns out to be a very small change. As an extension, I suppose
one could delve into the REASON code and determine whether the
failure is likely to be temporary, and choose from the above two
approaches. I considered that a bigger change, and didn't want
to go that far. Since the retry count is so small, I believe
ignoring the DEAUTH does very limited harm (hopefully it does,
because whether we like it or not, that is the current behavior).

--
Paul

--- a/compat-wireless/net/mac80211/work.c
+++ b/compat-wireless/net/mac80211/work.c
@@ -1030,6 +1030,23 @@ ieee80211_rx_result
ieee80211_work_rx_mgmt(struct ieee80211_sub_if_data *sdata,
 			skb_queue_tail(&local->work_skb_queue, skb);
 			ieee80211_queue_work(&local->hw, &local->work_work);
 			return RX_QUEUED;
+		case IEEE80211_STYPE_DEAUTH:
+			/*
+			 * If we get sent a DEAUTH while we are
+			 * actively trying to authenticate to this
+			 * station, we shoot ourselves in the foot if
+			 * we fall through using RX_CONTINUE and allow
+			 * the bss context to disappear
+			 * (ieee80211_sta_rx_mgmt()).  This is
+			 * especially true if the reason for the
+			 * DEAUTH was a negative but temporary direct
+			 * response to an AUTH attempt. Let the retry
+			 * mechanism run its course instead.
+			 */
+			if (wk->type == IEEE80211_WORK_AUTH) {
+				return RX_DROP_MONITOR;
+			}
+			break;
 		}
 	}

^ permalink raw reply

* Re: [PATCH 2/2] compat-wireless: activate iwmc3200wifi and WL1271_SDIO
From: Luis R. Rodriguez @ 2010-06-25  4:09 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1277413205-6753-2-git-send-email-hauke@hauke-m.de>

On Thu, Jun 24, 2010 at 2:00 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> netdev_ops for iwmc3200wifi is backported now.
> CONFIG_WL1271_SDIO does not depend on ARM any more in mainline, but it
> needs at least kernel 2.6.32.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

Thanks!! Applied both patches.

  Luis

^ permalink raw reply

* Re: [PATCH] compat: backport skb_queue_splice_init
From: Luis R. Rodriguez @ 2010-06-25  4:08 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1277413163-6718-1-git-send-email-hauke@hauke-m.de>

On Thu, Jun 24, 2010 at 1:59 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> This is needed by iwmc3200wifi.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

Applied, thanks!

  Luis

^ permalink raw reply

* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Larry Finger @ 2010-06-25  2:41 UTC (permalink / raw)
  To: Joe Perches
  Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
	linux-kernel, mb, zajec5, Gábor Stefanik,
	Rafał Miłecki
In-Reply-To: <1277423829.1654.111.camel@Joe-Laptop.home>

On 06/24/2010 06:57 PM, Joe Perches wrote:
> On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
>> I never said that b43 is unmaintained. It is definitely getting much
>> more than "odd fixes".
> 
> If Stefano isn't maintaining it, who is?

We are working on that.

Larry

^ permalink raw reply

* Re: ATH5k - Signal measurement reports wrong values - "calib" did not help
From: Bruno Randolf @ 2010-06-25  0:47 UTC (permalink / raw)
  To: Jaroslav Fojtik; +Cc: linux-wireless
In-Reply-To: <4C21CDD7.22303.238050@jafojtik.seznam.cz>

On Wed June 23 2010 18:03:19 Jaroslav Fojtik wrote:
> Dear Bruno & ATH5k developpers,
> 
> > > > it might be interresting to see what results you get from noise
> > > > calibration. you can enable calibration debugging with "echo calib >
> > > > /sys/kernel/debug/ath5k/phy0/debug"
> 
> Nothing changed after setting "calib" on.
> 
> ATH5k still reports bad values.
> 
> You could see a magenta line here:
>   http://78.108.103.11:11080/cgi-bin/rodga.cgi
> 
> regards
>    Jara

hey jara!

setting "calib" is not supposed to change the results, it would just show us 
debug messages in the kernel log (dmesg). have you tried the patch i sent 
later? that should fix it...

bruno

^ permalink raw reply

* Re: [stable] [PATCH] iwlwifi: recalculate average tpt if not current
From: Greg KH @ 2010-06-25  0:16 UTC (permalink / raw)
  To: John W. Linville
  Cc: Nils Radtke, reinette.chatre, linux-wireless, linux-kernel,
	stable
In-Reply-To: <20100604180328.GB2492@tuxdriver.com>

On Fri, Jun 04, 2010 at 02:03:28PM -0400, John W. Linville wrote:
> On Fri, Jun 04, 2010 at 06:32:18PM +0200, Nils Radtke wrote:
> >   Hi John,
> > 
> > http://marc.info/?l=linux-wireless&m=127317062320707&w=2 :
> > > > > The BUG_ON was introduced by:
> > > > > commit 3110bef78cb4282c58245bc8fd6d95d9ccb19749
> > > > > Author: Guy Cohen <guy.cohen@intel.com>
> > > > > Date:   Tue Sep 9 10:54:54 2008 +0800
> > > > > 
> > > > >     iwlwifi: Added support for 3 antennas
> > > > > 
> > > > > ... the portion adding the BUG_ON is reverted since we are encountering the error
> > > > > and BUG_ON was created with assumption that error is not encountered.
> > > > > 
> > > > > Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
> > > > > ---
> > > > 
> > > > I noticed this patch in your wireless-next-2.6 pull request. Since it is
> > > > addressing a system hang issue, could it perhaps be included in
> > > > wireless-2.6 also? I should have included the bug report reference for
> > > > this purpose, sorry ... it is
> > > > https://bugzilla.redhat.com/show_bug.cgi?id=588021
> > > 
> > > I didn't send it that way because a) that code has been there for a
> > > really long time; and b) the reporter couldn't reliably reproduce
> > > the bug and therefore can't reliably test the fix.  While I agree
> > > that the fix looks harmless, no update is zero-risk.
> > > 
> > > Can you reliably hit that code?  Has it been tested enough that we
> > > should risk holding-up 2.6.34's release for it?
> > I'm one of those _very reliably_ hitting this BUG. I can tell how 
> > annoying it is. I have to backport the patch w/ every kernel release
> > to be able to use the wireless link _at all_. So please consider
> > it as somewhat urgent to get the patch included. 
> > 
> > I'm still in contact w/ Reinette regularly to get those problems fixed.
> > It involves physically moving around the city for testing any modification
> > so this working is slowly processing as it takes every time an enormous 
> > amount of time to do so. Work in (slow) progress, but it's alive..
> > C.f. http://permalink.gmane.org/gmane.linux.kernel/992941
> > 
> > BTW, https://bugzilla.redhat.com/show_bug.cgi?id=588021 this isn't fixed.
> > Maybe RH did fix it. kernel.org sources haven't. This is a blocker ever 
> > since.
> 
> The patch is in linux-2.6.  I suppose it could go to stable@kernel.org.

Now queued up, thanks.

greg k-h

^ permalink raw reply

* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Joe Perches @ 2010-06-24 23:57 UTC (permalink / raw)
  To: Larry Finger
  Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
	linux-kernel, mb, zajec5
In-Reply-To: <4C23EFDE.3000702@lwfinger.net>

On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
> I never said that b43 is unmaintained. It is definitely getting much
> more than "odd fixes".

If Stefano isn't maintaining it, who is?



^ permalink raw reply

* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Larry Finger @ 2010-06-24 23:53 UTC (permalink / raw)
  To: Joe Perches
  Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
	linux-kernel, mb, zajec5
In-Reply-To: <1277423102.1654.107.camel@Joe-Laptop.home>

On 06/24/2010 06:45 PM, Joe Perches wrote:
> On Thu, 2010-06-24 at 14:56 -0500, Larry Finger wrote:
>> The primary arbitrator for patches to the subtle parts of b43 is Michael
>> Buesch; however, he is no longer an official MAINTAINER. I can ACK some
>> things; however, any changes that are associated with my reverse
>> engineering of the Broadcom drivers are off limits.
> 
> Add Stefano Brivio's name and email address to CREDITS
> Removed Stefano Brivio's from B43 MAINTAINERS
> Added the b43 development mailing lists
> Changed B43 status to "Odd Fixes"
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
>  CREDITS     |    4 ++++
>  MAINTAINERS |    5 +++--
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/CREDITS b/CREDITS
> index 72b4878..30215f0 100644
> --- a/CREDITS
> +++ b/CREDITS
> @@ -495,6 +495,10 @@ S: Kopmansg 2
>  S: 411 13  Goteborg
>  S: Sweden
>  
> +N: Stefano Brivio
> +E: stefano.brivio@polimi.it
> +D: B43 wireless driver
> +
>  N: Paul Bristow
>  E: paul@paulbristow.net
>  W: http://paulbristow.net/linux/idefloppy.html
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6d119c9..5bc296c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1225,16 +1225,17 @@ F:	include/net/ax25.h
>  F:	net/ax25/
>  
>  B43 WIRELESS DRIVER
> -M:	Stefano Brivio <stefano.brivio@polimi.it>
>  L:	linux-wireless@vger.kernel.org
> +L:	b43-dev@lists.infradead.org
>  W:	http://linuxwireless.org/en/users/Drivers/b43
> -S:	Maintained
> +S:	Odd Fixes
>  F:	drivers/net/wireless/b43/
>  
>  B43LEGACY WIRELESS DRIVER
>  M:	Larry Finger <Larry.Finger@lwfinger.net>
>  M:	Stefano Brivio <stefano.brivio@polimi.it>
>  L:	linux-wireless@vger.kernel.org
> +L:	b43-dev@lists.infradead.org
>  W:	http://linuxwireless.org/en/users/Drivers/b43
>  S:	Maintained
>  F:	drivers/net/wireless/b43legacy/

NACK. I never said that b43 is unmaintained. It is definitely getting much
more than "odd fixes".

Larry

^ permalink raw reply

* [PATCH net-next] MAINTAINERS: b43 updates
From: Joe Perches @ 2010-06-24 23:45 UTC (permalink / raw)
  To: Larry Finger
  Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
	linux-kernel, mb, zajec5
In-Reply-To: <4C23B877.4060209@lwfinger.net>

On Thu, 2010-06-24 at 14:56 -0500, Larry Finger wrote:
> The primary arbitrator for patches to the subtle parts of b43 is Michael
> Buesch; however, he is no longer an official MAINTAINER. I can ACK some
> things; however, any changes that are associated with my reverse
> engineering of the Broadcom drivers are off limits.

Add Stefano Brivio's name and email address to CREDITS
Removed Stefano Brivio's from B43 MAINTAINERS
Added the b43 development mailing lists
Changed B43 status to "Odd Fixes"

Signed-off-by: Joe Perches <joe@perches.com>
---
 CREDITS     |    4 ++++
 MAINTAINERS |    5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CREDITS b/CREDITS
index 72b4878..30215f0 100644
--- a/CREDITS
+++ b/CREDITS
@@ -495,6 +495,10 @@ S: Kopmansg 2
 S: 411 13  Goteborg
 S: Sweden
 
+N: Stefano Brivio
+E: stefano.brivio@polimi.it
+D: B43 wireless driver
+
 N: Paul Bristow
 E: paul@paulbristow.net
 W: http://paulbristow.net/linux/idefloppy.html
diff --git a/MAINTAINERS b/MAINTAINERS
index 6d119c9..5bc296c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1225,16 +1225,17 @@ F:	include/net/ax25.h
 F:	net/ax25/
 
 B43 WIRELESS DRIVER
-M:	Stefano Brivio <stefano.brivio@polimi.it>
 L:	linux-wireless@vger.kernel.org
+L:	b43-dev@lists.infradead.org
 W:	http://linuxwireless.org/en/users/Drivers/b43
-S:	Maintained
+S:	Odd Fixes
 F:	drivers/net/wireless/b43/
 
 B43LEGACY WIRELESS DRIVER
 M:	Larry Finger <Larry.Finger@lwfinger.net>
 M:	Stefano Brivio <stefano.brivio@polimi.it>
 L:	linux-wireless@vger.kernel.org
+L:	b43-dev@lists.infradead.org
 W:	http://linuxwireless.org/en/users/Drivers/b43
 S:	Maintained
 F:	drivers/net/wireless/b43legacy/



^ permalink raw reply related

* [PATCH] mac80211: fix the for_each_sta_info macro
From: Felix Fietkau @ 2010-06-24 23:44 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, John W. Linville

Because of an ambiguity in the for_each_sta_info macro, it can
currently only be used if the third parameter is set to 'sta'.
Fix this by renaming the parameter to '_sta'.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -427,20 +427,20 @@ void for_each_sta_info_type_check(struct ieee80211_local *local,
 {
 }
 
-#define for_each_sta_info(local, _addr, sta, nxt) 			\
+#define for_each_sta_info(local, _addr, _sta, nxt) 			\
 	for (	/* initialise loop */					\
-		sta = rcu_dereference(local->sta_hash[STA_HASH(_addr)]),\
-		nxt = sta ? rcu_dereference(sta->hnext) : NULL;		\
+		_sta = rcu_dereference(local->sta_hash[STA_HASH(_addr)]),\
+		nxt = _sta ? rcu_dereference(_sta->hnext) : NULL;	\
 		/* typecheck */						\
-		for_each_sta_info_type_check(local, (_addr), sta, nxt),	\
+		for_each_sta_info_type_check(local, (_addr), _sta, nxt),\
 		/* continue condition */				\
-		sta;							\
+		_sta;							\
 		/* advance loop */					\
-		sta = nxt,						\
-		nxt = sta ? rcu_dereference(sta->hnext) : NULL		\
+		_sta = nxt,						\
+		nxt = _sta ? rcu_dereference(_sta->hnext) : NULL	\
 	     )								\
 	/* compare address and run code only if it matches */		\
-	if (memcmp(sta->sta.addr, (_addr), ETH_ALEN) == 0)
+	if (memcmp(_sta->sta.addr, (_addr), ETH_ALEN) == 0)
 
 /*
  * Get STA info by index, BROKEN!

^ permalink raw reply

* Re: [PATCH 2/2] wl1251: fix ELP_CTRL register reads
From: Grazvydas Ignotas @ 2010-06-24 23:34 UTC (permalink / raw)
  To: Denis 'GNUtoo' Carikli
  Cc: Bob Copeland, Kalle Valo, John W.Linville, linux-wireless
In-Reply-To: <1277420940.28625.30.camel@gnutoo-laptop>

> I've changed that struct to wl12xx_platform_Data and added the irq
> int,and I've still the following errors:
> [  541.676849] wl1251: ERROR sdio_writeb failed (-84)
> [  542.006378] mmc0: Command timeout
> [  542.011444] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [  543.016357] mmc0: Command CRC error
> [  543.016418] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [  544.026367] mmc0: Command timeout
> [  544.031433] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [  545.036376] mmc0: Command CRC error

Has powersaving ever worked on your device with this driver? It does
work fine on pandora (OMAP3).

^ permalink raw reply

* [PATCH] ath9k: fix retry count for A-MPDU rate control status reports
From: Felix Fietkau @ 2010-06-24 23:26 UTC (permalink / raw)
  To: linux-wireless; +Cc: Luis R. Rodriguez, John W. Linville, Björn Smedman

The 'bf_retries' field of the ath_buf structure was used for both
software retries (AMPDU subframes) and hardware retries (legacy
frames). This led to a wrong retry count being reported for the A-MPDU
rate control stats.
This patch changes the code to no longer use bf_retries for reporting
retry counts, but instead always using the real on-chip retry count
from the ath_tx_status.
Additionally, if the first subframe of an A-MPDU was not acked, the tx
status report is submitted along with the first acked subframe, which
may not contain the correct rates in the tx info.
This is easily corrected by saving the tx rate info before looping over
subframes, and then copying it back once the A-MPDU status report is
submitted.
In my tests this change improves throughput visibly.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Reported-by: Björn Smedman <bjorn.smedman@venatech.se>
Cc: stable@kernel.org
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -328,6 +328,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
 	u32 ba[WME_BA_BMP_SIZE >> 5];
 	int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0;
 	bool rc_update = true;
+	struct ieee80211_tx_rate rates[4];
 
 	skb = bf->bf_mpdu;
 	hdr = (struct ieee80211_hdr *)skb->data;
@@ -335,6 +336,8 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
 	tx_info = IEEE80211_SKB_CB(skb);
 	hw = bf->aphy->hw;
 
+	memcpy(rates, tx_info->control.rates, sizeof(rates));
+
 	rcu_read_lock();
 
 	/* XXX: use ieee80211_find_sta! */
@@ -375,6 +378,9 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
 		txfail = txpending = 0;
 		bf_next = bf->bf_next;
 
+		skb = bf->bf_mpdu;
+		tx_info = IEEE80211_SKB_CB(skb);
+
 		if (ATH_BA_ISSET(ba, ATH_BA_INDEX(seq_st, bf->bf_seqno))) {
 			/* transmit completion, subframe is
 			 * acked by block ack */
@@ -428,6 +434,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
 			spin_unlock_bh(&txq->axq_lock);
 
 			if (rc_update && (acked_cnt == 1 || txfail_cnt == 1)) {
+				memcpy(tx_info->control.rates, rates, sizeof(rates));
 				ath_tx_rc_status(bf, ts, nbad, txok, true);
 				rc_update = false;
 			} else {
@@ -2033,7 +2040,7 @@ static void ath_tx_rc_status(struct ath_buf *bf, struct ath_tx_status *ts,
 		tx_info->status.rates[i].idx = -1;
 	}
 
-	tx_info->status.rates[tx_rateindex].count = bf->bf_retries + 1;
+	tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;
 }
 
 static void ath_wake_mac80211_queue(struct ath_softc *sc, struct ath_txq *txq)
@@ -2144,7 +2151,6 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
 			 * This frame is sent out as a single frame.
 			 * Use hardware retry status for this frame.
 			 */
-			bf->bf_retries = ts.ts_longretry;
 			if (ts.ts_status & ATH9K_TXERR_XRETRY)
 				bf->bf_state.bf_type |= BUF_XRETRY;
 			ath_tx_rc_status(bf, &ts, 0, txok, true);
@@ -2274,7 +2280,6 @@ void ath_tx_edma_tasklet(struct ath_softc *sc)
 		}
 
 		if (!bf_isampdu(bf)) {
-			bf->bf_retries = txs.ts_longretry;
 			if (txs.ts_status & ATH9K_TXERR_XRETRY)
 				bf->bf_state.bf_type |= BUF_XRETRY;
 			ath_tx_rc_status(bf, &txs, 0, txok, true);


^ permalink raw reply

* Re: [PATCH 2/2] wl1251: fix ELP_CTRL register reads
From: Denis 'GNUtoo' Carikli @ 2010-06-24 23:09 UTC (permalink / raw)
  To: Grazvydas Ignotas
  Cc: Bob Copeland, Kalle Valo, John W.Linville, linux-wireless
In-Reply-To: <1277249607.2233.270.camel@gnutoo-laptop>

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

On Wed, 2010-06-23 at 01:33 +0200, Denis 'GNUtoo' Carikli wrote:
> On Tue, 2010-06-22 at 01:48 +0300, Grazvydas Ignotas wrote:
> > >> Probably not relevant to power saving, but:
> > >>
> > >> Are you using the dedicated irq line or sdio interrupt?
> > >> It makes a big difference in overall throughput to use
> > >> the former.
> > > I don't know. what should I grep for?
> > 
> > It might actually be related.. Try adding this to your board file to
> > enable GPIO irq:
> > 
> > static void wl1251_set_power(bool enable)
> > {
> > }
> > 
> > static struct wl12xx_platform_data wl1251_pdata = {
> >         .set_power      = wl1251_set_power,
> > };
> > 
> > static struct platform_device wl1251_data = {
> >         .name           = "wl1251_data",
> >         .id             = -1,
> >         .dev            = {
> >                 .platform_data  = &wl1251_pdata,
> >         },
> > };
> > 
> > .. then from some init function:
> > 
> > // WIFI_IRQ_GPIO is the GPIO number connected to wl1251 irq line
> > wl1251_pdata.irq = gpio_to_irq(WIFI_IRQ_GPIO);
> > platform_device_register(&wl1251_pdata);
> Thanks a lot for the infos,they were really helpfull.
> 
> I've applied that patch(as it was not for submitting,just for reading I
> didn't bother sending with git-send-email): 
> Index: sources/arch/arm/mach-msm/board-trout.c
> ===================================================================
> --- sources.orig/arch/arm/mach-msm/board-trout.c	2010-06-23
> 00:41:54.601288614 +0200
> +++ sources/arch/arm/mach-msm/board-trout.c	2010-06-23
> 00:43:59.893158944 +0200
> @@ -52,6 +52,7 @@
>  #include <asm/mach/mmc.h>
>  #include <linux/mmc/sdio_ids.h>
>  #include <linux/msm_audio.h>
> +#include <linux/spi/wl12xx.h>
>  
>  #include "board-trout.h"
>  
> @@ -363,6 +364,17 @@
>  	},
>  };
>  
> +struct wl12xx_platform_data wl12xx_data = {
> +};
> +
> +static struct platform_device  wl12xx = {
> +	.name		= "wl1251_data",
> +	.id		= -1,
> +	.dev		= {
> +		.platform_data = &wl12xx_data,
> +	},
> +};
> +
>  #ifdef CONFIG_HTC_HEADSET
>  static void h2w_config_cpld(int route)
>  {
> @@ -650,6 +662,7 @@
>  	&trout_pwr_sink,
>  #endif
>  	&trout_snd,
> +	&wl12xx,
>  };
>  
>  extern struct sys_timer msm_timer;
> @@ -745,6 +758,7 @@
>  
>  static void __init config_gpios(void)
>  {
> +	wl12xx_data.irq = gpio_to_irq(29);
>  	config_gpio_table(gpio_table, ARRAY_SIZE(gpio_table));
>  	config_camera_off_gpios();
>  }
> Index: sources/include/linux/spi/wl12xx.h
> ===================================================================
> --- sources.orig/include/linux/spi/wl12xx.h	2010-06-23
> 00:42:03.641283312 +0200
> +++ sources/include/linux/spi/wl12xx.h	2010-06-23 00:42:48.103178185
> +0200
> @@ -26,6 +26,7 @@
>  
>  struct wl12xx_platform_data {
>  	void (*set_power)(bool enable);
> +	int irq;
>  };
>  
>  #endif
> 
> The patch was made from someone in irc and modified by me later.
> 
> Then I load the wifi as usual:
> modprobe wl1251_sdio #it doesn't crash
> modprobe msm_wifi
> the modprobe msm_wifi gives the following result:
> [ 1366.500427] wifi probe start
> [ 1366.500457] trout_wifi_power: 1
> [ 1366.927185] trout_wifi_reset: 0
> [ 1367.030944] trout_wifi_set_carddetect: 1
> [ 1367.030975] mmc0: card_present 1
> [ 1367.030975] mmc0: Slot status change detected (0 -> 1)
> [ 1367.031036] wifi probe done
> And then I've an invisible crash/kernel panic which result in the
> machine lockup and then reboot(so it should be a kernel panic).
> Note that I've no serial yet(I think I should really get a serial cable
> for this machine)
> 
> msm_wifi comes from here:
> http://bobcopeland.com/srcs/android/msm_wifi.patch
> 
> I had already some wifi structures which may have conflicted:
> 
> struct wifi_platform_data trout_wifi_control = {
> 	.set_power		= trout_wifi_power,
> 	.set_reset		= trout_wifi_reset,
> 	.set_carddetect		= trout_wifi_set_carddetect,
> #ifdef CONFIG_WIFI_MEM_PREALLOC
> 	.mem_prealloc		= trout_wifi_mem_prealloc,
> #else
> 	.mem_prealloc		= NULL,
> #endif	
> };
I've changed that struct to wl12xx_platform_Data and added the irq
int,and I've still the following errors:
[  541.676849] wl1251: ERROR sdio_writeb failed (-84)
[  542.006378] mmc0: Command timeout
[  542.011444] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  543.016357] mmc0: Command CRC error
[  543.016418] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[  544.026367] mmc0: Command timeout
[  544.031433] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  545.036376] mmc0: Command CRC error
[  545.036437] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[  546.066345] mmc0: Command timeout
[  546.071411] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  547.076354] mmc0: Command CRC error
[  547.076416] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[  548.106384] mmc0: Command timeout
[  548.111450] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  548.706665] mmc0: Command CRC error
[  548.706726] wl1251: ERROR sdio_writeb failed (-84)
[  549.136383] mmc0: Command timeout
[  549.141479] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  549.676635] mmc0: Command CRC error
[  549.676696] wl1251: ERROR sdio_writeb failed (-84)
[  550.166381] mmc0: Command timeout
[  550.171447] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[  550.676269] wlan0: no IPv6 routers present
[  551.176361] mmc0: Command CRC error
[  551.176422] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[  552.186340] mmc0: Command timeout

The patch is attached.

Denis.


[-- Attachment #2: cleaner_wifi_patch_quilt.patch --]
[-- Type: text/x-patch, Size: 4876 bytes --]

Index: sources/arch/arm/mach-msm/board-trout-wifi.c
===================================================================
--- sources.orig/arch/arm/mach-msm/board-trout-wifi.c	2010-06-24 23:58:13.194099802 +0200
+++ sources/arch/arm/mach-msm/board-trout-wifi.c	2010-06-24 23:58:21.385931197 +0200
@@ -20,7 +20,7 @@
 #include <linux/platform_device.h>
 #include <linux/vmalloc.h>
 #include <linux/err.h>
-#include <linux/wifi_tiwlan.h>
+#include <linux/spi/wl12xx.h>
 
 extern int trout_wifi_set_carddetect(int val);
 extern int trout_wifi_power(int on);
@@ -60,7 +60,7 @@
 }
 #endif
 
-struct wifi_platform_data trout_wifi_control = {
+struct wl12xx_platform_data trout_wifi_control = {
 	.set_power		= trout_wifi_power,
 	.set_reset		= trout_wifi_reset,
 	.set_carddetect		= trout_wifi_set_carddetect,
Index: sources/arch/arm/mach-msm/board-trout.c
===================================================================
--- sources.orig/arch/arm/mach-msm/board-trout.c	2010-06-24 23:58:13.234055563 +0200
+++ sources/arch/arm/mach-msm/board-trout.c	2010-06-25 00:40:37.324053664 +0200
@@ -66,7 +66,7 @@
 #include <mach/htc_headset.h>
 #endif
 #ifdef CONFIG_WIFI_CONTROL_FUNC
-#include <linux/wifi_tiwlan.h>
+#include <linux/spi/wl12xx.h>
 #endif
 
 #include "proc_comm.h"
@@ -80,7 +80,7 @@
 #ifdef CONFIG_WIFI_MEM_PREALLOC
 extern int trout_init_wifi_mem(void);
 #endif
-extern struct wifi_platform_data trout_wifi_control;
+extern struct wl12xx_platform_data trout_wifi_control;
 #endif
 
 struct trout_axis_info {
@@ -545,6 +545,28 @@
 	.ram_console_size = MSM_RAM_CONSOLE_SIZE,
 };
 
+
+static void trout_wl1251_init(void)
+{
+	int ret;
+
+	ret = gpio_request(TROUT_WIFI_IRQ_GPIO, "wl1251 irq");
+	if (ret < 0)
+		goto fail_irq;
+
+	ret = gpio_direction_input(TROUT_WIFI_IRQ_GPIO);
+	if (ret < 0)
+		goto fail_irq;
+
+	trout_wifi_control.irq = gpio_to_irq(TROUT_WIFI_IRQ_GPIO);
+	if (trout_wifi_control.irq < 0)
+		goto fail_irq;
+
+	return;
+
+fail_irq:
+	gpio_free(TROUT_WIFI_IRQ_GPIO);
+}
 #ifdef CONFIG_WIFI_CONTROL_FUNC
 static struct platform_device trout_wifi = {
 	.name		= "msm_wifi",
@@ -823,6 +845,7 @@
 
 	/* SD card door should wake the device */
 	set_irq_wake(TROUT_GPIO_TO_INT(TROUT_GPIO_SD_DOOR_N), 1);
+	trout_wl1251_init();
 }
 
 static struct map_desc trout_io_desc[] __initdata = {
Index: sources/arch/arm/mach-msm/board-trout.h
===================================================================
--- sources.orig/arch/arm/mach-msm/board-trout.h	2010-06-24 23:58:13.294049700 +0200
+++ sources/arch/arm/mach-msm/board-trout.h	2010-06-24 23:58:21.385931197 +0200
@@ -74,6 +74,7 @@
 
 #define TROUT_GPIO_HAPTIC_PWM               (28)
 #define TROUT_GPIO_PS_HOLD                  (25)
+#define TROUT_WIFI_IRQ_GPIO	            (29)
 
 #define TROUT_GPIO_MISC2_BASE               (TROUT_GPIO_START + 0x00)
 #define TROUT_GPIO_MISC3_BASE               (TROUT_GPIO_START + 0x08)
Index: sources/arch/arm/mach-msm/msm_wifi.c
===================================================================
--- sources.orig/arch/arm/mach-msm/msm_wifi.c	2010-06-24 23:58:13.344052459 +0200
+++ sources/arch/arm/mach-msm/msm_wifi.c	2010-06-24 23:58:21.385931197 +0200
@@ -18,12 +18,12 @@
  * Copyright (C) 2008 Google Inc
  */
 #include <linux/platform_device.h>
-#include <linux/wifi_tiwlan.h>
+#include <linux/spi/wl12xx.h>
 
 static int wifi_probe(struct platform_device *pdev)
 {
-	struct wifi_platform_data *wifi_ctrl =
-		(struct wifi_platform_data *)(pdev->dev.platform_data);
+	struct wl12xx_platform_data *wifi_ctrl =
+		(struct wl12xx_platform_data *)(pdev->dev.platform_data);
 
 	printk(KERN_DEBUG "wifi probe start\n");
 
@@ -43,8 +43,8 @@
 
 static int wifi_remove(struct platform_device *pdev)
 {
-	struct wifi_platform_data *wifi_ctrl =
-		(struct wifi_platform_data *)(pdev->dev.platform_data);
+	struct wl12xx_platform_data *wifi_ctrl =
+		(struct w12xx_platform_data *)(pdev->dev.platform_data);
 
 	printk(KERN_DEBUG "wifi remove start\n");
 	if (!wifi_ctrl)
Index: sources/include/linux/spi/wl12xx.h
===================================================================
--- sources.orig/include/linux/spi/wl12xx.h	2010-06-24 23:58:13.404053597 +0200
+++ sources/include/linux/spi/wl12xx.h	2010-06-24 23:58:21.385931197 +0200
@@ -24,8 +24,19 @@
 #ifndef _LINUX_SPI_WL12XX_H
 #define _LINUX_SPI_WL12XX_H
 
+#define WMPA_NUMBER_OF_SECTIONS	3
+#define WMPA_NUMBER_OF_BUFFERS	160
+#define WMPA_SECTION_HEADER	24
+#define WMPA_SECTION_SIZE_0	(WMPA_NUMBER_OF_BUFFERS * 64)
+#define WMPA_SECTION_SIZE_1	(WMPA_NUMBER_OF_BUFFERS * 256)
+#define WMPA_SECTION_SIZE_2	(WMPA_NUMBER_OF_BUFFERS * 2048)
+
 struct wl12xx_platform_data {
-	void (*set_power)(bool enable);
+        int (*set_power)(bool enable);
+        int (*set_reset)(bool enable);
+        int (*set_carddetect)(bool enable);
+	void *(*mem_prealloc)(int section, unsigned long size);
+	int irq;
 };
 
 #endif

^ permalink raw reply

* Re: Problems connectring to an AP with Acer Aspire Revo
From: reinette chatre @ 2010-06-24 21:57 UTC (permalink / raw)
  To: Johannes Berg; +Cc: Christian P. Schmidt, linux-wireless@vger.kernel.org
In-Reply-To: <1275669638.2091.34633.camel@rchatre-DESK>

On Fri, 2010-06-04 at 09:40 -0700, reinette chatre wrote:
> On Thu, 2010-06-03 at 23:48 -0700, Johannes Berg wrote:
> > On Thu, 2010-06-03 at 17:56 +0200, Christian P. Schmidt wrote:
> > 
> > > > Maybe try the rfkill tool:
> > > > http://wireless.kernel.org/en/users/Documentation/rfkill
> > > 
> > > Yes, it was the rfkill tool that caused my attempts to fail. However,
> > > this didn't change my association attempt problems.
> > > I also took my time to look at the PCIe port - steady 3.3V on the RFKILL
> > > pin, which means "no RFKILL".
> > > 
> > > Any further ideas?
> > 
> > Unfortunately not. It would seem that something is causing your frames
> > not to be transmitted correctly, but I see no reason for that right now.
> 
> The logs provided contains a lot of useful information. Among this is
> that the device is unable to transmit data with the firmware returning a
> "TX_LOCKED" status. From what I understand this is a regulatory check
> failure based on the channel type, which does not make sense in this
> regard since from what I can tell channel 8, which is an active channel,
> is used. I passed this question to our firmware folks and now waiting
> for an answer.

Unfortunately, since the firmware does not actually assert, the firmware
folks are unable to dig into this. I tried to take a second look at your
logs and one thing that I was able to see that is interesting is that,
when scanning, the device picks up very few frames that are good. I see
that there were five scans, none of which contained a since good frame
on 5GHz. On 2.4GHz there was a bit better success, but not consistent.
In the five scans there was the following on 2.4GHz:
1st scan: one good frame each on channels 5, 7, and 8.
2st scan: one good frame on channel 1
3st scan: one good frame each on channels 2, 7, and 9.
4st scan: one good frame each on channels 3, 5, 7, and 8.
5st scan: one good frame each on channels 1, 8, and 9.

If you want to check on this yourself, take a look at the lines:
[223263.179493] ieee80211 phy2: I iwl_rx_scan_results_notif Scan ch.res:
2 [802.11bg] (TSF: 0x00000000:05627B90) - 1 elapsed=33837 usec

The number before "elapsed" indicates the number of good frames seen
while scanning the channel. In the above example there was one.

This seems to indicate that there is some trouble on this platform ...
and makes me start thinking that this card may not work well on this
platform.

Some things you can try:
- are any APs on A band? If not, can you try to activate an AP on A band
to see if you have better success there?
- monitor the RX statistics ...
(/sys/kernel/debug/ieee80211/phy0/iwlagn/debug/ucode_rx_stats) to see if
there is an issue with crc checks and perhaps false alarms and plcp
also.
- something that you could try ... not sure how much it will help if you
are having noise issues ... is to vary how you scan. Since you know
which AP you are associating with, perhaps you can try to limit your
scan to that channel ... and also try passive instead of active. This
can be done with iw.

These are the only things I can think of.

Reinette




^ permalink raw reply

* [PATCH 1/2] compat-wireless: refresh patches
From: Hauke Mehrtens @ 2010-06-24 21:00 UTC (permalink / raw)
  To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens

refresh patches and backport netdev_ops for iwmc3200wifi

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 crap/0002-ath9k-Add-pktlog-support.patch |   20 ++++++++++----------
 patches/01-netdev.patch                  |   26 ++++++++++++++------------
 patches/03-rfkill.patch                  |    2 +-
 patches/05-usb.patch                     |    2 +-
 patches/06-header-changes.patch          |   12 ------------
 patches/08-rename-iwl4965-config.patch   |    4 ++--
 patches/19-kfifo.patch                   |    8 ++++----
 patches/25-multicast-list_head.patch     |    4 ++--
 patches/28-pm-qos-params.patch           |    2 +-
 9 files changed, 35 insertions(+), 45 deletions(-)

diff --git a/crap/0002-ath9k-Add-pktlog-support.patch b/crap/0002-ath9k-Add-pktlog-support.patch
index 2649ee3..b64715f 100644
--- a/crap/0002-ath9k-Add-pktlog-support.patch
+++ b/crap/0002-ath9k-Add-pktlog-support.patch
@@ -105,15 +105,15 @@ Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
  
  /*
   * Header for the ath9k.ko driver core *only* -- hw code nor any other driver
-@@ -516,6 +517,7 @@ void ath_deinit_leds(struct ath_softc *s
- #define SC_OP_TSF_RESET              BIT(11)
+@@ -517,6 +518,7 @@ void ath_deinit_leds(struct ath_softc *s
  #define SC_OP_BT_PRIORITY_DETECTED   BIT(12)
  #define SC_OP_BT_SCAN		     BIT(13)
-+#define SC_OP_PKTLOGGING	     BIT(14)
+ #define SC_OP_ANI_RUN		     BIT(14)
++#define SC_OP_PKTLOGGING	     BIT(15)
  
  /* Powersave flags */
  #define PS_WAIT_FOR_BEACON        BIT(0)
-@@ -594,6 +596,10 @@ struct ath_softc {
+@@ -595,6 +597,10 @@ struct ath_softc {
  #ifdef CONFIG_ATH9K_DEBUGFS
  	struct ath9k_debug debug;
  #endif
@@ -161,7 +161,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
  static inline void ath9k_hw_set11n_txdesc(struct ath_hw *ah, void *ds,
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2396,7 +2396,7 @@ void ath9k_hw_setrxfilter(struct ath_hw 
+@@ -2417,7 +2417,7 @@ void ath9k_hw_setrxfilter(struct ath_hw 
  		phybits |= AR_PHY_ERR_RADAR;
  	if (bits & ATH9K_RX_FILTER_PHYERR)
  		phybits |= AR_PHY_ERR_OFDM_TIMING | AR_PHY_ERR_CCK_TIMING;
@@ -172,7 +172,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
  		REG_WRITE(ah, AR_RXCFG,
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -602,7 +602,7 @@ struct ath_hw_ops {
+@@ -603,7 +603,7 @@ struct ath_hw_ops {
  			    const void *ds0, dma_addr_t buf_addr,
  			    unsigned int qcu);
  	int (*proc_txdesc)(struct ath_hw *ah, void *ds,
@@ -181,10 +181,10 @@ Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
  	void (*set11n_txdesc)(struct ath_hw *ah, void *ds,
  			      u32 pktLen, enum ath9k_pkt_type type,
  			      u32 txPower, u32 keyIx,
-@@ -819,6 +819,8 @@ struct ath_hw {
- 
- 	u32 paprd_gain_table_entries[PAPRD_GAIN_TABLE_ENTRIES];
- 	u8 paprd_gain_table_index[PAPRD_GAIN_TABLE_ENTRIES];
+@@ -826,6 +826,8 @@ struct ath_hw {
+ 	 * this register when in sleep states.
+ 	 */
+ 	u32 WARegVal;
 +
 +	bool is_pkt_logging;
  };
diff --git a/patches/01-netdev.patch b/patches/01-netdev.patch
index 98cb477..32afc2f 100644
--- a/patches/01-netdev.patch
+++ b/patches/01-netdev.patch
@@ -215,9 +215,20 @@ without creating a headache on maintenance of the pathes.
  	priv->wireless_data.spy_data = &priv->ieee->spy_data;
  	net_dev->wireless_data = &priv->wireless_data;
  	net_dev->wireless_handlers = &ipw_wx_handler_def;
+--- a/drivers/net/wireless/iwmc3200wifi/netdev.c
++++ b/drivers/net/wireless/iwmc3200wifi/netdev.c
+@@ -129,7 +129,7 @@ void *iwm_if_alloc(int sizeof_bus, struc
+ 		goto out_priv;
+ 	}
+ 
+-	ndev->netdev_ops = &iwm_netdev_ops;
++	netdev_attach_ops(ndev, &iwm_netdev_ops);
+ 	ndev->ieee80211_ptr = wdev;
+ 	SET_NETDEV_DEV(ndev, wiphy_dev(wdev->wiphy));
+ 	wdev->netdev = ndev;
 --- a/drivers/net/wireless/libertas/main.c
 +++ b/drivers/net/wireless/libertas/main.c
-@@ -968,7 +968,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -866,7 +866,7 @@ struct lbs_private *lbs_add_card(void *c
  	wdev->netdev = dev;
  	priv->dev = dev;
  
@@ -225,19 +236,10 @@ without creating a headache on maintenance of the pathes.
 +	netdev_attach_ops(dev, &lbs_netdev_ops);
  	dev->watchdog_timeo = 5 * HZ;
  	dev->ethtool_ops = &lbs_ethtool_ops;
- #ifdef	WIRELESS_EXT
-@@ -1304,7 +1304,7 @@ static int lbs_add_rtap(struct lbs_priva
- 
- 	memcpy(rtap_dev->dev_addr, priv->current_addr, ETH_ALEN);
- 	rtap_dev->type = ARPHRD_IEEE80211_RADIOTAP;
--	rtap_dev->netdev_ops = &rtap_netdev_ops;
-+	netdev_attach_ops(rtap_dev, &rtap_netdev_ops);
- 	rtap_dev->ml_priv = priv;
- 	SET_NETDEV_DEV(rtap_dev, priv->dev->dev.parent);
- 
+ 	dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
 --- a/drivers/net/wireless/libertas/mesh.c
 +++ b/drivers/net/wireless/libertas/mesh.c
-@@ -363,7 +363,7 @@ int lbs_add_mesh(struct lbs_private *pri
+@@ -364,7 +364,7 @@ int lbs_add_mesh(struct lbs_private *pri
  	mesh_dev->ml_priv = priv;
  	priv->mesh_dev = mesh_dev;
  
diff --git a/patches/03-rfkill.patch b/patches/03-rfkill.patch
index c7c242b..2ddf967 100644
--- a/patches/03-rfkill.patch
+++ b/patches/03-rfkill.patch
@@ -208,7 +208,7 @@ This would do the policing from within mac80211.
  #include <net/cfg80211.h>
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2171,7 +2171,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+@@ -2192,7 +2192,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
  
  	pCap->hw_caps |= ATH9K_HW_CAP_ENHANCEDPM;
  
diff --git a/patches/05-usb.patch b/patches/05-usb.patch
index 5d6fbda..a231b0f 100644
--- a/patches/05-usb.patch
+++ b/patches/05-usb.patch
@@ -14,7 +14,7 @@ USB opt soft_unbid was added as of 2.6.27.
  static int __init p54u_init(void)
 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c
 +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
-@@ -1030,7 +1030,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -1039,7 +1039,9 @@ static struct usb_driver ath9k_hif_usb_d
  	.reset_resume = ath9k_hif_usb_resume,
  #endif
  	.id_table = ath9k_hif_usb_ids,
diff --git a/patches/06-header-changes.patch b/patches/06-header-changes.patch
index b3c71fb..e0846f5 100644
--- a/patches/06-header-changes.patch
+++ b/patches/06-header-changes.patch
@@ -16,18 +16,6 @@ cases.
  
  struct b43_wldev;
  
---- a/drivers/net/wireless/libertas/assoc.c
-+++ b/drivers/net/wireless/libertas/assoc.c
-@@ -6,6 +6,9 @@
- #include <linux/if_arp.h>
- #include <linux/slab.h>
- #include <net/lib80211.h>
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
-+#include <asm/unaligned.h>
-+#endif
- 
- #include "assoc.h"
- #include "decl.h"
 --- a/drivers/net/wireless/wl12xx/wl1251_main.c
 +++ b/drivers/net/wireless/wl12xx/wl1251_main.c
 @@ -26,6 +26,9 @@
diff --git a/patches/08-rename-iwl4965-config.patch b/patches/08-rename-iwl4965-config.patch
index 1329994..681ff22 100644
--- a/patches/08-rename-iwl4965-config.patch
+++ b/patches/08-rename-iwl4965-config.patch
@@ -6,7 +6,7 @@ CONFIG_IWL4965 has to be set to y, to build correctly.
 --- a/drivers/net/wireless/iwlwifi/Makefile
 +++ b/drivers/net/wireless/iwlwifi/Makefile
 @@ -14,7 +14,7 @@ iwlagn-objs		+= iwl-agn-ucode.o iwl-agn-
- iwlagn-objs		+= iwl-agn-lib.o
+ iwlagn-objs		+= iwl-agn-lib.o iwl-agn-rx.o iwl-agn-calib.o
  iwlagn-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-agn-debugfs.o
  
 -iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
@@ -16,7 +16,7 @@ CONFIG_IWL4965 has to be set to y, to build correctly.
  iwlagn-$(CONFIG_IWL5000) += iwl-1000.o
 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c
 +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -4080,10 +4080,10 @@ static void __devexit iwl_pci_remove(str
+@@ -4079,10 +4079,10 @@ static void __devexit iwl_pci_remove(str
  
  /* Hardware specific file defines the PCI IDs table for that hardware module */
  static DEFINE_PCI_DEVICE_TABLE(iwl_hw_card_ids) = {
diff --git a/patches/19-kfifo.patch b/patches/19-kfifo.patch
index b957599..66a0287 100644
--- a/patches/19-kfifo.patch
+++ b/patches/19-kfifo.patch
@@ -3,7 +3,7 @@ not be backported easily with defines in the compat module.
 
 --- a/drivers/net/wireless/libertas/dev.h
 +++ b/drivers/net/wireless/libertas/dev.h
-@@ -125,7 +125,11 @@ struct lbs_private {
+@@ -126,7 +126,11 @@ struct lbs_private {
  	u32 resp_len[2];
  
  	/* Events sent from hardware to driver */
@@ -17,7 +17,7 @@ not be backported easily with defines in the compat module.
  	struct task_struct *main_thread;
 --- a/drivers/net/wireless/libertas/main.c
 +++ b/drivers/net/wireless/libertas/main.c
-@@ -887,8 +887,14 @@ static int lbs_init_adapter(struct lbs_p
+@@ -788,8 +788,14 @@ static int lbs_init_adapter(struct lbs_p
  	priv->resp_len[0] = priv->resp_len[1] = 0;
  
  	/* Create the event FIFO */
@@ -32,7 +32,7 @@ not be backported easily with defines in the compat module.
  		lbs_pr_err("Out of memory allocating event FIFO buffer\n");
  		goto out;
  	}
-@@ -904,7 +910,12 @@ static void lbs_free_adapter(struct lbs_
+@@ -805,7 +811,12 @@ static void lbs_free_adapter(struct lbs_
  	lbs_deb_enter(LBS_DEB_MAIN);
  
  	lbs_free_cmd_buffer(priv);
@@ -44,4 +44,4 @@ not be backported easily with defines in the compat module.
 +#endif
  	del_timer(&priv->command_timer);
  	del_timer(&priv->auto_deepsleep_timer);
- 	kfree(priv->networks);
+ 
diff --git a/patches/25-multicast-list_head.patch b/patches/25-multicast-list_head.patch
index d90e4b1..f7304cb 100644
--- a/patches/25-multicast-list_head.patch
+++ b/patches/25-multicast-list_head.patch
@@ -229,7 +229,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
  	return ((u64)(mfilt[1]) << 32) | mfilt[0];
 --- a/drivers/net/wireless/libertas/main.c
 +++ b/drivers/net/wireless/libertas/main.c
-@@ -328,18 +328,34 @@ static int lbs_add_mcast_addrs(struct cm
+@@ -247,18 +247,34 @@ static int lbs_add_mcast_addrs(struct cm
  	netif_addr_lock_bh(dev);
  	cnt = netdev_mc_count(dev);
  	netdev_for_each_mc_addr(ha, dev) {
@@ -576,7 +576,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
  	return hash.low | ((u64)hash.high << 32);
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -1686,7 +1686,11 @@ struct ieee80211_ops {
+@@ -1695,7 +1695,11 @@ struct ieee80211_ops {
  				 struct ieee80211_bss_conf *info,
  				 u32 changed);
  	u64 (*prepare_multicast)(struct ieee80211_hw *hw,
diff --git a/patches/28-pm-qos-params.patch b/patches/28-pm-qos-params.patch
index 20cbc28..204ade5 100644
--- a/patches/28-pm-qos-params.patch
+++ b/patches/28-pm-qos-params.patch
@@ -61,7 +61,7 @@
  module_init(ipw2100_init);
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
-@@ -556,7 +556,11 @@ void ieee80211_recalc_ps(struct ieee8021
+@@ -590,7 +590,11 @@ void ieee80211_recalc_ps(struct ieee8021
  		s32 beaconint_us;
  
  		if (latency < 0)
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 2/2] compat-wireless: activate iwmc3200wifi and WL1271_SDIO
From: Hauke Mehrtens @ 2010-06-24 21:00 UTC (permalink / raw)
  To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
In-Reply-To: <1277413205-6753-1-git-send-email-hauke@hauke-m.de>

netdev_ops for iwmc3200wifi is backported now.
CONFIG_WL1271_SDIO does not depend on ARM any more in mainline, but it
needs at least kernel 2.6.32.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 config.mk |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/config.mk b/config.mk
index 04a6f7e..e8ec458 100644
--- a/config.mk
+++ b/config.mk
@@ -433,7 +433,7 @@ CONFIG_SSB_SDIOHOST=y
 CONFIG_B43_SDIO=y
 CONFIG_WL1251_SDIO=m
 
-ifneq ($(CONFIG_ARM),)
+ifndef CONFIG_COMPAT_KERNEL_32
 CONFIG_WL1271_SDIO=m
 endif
 
@@ -445,12 +445,8 @@ CONFIG_LIBERTAS_SDIO=m
 NEED_LIBERTAS=y
 endif
 
-# Activate iwmc3200wifi support only on kernel >= 2.6.29.
-# iwmc3200wifi uses new netdev_ops api no supported by old kernel.
-ifndef CONFIG_COMPAT_KERNEL_29
 CONFIG_IWM=m
 # CONFIG_IWM_DEBUG=y
-endif
 
 endif # end of SDIO driver list
 
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH] compat: backport skb_queue_splice_init
From: Hauke Mehrtens @ 2010-06-24 20:59 UTC (permalink / raw)
  To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens

This is needed by iwmc3200wifi.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 include/linux/compat-2.6.28.h |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/include/linux/compat-2.6.28.h b/include/linux/compat-2.6.28.h
index 2cab320..7160548 100644
--- a/include/linux/compat-2.6.28.h
+++ b/include/linux/compat-2.6.28.h
@@ -147,6 +147,23 @@ static inline void skb_queue_splice(const struct sk_buff_head *list,
 }
 
 /**
+ *	skb_queue_splice - join two skb lists and reinitialise the emptied list
+ *	@list: the new list to add
+ *	@head: the place to add it in the first list
+ *
+ *	The list at @list is reinitialised
+ */
+static inline void skb_queue_splice_init(struct sk_buff_head *list,
+					 struct sk_buff_head *head)
+{
+	if (!skb_queue_empty(list)) {
+		__skb_queue_splice(list, (struct sk_buff *) head, head->next);
+		head->qlen += list->qlen;
+		__skb_queue_head_init(list);
+	}
+}
+
+/**
  *	skb_queue_splice_tail - join two skb lists and reinitialise the emptied list
  *	@list: the new list to add
  *	@head: the place to add it in the first list
-- 
1.7.0.4


^ permalink raw reply related

* Re: [PATCH 0/3] b43: logging cleanups
From: Larry Finger @ 2010-06-24 19:56 UTC (permalink / raw)
  To: Joe Perches
  Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
	linux-kernel, mb, zajec5
In-Reply-To: <1277408432.1654.80.camel@Joe-Laptop.home>

On 06/24/2010 02:40 PM, Joe Perches wrote:
> On Thu, 2010-06-24 at 14:53 -0400, John W. Linville wrote:
>> On Sat, Jun 19, 2010 at 04:30:08PM -0700, Joe Perches wrote:
>>> Just some small cleanups
>>> Joe Perches (3):
>>>   drivers/net/wireless/b43: Use local ratelimit_state
>>>   drivers/net/wireless/b43: Logging cleanups
>>>   drivers/net/wireless/b43: Rename b43_debug to b43_debugging
>> Any of the b43 guys want to express an opinion on these?
> 
> Stefano, are you active here?
> Your last ack for b43 was Feb 2008.
> There have been 400+ commits to b43 without your ack.
> 
> Should your name be moved from MAINTAINERS to CREDITS?
> 
> $ ./scripts/get_maintainer.pl --rolestats -f drivers/net/wireless/b43/
> Stefano Brivio <stefano.brivio@polimi.it> (maintainer:B43 WIRELESS DRIVER)
> "John W. Linville" <linville@tuxdriver.com> (maintainer:NETWORKING [WIREL...,commit_signer:204/240=85%)
> "Rafał Miłecki" <zajec5@gmail.com> (commit_signer:83/240=35%)
> "Gábor Stefanik" <netrolller.3d@gmail.com> (commit_signer:44/240=18%)
> Michael Buesch <mb@bu3sch.de> (commit_signer:39/240=16%)
> Larry Finger <Larry.Finger@lwfinger.net> (commit_signer:13/240=5%)
> linux-wireless@vger.kernel.org (open list:B43 WIRELESS DRIVER)
> netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
> linux-kernel@vger.kernel.org (open list)

The primary arbitrator for patches to the subtle parts of b43 is Michael
Buesch; however, he is no longer an official MAINTAINER. I can ACK some
things; however, any changes that are associated with my reverse
engineering of the Broadcom drivers are off limits.

Larry

^ permalink raw reply

* Re: [PATCH 0/3] b43: logging cleanups
From: Joe Perches @ 2010-06-24 19:40 UTC (permalink / raw)
  To: John W. Linville
  Cc: Stefano Brivio, linux-wireless, netdev, linux-kernel,
	Larry.Finger, mb, zajec5
In-Reply-To: <20100624185339.GC2368@tuxdriver.com>

On Thu, 2010-06-24 at 14:53 -0400, John W. Linville wrote:
> On Sat, Jun 19, 2010 at 04:30:08PM -0700, Joe Perches wrote:
> > Just some small cleanups
> > Joe Perches (3):
> >   drivers/net/wireless/b43: Use local ratelimit_state
> >   drivers/net/wireless/b43: Logging cleanups
> >   drivers/net/wireless/b43: Rename b43_debug to b43_debugging
> Any of the b43 guys want to express an opinion on these?

Stefano, are you active here?
Your last ack for b43 was Feb 2008.
There have been 400+ commits to b43 without your ack.

Should your name be moved from MAINTAINERS to CREDITS?

$ ./scripts/get_maintainer.pl --rolestats -f drivers/net/wireless/b43/
Stefano Brivio <stefano.brivio@polimi.it> (maintainer:B43 WIRELESS DRIVER)
"John W. Linville" <linville@tuxdriver.com> (maintainer:NETWORKING [WIREL...,commit_signer:204/240=85%)
"Rafał Miłecki" <zajec5@gmail.com> (commit_signer:83/240=35%)
"Gábor Stefanik" <netrolller.3d@gmail.com> (commit_signer:44/240=18%)
Michael Buesch <mb@bu3sch.de> (commit_signer:39/240=16%)
Larry Finger <Larry.Finger@lwfinger.net> (commit_signer:13/240=5%)
linux-wireless@vger.kernel.org (open list:B43 WIRELESS DRIVER)
netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
linux-kernel@vger.kernel.org (open list)



^ permalink raw reply

* Re: [PATCH 0/3] b43: logging cleanups
From: Larry Finger @ 2010-06-24 19:20 UTC (permalink / raw)
  To: John W. Linville
  Cc: Joe Perches, Stefano Brivio, linux-wireless, netdev, linux-kernel,
	mb, zajec5
In-Reply-To: <20100624185339.GC2368@tuxdriver.com>

On 06/24/2010 01:53 PM, John W. Linville wrote:
> On Sat, Jun 19, 2010 at 04:30:08PM -0700, Joe Perches wrote:
>> Just some small cleanups
>>
>> Joe Perches (3):
>>   drivers/net/wireless/b43: Use local ratelimit_state
>>   drivers/net/wireless/b43: Logging cleanups
>>   drivers/net/wireless/b43: Rename b43_debug to b43_debugging
> 
> Any of the b43 guys want to express an opinion on these?

The local ratelimit patch is OK. My personal opinion is that the others
are just churning the source for no real reason, but I have no major
objections.

Larry

^ permalink raw reply

* Compat-wireless release for 2010-06-24 is baked
From: Compat-wireless cronjob account @ 2010-06-24 19:03 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth

>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
   951149c..2e58c02  history    -> origin/history
 + fca5ab0...df17781 master     -> origin/master  (forced update)
 * [new tag]         next-20100624 -> next-20100624

compat-wireless code metrics

    494218 - Total upstream lines of code being pulled

^ permalink raw reply

* Re: [PATCH 0/3] b43: logging cleanups
From: John W. Linville @ 2010-06-24 18:53 UTC (permalink / raw)
  To: Joe Perches
  Cc: Stefano Brivio, linux-wireless, netdev, linux-kernel,
	Larry.Finger, mb, zajec5
In-Reply-To: <cover.1276988387.git.joe@perches.com>

On Sat, Jun 19, 2010 at 04:30:08PM -0700, Joe Perches wrote:
> Just some small cleanups
> 
> Joe Perches (3):
>   drivers/net/wireless/b43: Use local ratelimit_state
>   drivers/net/wireless/b43: Logging cleanups
>   drivers/net/wireless/b43: Rename b43_debug to b43_debugging

Any of the b43 guys want to express an opinion on these?

-- 
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


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