Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: Regulatory revamp status
From: Zefir Kurtisi @ 2011-09-30 12:52 UTC (permalink / raw)
  To: Adrian Chadd
  Cc: Luis R. Rodriguez, linux-wireless, Boris Presman, Assaf Azulay,
	Michael Green, David Quan, Kevin Hayes, Arun Venkataraman
In-Reply-To: <CAJ-VmokXUectieeOBJSMfuzzT94g7U=dqbPf-S1Oay292ur9yg@mail.gmail.com>

On 09/30/2011 01:21 PM, Adrian Chadd wrote:
> On 29 September 2011 20:46, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
> 
>> Really? Where would be 'there' countrycode-wise?
>>
>> That would definitely break today's CRDA capabilities :-\
> 
> I -think- one or both of ETSI/FCC have different CAC/NOL requirements
> for the channels which overlap the weather radars.
> At least when someone took FreeBSD to get DFS certified a while ago,
> the weather radar ranges were checked against a 30 minute CAC. :)
> 
> I think it's worth defining specific DFS parameters for each frequency
> range. That's what I'll be doing for FreeBSD when I revamp its
> net80211 regulatory database code.
> 
> 
> Adrian

I was assuming that weather radars will not be supported at all but the related channels be just disabled. It is practically impossible to assure a 99.99% detection probability (as required for ETSI 1.5.1), or? E.g. to detect ETSI radar pattern 1 (10 pulses), you basically need to treat any single detected pulse as radar event. Doable, but not very useful ;)


Zefir


^ permalink raw reply

* [PATCH 1/5] ath6kl: Fix sparse warning "symbol 'conn' shadows an earlier one"
From: Vasanthakumar Thiagarajan @ 2011-09-30 13:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/txrx.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/txrx.c b/drivers/net/wireless/ath/ath6kl/txrx.c
index a711707..bcf7b01 100644
--- a/drivers/net/wireless/ath/ath6kl/txrx.c
+++ b/drivers/net/wireless/ath/ath6kl/txrx.c
@@ -1235,7 +1235,6 @@ void ath6kl_rx(struct htc_target *target, struct htc_packet *packet)
 			 * frame to it on the air else send the
 			 * frame up the stack.
 			 */
-			struct ath6kl_sta *conn = NULL;
 			conn = ath6kl_find_sta(ar, datap->h_dest);
 
 			if (conn && ar->intra_bss) {
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 2/5] ath6kl: Replace spin_lock_irqsave with spin_lock_bh
From: Vasanthakumar Thiagarajan @ 2011-09-30 13:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless
In-Reply-To: <1317390526-3442-1-git-send-email-vthiagar@qca.qualcomm.com>

It is not necessary to use spinlock primitive to
protect data which is accessed in hard irq context as
nothing is running in hard irq with this driver. The
spinlock primitive meant to protect data in softirq
context is more appropriate.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/main.c |   17 ++++-------
 drivers/net/wireless/ath/ath6kl/sdio.c |   51 +++++++++++++------------------
 2 files changed, 27 insertions(+), 41 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/main.c b/drivers/net/wireless/ath/ath6kl/main.c
index 30b5a53..adb1635 100644
--- a/drivers/net/wireless/ath/ath6kl/main.c
+++ b/drivers/net/wireless/ath/ath6kl/main.c
@@ -1025,8 +1025,6 @@ void ath6kl_connect_event(struct ath6kl *ar, u16 channel, u8 *bssid,
 			  u8 assoc_req_len, u8 assoc_resp_len,
 			  u8 *assoc_info)
 {
-	unsigned long flags;
-
 	ath6kl_cfg80211_connect_event(ar, channel, bssid,
 				      listen_int, beacon_int,
 				      net_type, beacon_ie_len,
@@ -1043,11 +1041,11 @@ void ath6kl_connect_event(struct ath6kl *ar, u16 channel, u8 *bssid,
 	netif_wake_queue(ar->net_dev);
 
 	/* Update connect & link status atomically */
-	spin_lock_irqsave(&ar->lock, flags);
+	spin_lock_bh(&ar->lock);
 	set_bit(CONNECTED, &ar->flag);
 	clear_bit(CONNECT_PEND, &ar->flag);
 	netif_carrier_on(ar->net_dev);
-	spin_unlock_irqrestore(&ar->lock, flags);
+	spin_unlock_bh(&ar->lock);
 
 	aggr_reset_state(ar->aggr_cntxt);
 	ar->reconnect_flag = 0;
@@ -1330,8 +1328,6 @@ void ath6kl_disconnect_event(struct ath6kl *ar, u8 reason, u8 *bssid,
 			     u8 assoc_resp_len, u8 *assoc_info,
 			     u16 prot_reason_status)
 {
-	unsigned long flags;
-
 	if (ar->nw_type == AP_NETWORK) {
 		if (!ath6kl_remove_sta(ar, bssid, prot_reason_status))
 			return;
@@ -1390,10 +1386,10 @@ void ath6kl_disconnect_event(struct ath6kl *ar, u8 reason, u8 *bssid,
 	}
 
 	/* update connect & link status atomically */
-	spin_lock_irqsave(&ar->lock, flags);
+	spin_lock_bh(&ar->lock);
 	clear_bit(CONNECTED, &ar->flag);
 	netif_carrier_off(ar->net_dev);
-	spin_unlock_irqrestore(&ar->lock, flags);
+	spin_unlock_bh(&ar->lock);
 
 	if ((reason != CSERV_DISCONNECT) || (ar->reconnect_flag != 1))
 		ar->reconnect_flag = 0;
@@ -1411,9 +1407,8 @@ void ath6kl_disconnect_event(struct ath6kl *ar, u8 reason, u8 *bssid,
 static int ath6kl_open(struct net_device *dev)
 {
 	struct ath6kl *ar = ath6kl_priv(dev);
-	unsigned long flags;
 
-	spin_lock_irqsave(&ar->lock, flags);
+	spin_lock_bh(&ar->lock);
 
 	set_bit(WLAN_ENABLED, &ar->flag);
 
@@ -1423,7 +1418,7 @@ static int ath6kl_open(struct net_device *dev)
 	} else
 		netif_carrier_off(dev);
 
-	spin_unlock_irqrestore(&ar->lock, flags);
+	spin_unlock_bh(&ar->lock);
 
 	return 0;
 }
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index f1dc311..2dd7a88 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -166,12 +166,11 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
 static struct bus_request *ath6kl_sdio_alloc_busreq(struct ath6kl_sdio *ar_sdio)
 {
 	struct bus_request *bus_req;
-	unsigned long flag;
 
-	spin_lock_irqsave(&ar_sdio->lock, flag);
+	spin_lock_bh(&ar_sdio->lock);
 
 	if (list_empty(&ar_sdio->bus_req_freeq)) {
-		spin_unlock_irqrestore(&ar_sdio->lock, flag);
+		spin_unlock_bh(&ar_sdio->lock);
 		return NULL;
 	}
 
@@ -179,7 +178,7 @@ static struct bus_request *ath6kl_sdio_alloc_busreq(struct ath6kl_sdio *ar_sdio)
 				   struct bus_request, list);
 	list_del(&bus_req->list);
 
-	spin_unlock_irqrestore(&ar_sdio->lock, flag);
+	spin_unlock_bh(&ar_sdio->lock);
 	ath6kl_dbg(ATH6KL_DBG_SCATTER, "%s: bus request 0x%p\n",
 		   __func__, bus_req);
 
@@ -189,14 +188,12 @@ static struct bus_request *ath6kl_sdio_alloc_busreq(struct ath6kl_sdio *ar_sdio)
 static void ath6kl_sdio_free_bus_req(struct ath6kl_sdio *ar_sdio,
 				     struct bus_request *bus_req)
 {
-	unsigned long flag;
-
 	ath6kl_dbg(ATH6KL_DBG_SCATTER, "%s: bus request 0x%p\n",
 		   __func__, bus_req);
 
-	spin_lock_irqsave(&ar_sdio->lock, flag);
+	spin_lock_bh(&ar_sdio->lock);
 	list_add_tail(&bus_req->list, &ar_sdio->bus_req_freeq);
-	spin_unlock_irqrestore(&ar_sdio->lock, flag);
+	spin_unlock_bh(&ar_sdio->lock);
 }
 
 static void ath6kl_sdio_setup_scat_data(struct hif_scatter_req *scat_req,
@@ -424,20 +421,19 @@ static void __ath6kl_sdio_write_async(struct ath6kl_sdio *ar_sdio,
 static void ath6kl_sdio_write_async_work(struct work_struct *work)
 {
 	struct ath6kl_sdio *ar_sdio;
-	unsigned long flags;
 	struct bus_request *req, *tmp_req;
 
 	ar_sdio = container_of(work, struct ath6kl_sdio, wr_async_work);
 	sdio_claim_host(ar_sdio->func);
 
-	spin_lock_irqsave(&ar_sdio->wr_async_lock, flags);
+	spin_lock_bh(&ar_sdio->wr_async_lock);
 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
 		list_del(&req->list);
-		spin_unlock_irqrestore(&ar_sdio->wr_async_lock, flags);
+		spin_unlock_bh(&ar_sdio->wr_async_lock);
 		__ath6kl_sdio_write_async(ar_sdio, req);
-		spin_lock_irqsave(&ar_sdio->wr_async_lock, flags);
+		spin_lock_bh(&ar_sdio->wr_async_lock);
 	}
-	spin_unlock_irqrestore(&ar_sdio->wr_async_lock, flags);
+	spin_unlock_bh(&ar_sdio->wr_async_lock);
 
 	sdio_release_host(ar_sdio->func);
 }
@@ -520,7 +516,6 @@ static int ath6kl_sdio_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
 {
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
 	struct bus_request *bus_req;
-	unsigned long flags;
 
 	bus_req = ath6kl_sdio_alloc_busreq(ar_sdio);
 
@@ -533,9 +528,9 @@ static int ath6kl_sdio_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
 	bus_req->request = request;
 	bus_req->packet = packet;
 
-	spin_lock_irqsave(&ar_sdio->wr_async_lock, flags);
+	spin_lock_bh(&ar_sdio->wr_async_lock);
 	list_add_tail(&bus_req->list, &ar_sdio->wr_asyncq);
-	spin_unlock_irqrestore(&ar_sdio->wr_async_lock, flags);
+	spin_unlock_bh(&ar_sdio->wr_async_lock);
 	queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
 
 	return 0;
@@ -581,9 +576,8 @@ static struct hif_scatter_req *ath6kl_sdio_scatter_req_get(struct ath6kl *ar)
 {
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
 	struct hif_scatter_req *node = NULL;
-	unsigned long flag;
 
-	spin_lock_irqsave(&ar_sdio->scat_lock, flag);
+	spin_lock_bh(&ar_sdio->scat_lock);
 
 	if (!list_empty(&ar_sdio->scat_req)) {
 		node = list_first_entry(&ar_sdio->scat_req,
@@ -591,7 +585,7 @@ static struct hif_scatter_req *ath6kl_sdio_scatter_req_get(struct ath6kl *ar)
 		list_del(&node->list);
 	}
 
-	spin_unlock_irqrestore(&ar_sdio->scat_lock, flag);
+	spin_unlock_bh(&ar_sdio->scat_lock);
 
 	return node;
 }
@@ -600,13 +594,12 @@ static void ath6kl_sdio_scatter_req_add(struct ath6kl *ar,
 					struct hif_scatter_req *s_req)
 {
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
-	unsigned long flag;
 
-	spin_lock_irqsave(&ar_sdio->scat_lock, flag);
+	spin_lock_bh(&ar_sdio->scat_lock);
 
 	list_add_tail(&s_req->list, &ar_sdio->scat_req);
 
-	spin_unlock_irqrestore(&ar_sdio->scat_lock, flag);
+	spin_unlock_bh(&ar_sdio->scat_lock);
 
 }
 
@@ -617,7 +610,6 @@ static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar,
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
 	u32 request = scat_req->req;
 	int status = 0;
-	unsigned long flags;
 
 	if (!scat_req->len)
 		return -EINVAL;
@@ -631,9 +623,9 @@ static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar,
 		status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest);
 		sdio_release_host(ar_sdio->func);
 	} else {
-		spin_lock_irqsave(&ar_sdio->wr_async_lock, flags);
+		spin_lock_bh(&ar_sdio->wr_async_lock);
 		list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq);
-		spin_unlock_irqrestore(&ar_sdio->wr_async_lock, flags);
+		spin_unlock_bh(&ar_sdio->wr_async_lock);
 		queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
 	}
 
@@ -645,13 +637,12 @@ static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar)
 {
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
 	struct hif_scatter_req *s_req, *tmp_req;
-	unsigned long flag;
 
 	/* empty the free list */
-	spin_lock_irqsave(&ar_sdio->scat_lock, flag);
+	spin_lock_bh(&ar_sdio->scat_lock);
 	list_for_each_entry_safe(s_req, tmp_req, &ar_sdio->scat_req, list) {
 		list_del(&s_req->list);
-		spin_unlock_irqrestore(&ar_sdio->scat_lock, flag);
+		spin_unlock_bh(&ar_sdio->scat_lock);
 
 		if (s_req->busrequest)
 			ath6kl_sdio_free_bus_req(ar_sdio, s_req->busrequest);
@@ -659,9 +650,9 @@ static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar)
 		kfree(s_req->sgentries);
 		kfree(s_req);
 
-		spin_lock_irqsave(&ar_sdio->scat_lock, flag);
+		spin_lock_bh(&ar_sdio->scat_lock);
 	}
-	spin_unlock_irqrestore(&ar_sdio->scat_lock, flag);
+	spin_unlock_bh(&ar_sdio->scat_lock);
 }
 
 /* setup of HIF scatter resources */
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 3/5] ath6kl: Claim sdio function only at appropriate places
From: Vasanthakumar Thiagarajan @ 2011-09-30 13:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless
In-Reply-To: <1317390526-3442-1-git-send-email-vthiagar@qca.qualcomm.com>

There are places where tx_complete callbacks are called with
claiming the sdio function. This is wrong. Claim the sdio function
only when doing actual sdio read/write.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/sdio.c |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 2dd7a88..7695c29 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -134,6 +134,8 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
 {
 	int ret = 0;
 
+	sdio_claim_host(func);
+
 	if (request & HIF_WRITE) {
 		/* FIXME: looks like ugly workaround for something */
 		if (addr >= HIF_MBOX_BASE_ADDR &&
@@ -155,6 +157,8 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
 			ret = sdio_memcpy_fromio(func, buf, addr, len);
 	}
 
+	sdio_release_host(func);
+
 	ath6kl_dbg(ATH6KL_DBG_SDIO, "%s addr 0x%x%s buf 0x%p len %d\n",
 		   request & HIF_WRITE ? "wr" : "rd", addr,
 		   request & HIF_FIXED_ADDRESS ? " (fixed)" : "", buf, len);
@@ -287,10 +291,14 @@ static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
 	mmc_req.cmd = &cmd;
 	mmc_req.data = &data;
 
+	sdio_claim_host(ar_sdio->func);
+
 	mmc_set_data_timeout(&data, ar_sdio->func->card);
 	/* synchronous call to process request */
 	mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req);
 
+	sdio_release_host(ar_sdio->func);
+
 	status = cmd.error ? cmd.error : data.error;
 
 scat_complete:
@@ -391,11 +399,9 @@ static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
 	} else
 		tbuf = buf;
 
-	sdio_claim_host(ar_sdio->func);
 	ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len);
 	if ((request & HIF_READ) && bounced)
 		memcpy(buf, tbuf, len);
-	sdio_release_host(ar_sdio->func);
 
 	return ret;
 }
@@ -424,7 +430,6 @@ static void ath6kl_sdio_write_async_work(struct work_struct *work)
 	struct bus_request *req, *tmp_req;
 
 	ar_sdio = container_of(work, struct ath6kl_sdio, wr_async_work);
-	sdio_claim_host(ar_sdio->func);
 
 	spin_lock_bh(&ar_sdio->wr_async_lock);
 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
@@ -434,8 +439,6 @@ static void ath6kl_sdio_write_async_work(struct work_struct *work)
 		spin_lock_bh(&ar_sdio->wr_async_lock);
 	}
 	spin_unlock_bh(&ar_sdio->wr_async_lock);
-
-	sdio_release_host(ar_sdio->func);
 }
 
 static void ath6kl_sdio_irq_handler(struct sdio_func *func)
@@ -618,11 +621,9 @@ static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar,
 		"hif-scatter: total len: %d scatter entries: %d\n",
 		scat_req->len, scat_req->scat_entries);
 
-	if (request & HIF_SYNCHRONOUS) {
-		sdio_claim_host(ar_sdio->func);
+	if (request & HIF_SYNCHRONOUS)
 		status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest);
-		sdio_release_host(ar_sdio->func);
-	} else {
+	else {
 		spin_lock_bh(&ar_sdio->wr_async_lock);
 		list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq);
 		spin_unlock_bh(&ar_sdio->wr_async_lock);
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 4/5] ath6kl: Fix possible race in accessing bounce buffer
From: Vasanthakumar Thiagarajan @ 2011-09-30 13:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless
In-Reply-To: <1317390526-3442-1-git-send-email-vthiagar@qca.qualcomm.com>

There is only one bounce buffer (ar_sdio->dma_buffer) which is used
for both read and write without any protection. Fix this race by
allocating bounce buffer every time when it is needed.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/sdio.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 7695c29..06e3f09 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -383,25 +383,29 @@ static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
 				       u32 len, u32 request)
 {
 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
-	u8  *tbuf = NULL;
 	int ret;
+	u8 *bounce_buf = NULL;
 	bool bounced = false;
 
 	if (request & HIF_BLOCK_BASIS)
 		len = round_down(len, HIF_MBOX_BLOCK_SIZE);
 
 	if (buf_needs_bounce(buf)) {
-		if (!ar_sdio->dma_buffer)
+		bounce_buf = kmalloc(len, GFP_ATOMIC);
+		if (!bounce_buf)
 			return -ENOMEM;
-		tbuf = ar_sdio->dma_buffer;
-		memcpy(tbuf, buf, len);
+		memcpy(bounce_buf, buf, len);
 		bounced = true;
 	} else
-		tbuf = buf;
+		bounce_buf = buf;
+
+	ret = ath6kl_sdio_io(ar_sdio->func, request, addr, bounce_buf, len);
 
-	ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len);
 	if ((request & HIF_READ) && bounced)
-		memcpy(buf, tbuf, len);
+		memcpy(buf, bounce_buf, len);
+
+	if (bounced)
+		kfree(bounce_buf);
 
 	return ret;
 }
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 5/5] ath6kl: Remove unused ar_sdio->dma_buffer
From: Vasanthakumar Thiagarajan @ 2011-09-30 13:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless
In-Reply-To: <1317390526-3442-1-git-send-email-vthiagar@qca.qualcomm.com>

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/sdio.c |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 06e3f09..6bef420 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -39,7 +39,6 @@ struct ath6kl_sdio {
 	struct bus_request bus_req[BUS_REQUEST_MAX_NUM];
 
 	struct ath6kl *ar;
-	u8 *dma_buffer;
 
 	/* scatter request list head */
 	struct list_head scat_req;
@@ -777,12 +776,6 @@ static int ath6kl_sdio_probe(struct sdio_func *func,
 	if (!ar_sdio)
 		return -ENOMEM;
 
-	ar_sdio->dma_buffer = kzalloc(HIF_DMA_BUFFER_SIZE, GFP_KERNEL);
-	if (!ar_sdio->dma_buffer) {
-		ret = -ENOMEM;
-		goto err_hif;
-	}
-
 	ar_sdio->func = func;
 	sdio_set_drvdata(func, ar_sdio);
 
@@ -806,7 +799,7 @@ static int ath6kl_sdio_probe(struct sdio_func *func,
 	if (!ar) {
 		ath6kl_err("Failed to alloc ath6kl core\n");
 		ret = -ENOMEM;
-		goto err_dma;
+		goto err_hif;
 	}
 
 	ar_sdio->ar = ar;
@@ -866,8 +859,6 @@ err_off:
 	ath6kl_sdio_power_off(ar_sdio);
 err_cfg80211:
 	ath6kl_cfg80211_deinit(ar_sdio->ar);
-err_dma:
-	kfree(ar_sdio->dma_buffer);
 err_hif:
 	kfree(ar_sdio);
 
@@ -891,7 +882,6 @@ static void ath6kl_sdio_remove(struct sdio_func *func)
 
 	ath6kl_sdio_power_off(ar_sdio);
 
-	kfree(ar_sdio->dma_buffer);
 	kfree(ar_sdio);
 }
 
-- 
1.7.0.4


^ permalink raw reply related

* Re: Alfa AWUS036NHR with RTL8188RU chipset
From: v4mp @ 2011-09-30 14:20 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <4E7A529E.1040808@lwfinger.net>

hello larry,

i've an ALFA AWUS036NHR and i tried latest compat-wireless-2011-09-27 on ubuntu
natty 3.0.4-030004-generic, 
the adapter is recognized as rtl8192cu but is not
responding, no network is detected.

Then if i try to "modprobe -r rtl8192cu" results
FATAL: Error removing rtl8192cu
(/lib/modules/3.0.4-030004-generic/updates/drivers/net/wireless/rtlwifi
/rtl8192cu/rtl8192cu.ko):
Device or resource busy

seems that remains blocked..i can't do anything

tried dmesg and it says

.....
.....
[ 2610.093638] rtlwifi: reg 0xc1c, usbctrl_vendorreq TimeOut! status:0xfffffff4
value=0xed827478
[ 2610.093645] xhci_hcd 0000:05:00.0: ERROR no room on ep ring
[ 2610.093650] rtlwifi: reg 0xc4c, usbctrl_vendorreq TimeOut! status:0xfffffff4
value=0xed827478
[ 2610.093656] xhci_hcd 0000:05:00.0: ERROR no room on ep ring
[ 2610.093662] rtlwifi: reg 0xc78, usbctrl_vendorreq TimeOut! status:0xfffffff4
value=0xed827478
[ 2610.093668] xhci_hcd 0000:05:00.0: ERROR no room on ep ring
[ 2610.093683] rtlwifi: reg 0xc80, usbctrl_vendorreq TimeOut! status:0xfffffff4
value=0xed827478
[ 2610.234960] xhci_hcd 0000:05:00.0: ERROR no room on ep ring
[ 2610.255767] ADDRCONF(NETDEV_UP): wlan1: link is not ready

don't know what to do, waiting for an help :)






^ permalink raw reply

* Re: Alfa AWUS036NHR with RTL8188RU chipset
From: Larry Finger @ 2011-09-30 15:18 UTC (permalink / raw)
  To: v4mp; +Cc: linux-wireless, 'George0505', 'georgia'
In-Reply-To: <loom.20110930T160704-310@post.gmane.org>

On 09/30/2011 09:20 AM, v4mp wrote:
> hello larry,
>
> i've an ALFA AWUS036NHR and i tried latest compat-wireless-2011-09-27 on ubuntu
> natty 3.0.4-030004-generic,
> the adapter is recognized as rtl8192cu but is not
> responding, no network is detected.
>
> Then if i try to "modprobe -r rtl8192cu" results
> FATAL: Error removing rtl8192cu
> (/lib/modules/3.0.4-030004-generic/updates/drivers/net/wireless/rtlwifi
> /rtl8192cu/rtl8192cu.ko):
> Device or resource busy
>
> seems that remains blocked..i can't do anything

You are the second person that has reported a problem with this device. 
Unfortunately, I do not have a sample of the device, but I have just ordered one 
that will be delivered in about one week. I would guess that there is some 
difference between the RTL8192CU and the RTL8188RU chips.

I Cc'd the Realtek group that works on USB devices. Perhaps they have some info 
that will be useful. Given the difference in time between the US and Taiwan, I 
would not expect any answer until Monday.

There are some changes that affect connection with an 802.11n network that are 
found in the latest kernels. I'm not sure they are in the one you are using. You 
can get the very latest by downloading and building the "bleeding edge" version 
of compat-wireless.

Larry

^ permalink raw reply

* Re: [PATCH] wireless: at76c50x: fix multithread access to hex2str
From: Pavel Roskin @ 2011-09-30 15:53 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-wireless, John W. Linville
In-Reply-To: <1317293215.2676.111.camel@smile>

On Thu, 29 Sep 2011 13:46:55 +0300
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> On Wed, 2011-09-28 at 17:19 -0400, Pavel Roskin wrote: 
> > Or maybe you could develop an extension for printk() format that
> > would dump strings of the given length?  Something like %pM, but
> > with an extra argument (and make sure it would not trigger a gcc
> > warning). This way, everybody would benefit.
> I don't think it would be a noticeable benefit. On the other hand
> vsnprintf() is hugely overloaded by many "extensions" to the C99
> variant.

I looked at the code, and it seems very little is needed to support
"%*pM"

> > Please rethink whether it's helpful to send such "fixes" for old and
> > little maintained drivers.
> Last copyright is 2010, TODO list actually suggests to remove hex2str
> at all.

I don't know where it's written, but I think it's a good idea,
especially if there is a better alternative available for all drivers.

-- 
Regards,
Pavel Roskin

^ permalink raw reply

* [PATCH V2 3/5] ath6kl: Claim sdio function only at appropriate places
From: Vasanthakumar Thiagarajan @ 2011-09-30 16:16 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless

There are places where tx_complete callbacks are called with
claiming the sdio function. It is not necessary to hold the
sdio func for longer. This may even affect the host side power
save, if it is supported by the controller.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/sdio.c |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

V2 -- Commit log change

diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 2dd7a88..7695c29 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -134,6 +134,8 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
 {
 	int ret = 0;
 
+	sdio_claim_host(func);
+
 	if (request & HIF_WRITE) {
 		/* FIXME: looks like ugly workaround for something */
 		if (addr >= HIF_MBOX_BASE_ADDR &&
@@ -155,6 +157,8 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
 			ret = sdio_memcpy_fromio(func, buf, addr, len);
 	}
 
+	sdio_release_host(func);
+
 	ath6kl_dbg(ATH6KL_DBG_SDIO, "%s addr 0x%x%s buf 0x%p len %d\n",
 		   request & HIF_WRITE ? "wr" : "rd", addr,
 		   request & HIF_FIXED_ADDRESS ? " (fixed)" : "", buf, len);
@@ -287,10 +291,14 @@ static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
 	mmc_req.cmd = &cmd;
 	mmc_req.data = &data;
 
+	sdio_claim_host(ar_sdio->func);
+
 	mmc_set_data_timeout(&data, ar_sdio->func->card);
 	/* synchronous call to process request */
 	mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req);
 
+	sdio_release_host(ar_sdio->func);
+
 	status = cmd.error ? cmd.error : data.error;
 
 scat_complete:
@@ -391,11 +399,9 @@ static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
 	} else
 		tbuf = buf;
 
-	sdio_claim_host(ar_sdio->func);
 	ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len);
 	if ((request & HIF_READ) && bounced)
 		memcpy(buf, tbuf, len);
-	sdio_release_host(ar_sdio->func);
 
 	return ret;
 }
@@ -424,7 +430,6 @@ static void ath6kl_sdio_write_async_work(struct work_struct *work)
 	struct bus_request *req, *tmp_req;
 
 	ar_sdio = container_of(work, struct ath6kl_sdio, wr_async_work);
-	sdio_claim_host(ar_sdio->func);
 
 	spin_lock_bh(&ar_sdio->wr_async_lock);
 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
@@ -434,8 +439,6 @@ static void ath6kl_sdio_write_async_work(struct work_struct *work)
 		spin_lock_bh(&ar_sdio->wr_async_lock);
 	}
 	spin_unlock_bh(&ar_sdio->wr_async_lock);
-
-	sdio_release_host(ar_sdio->func);
 }
 
 static void ath6kl_sdio_irq_handler(struct sdio_func *func)
@@ -618,11 +621,9 @@ static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar,
 		"hif-scatter: total len: %d scatter entries: %d\n",
 		scat_req->len, scat_req->scat_entries);
 
-	if (request & HIF_SYNCHRONOUS) {
-		sdio_claim_host(ar_sdio->func);
+	if (request & HIF_SYNCHRONOUS)
 		status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest);
-		sdio_release_host(ar_sdio->func);
-	} else {
+	else {
 		spin_lock_bh(&ar_sdio->wr_async_lock);
 		list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq);
 		spin_unlock_bh(&ar_sdio->wr_async_lock);
-- 
1.7.0.4


^ permalink raw reply related

* Re: Alfa AWUS036NHR with RTL8188RU chipset
From: v4mp @ 2011-09-30 18:14 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <4E85DDA9.3090300@lwfinger.net>

ok thx for reply, i just like to say to you that i have tryed beini tiny core
1.2.3 that was patched to support this type of usb device with the latest
update, and it works with rtl8192cu (and the blue led is working)

i've extracted a .tce module from the beini that seems to be rtl8192cu modded
driver,

this is the link i've uploaded on fileserve
http://www.fileserve.com/file/9mZxX5T/x_rtl8188ru_20110812.tce

maybe it could be useful, thx :)





^ permalink raw reply

* new stuff for 3.2 needs to be posted _now_
From: John W. Linville @ 2011-09-30 18:28 UTC (permalink / raw)
  To: linux-wireless

You may have noticed that Linus has released 3.1-rc8.  So, the
merge window is around the corner!

For those that need a reminder, the opening of the merge window is a
_deadline_ for new features.  Once the merge window opens, only fixes
will be accepted for 3.2.  In fact, any non-fix patches need to
already be in wireless-next when the merge window opens if you want
them in 3.2.  That means you need to get them posted _now_, so they
can be reviewed and I can find time to merge them before the deadline.

You have been warned...this means you!

John
-- 
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: r8712u driver - on ARM
From: Ian Jeffray @ 2011-09-30 18:39 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <4E81F8C8.4010909@lwfinger.net>

On 27/09/2011 17:24, Larry Finger wrote:
> On 09/27/2011 10:36 AM, Ian Jeffray wrote:
>> Dear all,
>>
>> I'm attempting to get some sense from a Realtek 8191S device on
>> ARM linux.
<SNIP>
>> My host is a TI DaVinci DM8168 (OMAP3+toys). The USB host is not
>> fantastic, but has been thrashed heavily with other devices and seems
>> to be reliable in those cases.
<SNIP>
>
> I have not tried this chip on an ARM host as I have no hardware. My
> testing has been with X86 and PPC - thus I know the endianess is OK, but
> that is the extent of my platform testing.
>
> The first thing I would try is wireshark on another host to verify that
> packets are actually getting on the air.

Ok, so I've spent more more days working on this.  The driver appears
to be fine on an ARM9 S3X board.   I've contacted the TI support
team about the USB host and applied some patches from them which have
slightly improved the situation, but it's still horrible - I'm actually
getting "reliable" scans but only a pathetic 1Mbit or less of data
throughput.

I've also tried this driver (and the realtek upstream version) with
a Blackfin BF527 device, which has roughly the same 'musb' Inventra
USB host controller... and I see exactly the same problem there!
The firmware appears to load fine, but scans produce no results.

I'm not really sure about your comment about wireshark because,
as far as I understand, a 'iwlist wlan0 scan' command doesn't cause
any traffic which would be wireshark capturable on another host...
am I misunderstanding something?

So it appears as though there may be some general problem with this
driver and an 'musb' host controller.  Very strange.

My next course of attack is to try comparing outputs of 'usbmon'
dumps between hosts which work and hosts which don't... but I can't
make a great deal of sense looking at them really.

I'd greatly appreciate any more advice you may be able to give.

Many thanks,

Ian.

-- 
Ian Jeffray    ian@emobix.co.uk    Tel: +44 (0) 141 221 8449
emobix Limited, Suite 5/5, 29 St Vincent Place, Glasgow, G1 2DT
Registered in Scotland; Company No. 371276 - VAT No. 983 4833 78

^ permalink raw reply

* Re: [PATCH 3/3] mac80211: pass vif param to conf_tx() callback
From: John W. Linville @ 2011-09-30 18:43 UTC (permalink / raw)
  To: Johannes Berg; +Cc: Eliad Peller, linux-wireless
In-Reply-To: <1317217708.3986.17.camel@jlt3.sipsolutions.net>

On Wed, Sep 28, 2011 at 03:48:28PM +0200, Johannes Berg wrote:
> On Sun, 2011-09-25 at 20:06 +0300, Eliad Peller wrote:
> > tx params should be configured per interface.
> > Add ieee80211_vif param to the conf_tx callback,
> > and update all the drivers that use this callback.
> 
> I see patches 1 and 2 in the tree, but not this. I suspect the reason is
> that it was actually incomplete, not updating for example iwlwifi
> because there the function is defined in another file and the spatch
> failed?

It didn't apply.  I thought I might try again now that I pulled
wireless into wireless-next...

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

* Compat-wireless release for 2011-09-30 is baked
From: Compat-wireless cronjob account @ 2011-09-30 19:04 UTC (permalink / raw)
  To: linux-wireless

>From git://github.com/sfrothwell/linux-next
 + 19fab9b...8de4587 akpm-end   -> origin/akpm-end  (forced update)
 + a4a2504...a33a912 master     -> origin/master  (forced update)
 * [new tag]         next-20110930 -> next-20110930

compat-wireless code metrics

    813049 - Total upstream lines of code being pulled

^ permalink raw reply

* Re: r8712u driver - on ARM
From: Christian Lamparter @ 2011-09-30 19:06 UTC (permalink / raw)
  To: Ian Jeffray; +Cc: linux-wireless
In-Reply-To: <4E860CDB.9040207@emobix.co.uk>

On Friday 30 September 2011 20:39:23 Ian Jeffray wrote:
> On 27/09/2011 17:24, Larry Finger wrote:
> > On 09/27/2011 10:36 AM, Ian Jeffray wrote:
> >> Dear all,
> >>
> >> I'm attempting to get some sense from a Realtek 8191S device on
> >> ARM linux.
> <SNIP>
> >> My host is a TI DaVinci DM8168 (OMAP3+toys). The USB host is not
> >> fantastic, but has been thrashed heavily with other devices and seems
> >> to be reliable in those cases.
> <SNIP>
> >
> > I have not tried this chip on an ARM host as I have no hardware. My
> > testing has been with X86 and PPC - thus I know the endianess is OK, but
> > that is the extent of my platform testing.
> >
> > The first thing I would try is wireshark on another host to verify that
> > packets are actually getting on the air.
> 
> Ok, so I've spent more more days working on this.  The driver appears
> to be fine on an ARM9 S3X board.   I've contacted the TI support
> team about the USB host and applied some patches from them which have
> slightly improved the situation, but it's still horrible - I'm actually
> getting "reliable" scans but only a pathetic 1Mbit or less of data
> throughput.
> 
> I've also tried this driver (and the realtek upstream version) with
> a Blackfin BF527 device, which has roughly the same 'musb' Inventra
> USB host controller... and I see exactly the same problem there!
> The firmware appears to load fine, but scans produce no results.
> 
> I'm not really sure about your comment about wireshark because,
> as far as I understand, a 'iwlist wlan0 scan' command doesn't cause
> any traffic which would be wireshark capturable on another host...
> am I misunderstanding something?
> 
> So it appears as though there may be some general problem with this
> driver and an 'musb' host controller.  Very strange.
> 
> My next course of attack is to try comparing outputs of 'usbmon'
> dumps between hosts which work and hosts which don't... but I can't
> make a great deal of sense looking at them really.
> 
> I'd greatly appreciate any more advice you may be able to give.

Well, I'm not really in r8712u but I can tell you a few things about
carl9170 and musb.

You see I had a similar discussion a while ago:
http://www.spinics.net/lists/linux-wireless/msg68870.html

Apparently, musb can't do DMA with non 4-bytes aligned buffers
and falls back to PIO [which results in a much higher cpu utilization
and really bad usb throughput... so if timing is critical this "fact"
is pretty much a deal-breaker for the combination].

Now, you might ask, why this DMA vs. PIO is so importent... Well,
it's because the network stack has its own alignment ideas and
about the data/skbs. There's a comment in include/linux/skbuff.h
around line 1400 which explains the situation. The upshot is you
can choose between a penatly on the packet processing by the
stack, or a penatly on the driver/hardware site if r8712u does
not implement any additional techniques to counter the issues.

Regards,
	Chr

^ permalink raw reply

* pull request: wireless-next 2011-09-30
From: John W. Linville @ 2011-09-30 19:11 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev

Dave,

Here is yet another big package of wireless updates for 3.2.  Highlights
include a bluetooth pull, a wl12xx pull, and a pull of the wireless tree
to fix some merge issues.  Also included is the usual big sets of
updates to ath9k, iwlagn, b43, and others.  Plus, the NFC subsystem grew
NCI support.

Please let me know if there are problems!

Thanks,

John

---

The following changes since commit 56fd49e399ce1d82200fad5b8924d4e35a587809:

  bna: Driver Version changed to 3.0.2.2 (2011-09-29 19:36:36 -0400)

are available in the git repository at:
  git://git.infradead.org/users/linville/wireless-next.git for-davem

Alexander Simon (1):
      mac80211: fix indentation

Amit Beka (1):
      iwlagn: remove duplicate list init

Amitkumar Karwar (4):
      mwifiex: fix 5GHz association issue
      mwifiex: update bss band information
      mwifiex: pass correct band parameter to ieee80211_channel_to_frequency()
      mwifiex: reset skb length before inserting to free queue

Anderson Briglia (1):
      Bluetooth: Fix wrong memcpy size on LE start encryption

Andre Guedes (2):
      Bluetooth: Reduce critical region.
      Bluetooth: Check 'dev_class' in mgmt_device_found()

Antti Julku (2):
      Bluetooth: Add mgmt command for fast connectable mode
      Bluetooth: Add mgmt events for blacklisting

Arik Nemtsov (12):
      wl12xx: don't queue a new dummy packet if one is already pending
      wl12xx: don't indicate up PS-filtered dummy packets
      wl12xx: AP mode - don't regulate FW blocks for non-active STAs
      wl12xx: support up to 8 stations in AP-mode
      wl12xx: don't regulate links when a single STA is connected
      wl12xx: AP mode - enable the BA constraint event from the FW
      wl12xx: AP mode - clean BA and queue state in tx_reset
      wl12xx: set mac80211 flags for A-MPDU aggregation support
      wl12xx: AP mode - support hidden SSID
      wl12xx: correct fw_status structure for 8 sta support in AP-mode
      wl12xx: report the stop_ba event to all STAs in AP-mode
      mac80211: treat the WME sta flag as a bit

Dan Carpenter (4):
      mwifiex: add a kfree() to an error path
      mwifiex: remove unneeded NULL check
      NFC: use after free on error
      wl3501_cs: min_t() cast truncates high bits

Daniel Drake (1):
      libertas: scan behaviour consistency improvements

David Herrmann (1):
      Bluetooth: hidp: Add support for NO_INIT_REPORTS quirk

Don Fry (1):
      iwlagn: replace beacon_time_fsf_bits variable with #define

Eliad Peller (20):
      wl12xx: print acx id
      wl12xx: print the seq_num of rx packet
      wl12xx: add module_param to trigger BUG() on recovery
      wl12xx: add beacon_filtering debugfs file
      wl12xx: don't disconnect on recovery
      wl12xx: don't use WL1271_SCAN_OPT_PRIORITY_HIGH flag
      wl12xx: check for ROC on scan_complete
      wl12xx: add config_hangover command
      wl12xx: use kstrtoul_from_user
      wl12xx: declare support for WIPHY_FLAG_AP_UAPSD
      wl12xx: support p2p interfaces
      cfg80211: add cfg80211_find_vendor_ie() function
      wl12xx: remove TIM ie from probe response
      wl12xx: remove P2P ie from probe response
      wl12xx: send all pending packets on channel change
      wl12xx: Use dev_hlid for auth and assoc req
      wl12xx: implement set_bitrate_mask callback
      mac80211: add ieee80211_vif param to tsf functions
      cfg80211/mac80211: add netdev param to set_txq_params()
      mac80211: save tx params per sdata

Emmanuel Grumbach (17):
      iwlagn: warn about buggy fw that doesn't set SEQ_RX_FRAME
      iwlagn: unmap cmd queue's tfds as BIDI
      iwlagn: free the Tx cmd when a non empty Tx queue is freed
      iwlagn: move iwl_stop / wake_queue to the upper layer
      iwlagn: use enum iwl_rxon_context_id instead of u8
      iwlagn: document the bus layer API
      iwlagn: add documentation to the transport layer
      iwlagn: provide data after WARN_ON
      iwlagn: remove the callback in host commands
      iwlagn: simplify the iwl_device_cmd layout
      iwlagn: remove uneeded declaration
      iwlagn: pending frames musn't be incremented if agg is on
      iwlagn: remove warning in iwl_rx_handle
      iwlagn: sparse warning priv->temperature is signed
      iwlagn: set the sequence control from the transport layer
      iwlagn: update rate scaling with BA notifications
      iwlagn: use kcalloc when possible for array allocation

Felix Fietkau (7):
      ath9k: fix setting the IEEE80211_TX_CTL_CLEAR_PS_FILT flag
      ath9k: sync the dma buffer after changing the retry flag
      ath9k_hw: clean up hardware revision checks
      ath9k_hw: remove dead code in the eeprom ops
      ath9k_hw: fix setting the hardware diversity flag
      ath9k_hw: remove ar9100_hw_compute_pll_control
      ath9k: fix a regression in ath9k_ps_restore

Fry, Donald H (2):
      iwlagn: fix modinfo display for 135 ucode.
      iwlagn: simplify chain_noise_num_beacons indirection

Ilan Elias (7):
      NFC: Add dev_up and dev_down control operations
      NFC: move nfc.h from include/net to include/net/nfc
      NFC: basic NCI protocol implementation
      NFC: driver for TI shared transport
      NFC: improve readability of an 'if' in nci core.c
      NFC: implicitly deactivate in nci_start_poll
      NFC: protect nci_data_exchange transactions

Joe Perches (1):
      iwlagn: Convert kzalloc to kcalloc

Johannes Berg (22):
      iwlagn: move PCI-E transport files
      iwlagn: generically provide iwl_trans_send_cmd_pdu
      iwlagn: Makefile whitespace cleanup
      iwlagn: clean up PM code
      iwlagn: rename iwl-pci.h to iwl-cfg.h
      iwlagn: remove unused function declarations
      iwlagn: move sysfs files to debugfs
      iwlagn: remove drvdata support from bus layer
      iwlagn: do not use interruptible waits
      cfg80211: validate IBSS BSSID
      mac80211: fix AP/VLAN PS buffer race
      iwlagn: move scan code to scan file
      iwlagn: remove common station priv
      iwlagn: split remain-on-channel
      iwlagn: fix dangling scan request
      iwlagn: fix dangling scan request
      iwlagn: fix slot programming
      iwlagn: remove Kelvin support
      iwlagn: make iwl_scan_cancel_timeout void
      iwlagn: refactor scan complete
      iwlagn: move iwl_process_scan_complete up
      iwlagn: fix scan complete processing

John W. Linville (7):
      Merge branch 'for-linville' of git://github.com/lucacoelho/wl12xx
      Revert "ath9k: do not insert padding into tx buffers on AR9380+"
      Merge branch 'master' of git://git.infradead.org/users/linville/wireless
      Merge branch 'master' of git://github.com/padovan/bluetooth-next
      Merge branch 'for-linville' of git://github.com/lucacoelho/wl12xx
      Merge branch 'master' of git://git.infradead.org/users/linville/wireless
      Merge branch 'master' of git://git.infradead.org/users/linville/wireless-next into for-davem

Jouni Malinen (4):
      cfg80211/nl80211: Add PMKSA caching candidate event
      cfg80211: Fix validation of AKM suites
      cfg80211: Remove strict validation of AKM suites
      cfg80211: Validate cipher suite against supported ciphers

Larry Finger (5):
      rtlwifi: rtl8192ce: Change modinfo messages
      rtlwifi: rtl8192se: Change modinfo messages
      rtlwifi: rtl8192de: Change modinfo messages
      rtlwifi: Combine instances of RTL_HAL_IS_CCK_RATE macros.
      rtlwifi: rtl8192cu: Fix unitialized struct

Luciano Coelho (5):
      wl12xx: remove deprecated CONFIG_WL12XX_HT flag
      wl12xx: add support for sched_scan filters
      wl12xx: increase number of allowed SSIDs in sched_scan
      wl12xx: ignore sched scan match sets without SSID
      wl12xx: fix forced passive scans

Luiz Augusto von Dentz (2):
      Bluetooth: make use of connection number to optimize the scheduler
      Bluetooth: mark l2cap_create_iframe_pdu as static

Mohammed Shafi Shajakhan (3):
      rfkill: properly assign a boolean type
      ath9k: Fix a dma warning/memory leak
      ath9k: add Block ACK bitmap in sample debug

Peter Hurley (1):
      Bluetooth: Add LE link type for debugfs output

Rafał Miłecki (10):
      bcma: cc: export more control functions
      b43: LCN-PHY: tweaks for channel switching
      b43: LCN-PHY: set TX filters
      b43: LCN-PHY: implement SPUR avoidance mode
      b43: LCN-PHY: init TX power control
      b43: LCN-PHY: add more init tweaks
      b43: LCN-PHY: finish sense setup
      b43: add missing MMIO defines
      b43: update dummy transmission
      b43: LCN-PHY: minor clean ups

Rajkumar Manoharan (9):
      ath9k_hw: Fix magnitude/phase coeff correction
      ath9k: load noise floor from history after the full chip reset
      ath9k: Reset caldata on radio enable
      mac80211: Fix regression on queue stop during 2040 bss change
      wireless: Do not allow disabled channel in scan request
      ath9k: Store noise immunity values across scanning
      ath9k_hw: Fix Rx DMA stuck for AR9003 chips
      nl80211/cfg80211: Add support to disable CCK rate for management frame
      mac80211: Send the management frame at requested rate

Randy Dunlap (1):
      nfc: NFC_WILINK depends on NFC_NCI

Shahar Levi (2):
      wl12xx: fix sdio_test module functionality
      wl12xx: Include OFDM rates in IBSS mode

Stanislaw Gruszka (2):
      iwlegacy: fix command queue timeout
      iwlegacy: do not use interruptible waits

Thomas Pedersen (1):
      mac80211: notify peer when shutting down peer link

Vinicius Costa Gomes (15):
      Bluetooth: Reset the security timer when a command is queued
      Bluetooth: Add a flag to indicate that SMP is going on
      Bluetooth: Use the same timeouts for both ACL and LE links
      Bluetooth: Add support for pairing via mgmt over LE
      Bluetooth: Add support for running SMP without a socket
      Bluetooth: Add link_type information to the mgmt Connected event
      Bluetooth: Move SMP fields to a separate structure
      Bluetooth: Move SMP crypto functions to a workqueue
      Bluetooth: Require authentication if MITM protection is requested
      Bluetooth: Use the MEDIUM security level for pairings
      Bluetooth: Fix sending wrong authentication requirements
      Bluetooth: Use the LTK after receiving a LE Security Request
      Revert "Bluetooth: Add support for communicating keys with userspace"
      Bluetooth: Fix not setting a pending security level
      Bluetooth: Remove support for other SMP keys than the LTK

Wey-Yi Guy (8):
      iwlagn: New SKU for 6005 SFF
      iwlagn: merge eeprom access into single file
      iwlagn: add support for v2 of temperature offset calibration
      iwlagn: use iwl_eeprom_calib_hdr structure
      iwlagn: fix stack corruption for temperature offset v2
      iwlagn: signedness bug
      MAINTAINERS: update iwlwifi
      iwlagn: add debugging to show probe related info in scan notification

 MAINTAINERS                                        |    4 +-
 drivers/bcma/driver_chipcommon_pmu.c               |   38 +-
 drivers/net/wireless/adm8211.c                     |    3 +-
 drivers/net/wireless/ath/ath5k/mac80211-ops.c      |    6 +-
 drivers/net/wireless/ath/ath9k/ani.c               |   10 +-
 drivers/net/wireless/ath/ath9k/ani.h               |    1 +
 drivers/net/wireless/ath/ath9k/ar5008_phy.c        |   32 +-
 drivers/net/wireless/ath/ath9k/ar9002_calib.c      |    1 +
 .../net/wireless/ath/ath9k/ar9003_2p2_initvals.h   |    2 +-
 drivers/net/wireless/ath/ath9k/ar9003_calib.c      |    4 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.c        |   14 +-
 drivers/net/wireless/ath/ath9k/debug.c             |   24 +-
 drivers/net/wireless/ath/ath9k/debug.h             |    2 +
 drivers/net/wireless/ath/ath9k/eeprom.c            |    7 +-
 drivers/net/wireless/ath/ath9k/eeprom_4k.c         |  108 +-
 drivers/net/wireless/ath/ath9k/eeprom_9287.c       |   12 +-
 drivers/net/wireless/ath/ath9k/eeprom_def.c        |   46 +-
 drivers/net/wireless/ath/ath9k/htc_drv_main.c      |    9 +-
 drivers/net/wireless/ath/ath9k/hw-ops.h            |    5 -
 drivers/net/wireless/ath/ath9k/hw.h                |    1 -
 drivers/net/wireless/ath/ath9k/init.c              |    1 -
 drivers/net/wireless/ath/ath9k/mac.c               |    2 +-
 drivers/net/wireless/ath/ath9k/mac.h               |    4 -
 drivers/net/wireless/ath/ath9k/main.c              |   11 +-
 drivers/net/wireless/ath/ath9k/recv.c              |   10 +-
 drivers/net/wireless/ath/ath9k/reg.h               |    4 -
 drivers/net/wireless/ath/ath9k/xmit.c              |   60 +-
 drivers/net/wireless/ath/carl9170/main.c           |    3 +-
 drivers/net/wireless/b43/b43.h                     |   40 +-
 drivers/net/wireless/b43/main.c                    |   54 +-
 drivers/net/wireless/b43/phy_lcn.c                 |  428 ++++-
 drivers/net/wireless/b43/phy_lcn.h                 |    3 +
 drivers/net/wireless/b43/tables_phy_lcn.c          |   25 +-
 drivers/net/wireless/iwlegacy/iwl-core.c           |    7 +-
 drivers/net/wireless/iwlegacy/iwl-core.h           |    3 +-
 drivers/net/wireless/iwlegacy/iwl-hcmd.c           |    2 +-
 drivers/net/wireless/iwlegacy/iwl-tx.c             |    4 +-
 drivers/net/wireless/iwlegacy/iwl3945-base.c       |    8 +-
 drivers/net/wireless/iwlegacy/iwl4965-base.c       |   10 +-
 drivers/net/wireless/iwlwifi/Makefile              |   23 +-
 drivers/net/wireless/iwlwifi/iwl-1000.c            |    5 +-
 drivers/net/wireless/iwlwifi/iwl-2000.c            |   12 +-
 drivers/net/wireless/iwlwifi/iwl-5000-hw.h         |    4 +-
 drivers/net/wireless/iwlwifi/iwl-5000.c            |    7 +-
 drivers/net/wireless/iwlwifi/iwl-6000.c            |    7 +-
 drivers/net/wireless/iwlwifi/iwl-agn-calib.c       |   21 +-
 drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c      |  299 ---
 drivers/net/wireless/iwlwifi/iwl-agn-lib.c         |  441 +-----
 drivers/net/wireless/iwlwifi/iwl-agn-rs.c          |   16 +-
 drivers/net/wireless/iwlwifi/iwl-agn-rxon.c        |    2 +-
 drivers/net/wireless/iwlwifi/iwl-agn-tt.c          |   22 +-
 drivers/net/wireless/iwlwifi/iwl-agn-tx.c          |   39 +-
 drivers/net/wireless/iwlwifi/iwl-agn-ucode.c       |   63 +-
 drivers/net/wireless/iwlwifi/iwl-agn.c             |  162 +--
 drivers/net/wireless/iwlwifi/iwl-agn.h             |   19 +-
 drivers/net/wireless/iwlwifi/iwl-bus.h             |   72 +-
 .../net/wireless/iwlwifi/{iwl-pci.h => iwl-cfg.h}  |    5 +-
 drivers/net/wireless/iwlwifi/iwl-commands.h        |    8 +
 drivers/net/wireless/iwlwifi/iwl-core.c            |   59 +-
 drivers/net/wireless/iwlwifi/iwl-core.h            |   13 +-
 drivers/net/wireless/iwlwifi/iwl-debugfs.c         |   87 +-
 drivers/net/wireless/iwlwifi/iwl-dev.h             |   19 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom.c          |  244 +++-
 drivers/net/wireless/iwlwifi/iwl-eeprom.h          |   10 +-
 drivers/net/wireless/iwlwifi/iwl-led.c             |    1 -
 drivers/net/wireless/iwlwifi/iwl-pci.c             |   33 +-
 drivers/net/wireless/iwlwifi/iwl-rx.c              |   97 +-
 drivers/net/wireless/iwlwifi/iwl-scan.c            |  696 ++++++-
 drivers/net/wireless/iwlwifi/iwl-shared.h          |  146 +-
 drivers/net/wireless/iwlwifi/iwl-sta.c             |   37 +-
 drivers/net/wireless/iwlwifi/iwl-sta.h             |    5 +-
 .../{iwl-trans-int-pcie.h => iwl-trans-pcie-int.h} |   26 +-
 .../{iwl-trans-rx-pcie.c => iwl-trans-pcie-rx.c}   |   36 +-
 .../{iwl-trans-tx-pcie.c => iwl-trans-pcie-tx.c}   |   92 +-
 drivers/net/wireless/iwlwifi/iwl-trans-pcie.c      | 1989 ++++++++++++++++++++
 drivers/net/wireless/iwlwifi/iwl-trans.c           | 1926 +-------------------
 drivers/net/wireless/iwlwifi/iwl-trans.h           |   44 +-
 drivers/net/wireless/libertas/cfg.c                |   33 +-
 drivers/net/wireless/libertas/dev.h                |    1 -
 drivers/net/wireless/mwifiex/cfg80211.c            |    7 +-
 drivers/net/wireless/mwifiex/cmdevt.c              |    3 +
 drivers/net/wireless/mwifiex/main.h                |    2 +-
 drivers/net/wireless/mwifiex/scan.c                |   29 +-
 drivers/net/wireless/mwifiex/sta_ioctl.c           |   16 +-
 drivers/net/wireless/rt2x00/rt2400pci.c            |    5 +-
 drivers/net/wireless/rt2x00/rt2500pci.c            |    3 +-
 drivers/net/wireless/rt2x00/rt2800lib.c            |    2 +-
 drivers/net/wireless/rt2x00/rt2800lib.h            |    2 +-
 drivers/net/wireless/rt2x00/rt61pci.c              |    2 +-
 drivers/net/wireless/rt2x00/rt73usb.c              |    2 +-
 drivers/net/wireless/rtl818x/rtl8180/dev.c         |    5 +-
 drivers/net/wireless/rtl818x/rtl8187/dev.c         |    2 +-
 drivers/net/wireless/rtlwifi/core.c                |    8 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/sw.c        |   12 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/trx.h       |    6 -
 drivers/net/wireless/rtlwifi/rtl8192cu/mac.h       |    6 -
 drivers/net/wireless/rtlwifi/rtl8192de/sw.c        |   12 +-
 drivers/net/wireless/rtlwifi/rtl8192de/trx.h       |    6 -
 drivers/net/wireless/rtlwifi/rtl8192se/def.h       |    2 +-
 drivers/net/wireless/rtlwifi/rtl8192se/sw.c        |   14 +-
 drivers/net/wireless/rtlwifi/rtl8192se/trx.c       |    2 +-
 drivers/net/wireless/rtlwifi/usb.c                 |    1 +
 drivers/net/wireless/rtlwifi/wifi.h                |    6 +
 drivers/net/wireless/wl12xx/Kconfig                |   10 -
 drivers/net/wireless/wl12xx/Makefile               |    6 +-
 drivers/net/wireless/wl12xx/acx.c                  |   40 +
 drivers/net/wireless/wl12xx/acx.h                  |   18 +
 drivers/net/wireless/wl12xx/cmd.c                  |   60 +-
 drivers/net/wireless/wl12xx/cmd.h                  |    7 +
 drivers/net/wireless/wl12xx/conf.h                 |   29 +-
 drivers/net/wireless/wl12xx/debugfs.c              |   88 +-
 drivers/net/wireless/wl12xx/event.c                |   39 +-
 drivers/net/wireless/wl12xx/init.c                 |   22 +-
 drivers/net/wireless/wl12xx/main.c                 |  300 +++-
 drivers/net/wireless/wl12xx/ps.c                   |    8 +-
 drivers/net/wireless/wl12xx/rx.c                   |    9 +-
 drivers/net/wireless/wl12xx/scan.c                 |  166 ++-
 drivers/net/wireless/wl12xx/sdio_test.c            |   15 +-
 drivers/net/wireless/wl12xx/tx.c                   |   60 +-
 drivers/net/wireless/wl12xx/tx.h                   |    9 +-
 drivers/net/wireless/wl12xx/wl12xx.h               |   13 +-
 drivers/net/wireless/wl3501_cs.c                   |    2 +-
 drivers/net/wireless/zd1211rw/zd_mac.c             |    2 +-
 drivers/nfc/Kconfig                                |   11 +
 drivers/nfc/Makefile                               |    1 +
 drivers/nfc/nfcwilink.c                            |  342 ++++
 drivers/nfc/pn533.c                                |    4 +-
 drivers/staging/brcm80211/brcmsmac/mac80211_if.c   |   12 +-
 drivers/staging/winbond/wbusb.c                    |    2 +-
 include/linux/bcma/bcma_driver_chipcommon.h        |    9 +
 include/linux/ieee80211.h                          |   10 +
 include/linux/nfc.h                                |    6 +
 include/linux/nl80211.h                            |   46 +
 include/net/bluetooth/hci.h                        |   10 +
 include/net/bluetooth/hci_core.h                   |   25 +-
 include/net/bluetooth/l2cap.h                      |    8 +-
 include/net/bluetooth/mgmt.h                       |   16 +
 include/net/bluetooth/smp.h                        |   17 +
 include/net/cfg80211.h                             |   36 +-
 include/net/mac80211.h                             |   13 +-
 include/net/nfc/nci.h                              |  313 +++
 include/net/nfc/nci_core.h                         |  184 ++
 include/net/{ => nfc}/nfc.h                        |    4 +
 net/bluetooth/hci_conn.c                           |    2 +-
 net/bluetooth/hci_core.c                           |   57 +-
 net/bluetooth/hci_event.c                          |   16 +-
 net/bluetooth/hci_sock.c                           |   18 +-
 net/bluetooth/hci_sysfs.c                          |    2 +
 net/bluetooth/hidp/core.c                          |    3 +
 net/bluetooth/l2cap_core.c                         |   18 +-
 net/bluetooth/mgmt.c                               |  212 ++-
 net/bluetooth/smp.c                                |  421 +++--
 net/mac80211/cfg.c                                 |   12 +-
 net/mac80211/debugfs.c                             |   52 -
 net/mac80211/debugfs_netdev.c                      |   48 +-
 net/mac80211/driver-ops.h                          |   27 +-
 net/mac80211/driver-trace.h                        |   40 +-
 net/mac80211/ibss.c                                |    6 +-
 net/mac80211/ieee80211_i.h                         |    5 +-
 net/mac80211/iface.c                               |   10 +-
 net/mac80211/mesh_plink.c                          |    8 +
 net/mac80211/mlme.c                                |   49 +-
 net/mac80211/rate.c                                |   29 +-
 net/mac80211/scan.c                                |    3 +-
 net/mac80211/util.c                                |   23 +-
 net/mac80211/work.c                                |    2 +-
 net/nfc/Kconfig                                    |    2 +
 net/nfc/Makefile                                   |    1 +
 net/nfc/core.c                                     |   77 +
 net/nfc/nci/Kconfig                                |   10 +
 net/nfc/nci/Makefile                               |    7 +
 net/nfc/nci/core.c                                 |  797 ++++++++
 net/nfc/nci/data.c                                 |  247 +++
 net/nfc/nci/lib.c                                  |   94 +
 net/nfc/nci/ntf.c                                  |  258 +++
 net/nfc/nci/rsp.c                                  |  226 +++
 net/nfc/netlink.c                                  |   56 +
 net/nfc/nfc.h                                      |    6 +-
 net/rfkill/core.c                                  |    2 +-
 net/wireless/core.h                                |    4 +-
 net/wireless/mlme.c                                |   16 +-
 net/wireless/nl80211.c                             |  100 +-
 net/wireless/nl80211.h                             |    4 +
 net/wireless/scan.c                                |   27 +
 net/wireless/sme.c                                 |   19 +-
 net/wireless/util.c                                |   16 +-
 186 files changed, 8573 insertions(+), 4415 deletions(-)
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c
 rename drivers/net/wireless/iwlwifi/{iwl-pci.h => iwl-cfg.h} (97%)
 rename drivers/net/wireless/iwlwifi/{iwl-trans-int-pcie.h => iwl-trans-pcie-int.h} (94%)
 rename drivers/net/wireless/iwlwifi/{iwl-trans-rx-pcie.c => iwl-trans-pcie-rx.c} (97%)
 rename drivers/net/wireless/iwlwifi/{iwl-trans-tx-pcie.c => iwl-trans-pcie-tx.c} (94%)
 create mode 100644 drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
 create mode 100644 drivers/nfc/nfcwilink.c
 create mode 100644 include/net/nfc/nci.h
 create mode 100644 include/net/nfc/nci_core.h
 rename include/net/{ => nfc}/nfc.h (97%)
 create mode 100644 net/nfc/nci/Kconfig
 create mode 100644 net/nfc/nci/Makefile
 create mode 100644 net/nfc/nci/core.c
 create mode 100644 net/nfc/nci/data.c
 create mode 100644 net/nfc/nci/lib.c
 create mode 100644 net/nfc/nci/ntf.c
 create mode 100644 net/nfc/nci/rsp.c

Omnibus patch is (or should be) available here:

	http://bombadil.infradead.org/users/linville/wireless-next-2011-09-30.patch.gz

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

* [PATCH 1/1] iwlagn: rename iwlagn module iwlwifi and alias to iwlagn.
From: Wey-Yi Guy @ 2011-09-30 18:40 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Don Fry, Wey-Yi Guy
In-Reply-To: <1317408020-16627-1-git-send-email-wey-yi.w.guy@intel.com>

From: Don Fry <donald.h.fry@intel.com>

Rename the iwlagn module as iwlwifi in preparation for future
changes.  Add an alias to iwlagn for backward compatibility.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
 Documentation/feature-removal-schedule.txt |    5 +++
 drivers/net/wireless/Makefile              |    2 +-
 drivers/net/wireless/iwlwifi/Kconfig       |   22 +++++++-------
 drivers/net/wireless/iwlwifi/Makefile      |   40 ++++++++++++++--------------
 drivers/net/wireless/iwlwifi/iwl-agn.c     |    1 +
 drivers/net/wireless/iwlwifi/iwl-shared.h  |    2 +-
 6 files changed, 39 insertions(+), 33 deletions(-)

diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index dfd6a9f..1cf3dbd 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -555,3 +555,8 @@ Why:	This driver has been superseded by g_mass_storage.
 Who:	Alan Stern <stern@rowland.harvard.edu>
 
 ----------------------------
+What:	iwlagn alias support
+When:	3.5
+Why:	The iwlagn module has been renamed iwlwifi.  The alias will be around
+	for backward compatibility for several cycles and then dropped.
+Who:	Don Fry <donald.h.fry@intel.com>
\ No newline at end of file
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index 7bba6a8..4cf0ad3 100644
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -41,7 +41,7 @@ obj-$(CONFIG_ADM8211)	+= adm8211.o
 
 obj-$(CONFIG_MWL8K)	+= mwl8k.o
 
-obj-$(CONFIG_IWLAGN)	+= iwlwifi/
+obj-$(CONFIG_IWLWIFI)	+= iwlwifi/
 obj-$(CONFIG_IWLWIFI_LEGACY)	+= iwlegacy/
 obj-$(CONFIG_RT2X00)	+= rt2x00/
 
diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig
index 1d7572f..e044103 100644
--- a/drivers/net/wireless/iwlwifi/Kconfig
+++ b/drivers/net/wireless/iwlwifi/Kconfig
@@ -1,5 +1,5 @@
-config IWLAGN
-	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlagn) "
+config IWLWIFI
+	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
 	depends on PCI && MAC80211
 	select FW_LOADER
 	select NEW_LEDS
@@ -39,14 +39,14 @@ config IWLAGN
 	  If you want to compile the driver as a module ( = code which can be
 	  inserted in and removed from the running kernel whenever you want),
 	  say M here and read <file:Documentation/kbuild/modules.txt>.  The
-	  module will be called iwlagn.
+	  module will be called iwlwifi.
 
 menu "Debugging Options"
-	depends on IWLAGN
+	depends on IWLWIFI
 
 config IWLWIFI_DEBUG
-	bool "Enable full debugging output in the iwlagn driver"
-	depends on IWLAGN
+	bool "Enable full debugging output in the iwlwifi driver"
+	depends on IWLWIFI
 	---help---
 	  This option will enable debug tracing output for the iwlwifi drivers
 
@@ -70,8 +70,8 @@ config IWLWIFI_DEBUG
 	  any problems you may encounter.
 
 config IWLWIFI_DEBUGFS
-        bool "iwlagn debugfs support"
-        depends on IWLAGN && MAC80211_DEBUGFS
+        bool "iwlwifi debugfs support"
+        depends on IWLWIFI && MAC80211_DEBUGFS
         ---help---
 	  Enable creation of debugfs files for the iwlwifi drivers. This
 	  is a low-impact option that allows getting insight into the
@@ -79,13 +79,13 @@ config IWLWIFI_DEBUGFS
 
 config IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
         bool "Experimental uCode support"
-        depends on IWLAGN && IWLWIFI_DEBUG
+        depends on IWLWIFI && IWLWIFI_DEBUG
         ---help---
 	  Enable use of experimental ucode for testing and debugging.
 
 config IWLWIFI_DEVICE_TRACING
 	bool "iwlwifi device access tracing"
-	depends on IWLAGN
+	depends on IWLWIFI
 	depends on EVENT_TRACING
 	help
 	  Say Y here to trace all commands, including TX frames and IO
@@ -104,7 +104,7 @@ endmenu
 
 config IWLWIFI_DEVICE_SVTOOL
 	bool "iwlwifi device svtool support"
-	depends on IWLAGN
+	depends on IWLWIFI
 	select NL80211_TESTMODE
 	help
 	  This option enables the svtool support for iwlwifi device through
diff --git a/drivers/net/wireless/iwlwifi/Makefile b/drivers/net/wireless/iwlwifi/Makefile
index 8fa59cd..bacafa4 100644
--- a/drivers/net/wireless/iwlwifi/Makefile
+++ b/drivers/net/wireless/iwlwifi/Makefile
@@ -1,25 +1,25 @@
-# AGN
-obj-$(CONFIG_IWLAGN)	+= iwlagn.o
-iwlagn-objs		:= iwl-agn.o iwl-agn-rs.o
-iwlagn-objs		+= iwl-agn-ucode.o iwl-agn-tx.o
-iwlagn-objs		+= iwl-agn-lib.o iwl-agn-calib.o iwl-io.o
-iwlagn-objs		+= iwl-agn-tt.o iwl-agn-sta.o
+# WIFI
+obj-$(CONFIG_IWLWIFI)	+= iwlwifi.o
+iwlwifi-objs		:= iwl-agn.o iwl-agn-rs.o
+iwlwifi-objs		+= iwl-agn-ucode.o iwl-agn-tx.o
+iwlwifi-objs		+= iwl-agn-lib.o iwl-agn-calib.o iwl-io.o
+iwlwifi-objs		+= iwl-agn-tt.o iwl-agn-sta.o
 
-iwlagn-objs		+= iwl-core.o iwl-eeprom.o iwl-power.o
-iwlagn-objs		+= iwl-rx.o iwl-sta.o
-iwlagn-objs		+= iwl-scan.o iwl-led.o
-iwlagn-objs		+= iwl-agn-rxon.o
-iwlagn-objs		+= iwl-5000.o
-iwlagn-objs		+= iwl-6000.o
-iwlagn-objs		+= iwl-1000.o
-iwlagn-objs		+= iwl-2000.o
-iwlagn-objs		+= iwl-pci.o
-iwlagn-objs		+= iwl-trans.o
-iwlagn-objs		+= iwl-trans-pcie.o iwl-trans-pcie-rx.o iwl-trans-pcie-tx.o
+iwlwifi-objs		+= iwl-core.o iwl-eeprom.o iwl-power.o
+iwlwifi-objs		+= iwl-rx.o iwl-sta.o
+iwlwifi-objs		+= iwl-scan.o iwl-led.o
+iwlwifi-objs		+= iwl-agn-rxon.o
+iwlwifi-objs		+= iwl-5000.o
+iwlwifi-objs		+= iwl-6000.o
+iwlwifi-objs		+= iwl-1000.o
+iwlwifi-objs		+= iwl-2000.o
+iwlwifi-objs		+= iwl-pci.o
+iwlwifi-objs		+= iwl-trans.o
+iwlwifi-objs		+= iwl-trans-pcie.o iwl-trans-pcie-rx.o iwl-trans-pcie-tx.o
 
-iwlagn-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
-iwlagn-$(CONFIG_IWLWIFI_DEVICE_TRACING) += iwl-devtrace.o
-iwlagn-$(CONFIG_IWLWIFI_DEVICE_SVTOOL) += iwl-sv-open.o
+iwlwifi-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
+iwlwifi-$(CONFIG_IWLWIFI_DEVICE_TRACING) += iwl-devtrace.o
+iwlwifi-$(CONFIG_IWLWIFI_DEVICE_SVTOOL) += iwl-sv-open.o
 
 CFLAGS_iwl-devtrace.o := -I$(src)
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index baaf486..d0fd6f0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -79,6 +79,7 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION);
 MODULE_VERSION(DRV_VERSION);
 MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("iwlagn");
 
 void iwl_update_chain_flags(struct iwl_priv *priv)
 {
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h
index 8747bbd..3a24b47 100644
--- a/drivers/net/wireless/iwlwifi/iwl-shared.h
+++ b/drivers/net/wireless/iwlwifi/iwl-shared.h
@@ -100,7 +100,7 @@ struct iwl_priv;
 struct iwl_sensitivity_ranges;
 struct iwl_trans_ops;
 
-#define DRV_NAME        "iwlagn"
+#define DRV_NAME        "iwlwifi"
 #define IWLWIFI_VERSION "in-tree:"
 #define DRV_COPYRIGHT	"Copyright(c) 2003-2011 Intel Corporation"
 #define DRV_AUTHOR     "<ilw@linux.intel.com>"
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 0/1] update for 3.2
From: Wey-Yi Guy @ 2011-09-30 18:40 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Wey-Yi Guy

We rename the driver name from iwlagn to iwlwifi. This is the preparation for
future driver partition work to support multiple device architectures.

We will have the alias support for "iwlagn" which will be deprecate on kernel
release 3.5.

Don Fry (1):
  iwlagn: rename iwlagn module iwlwifi and alias to iwlagn.

these patches are also available from wireless-next-2.6 branch on
 git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git

Because the file system problem, all the patches are not push into 
git.kernel.org yet. I will push as soon as the file system issue addressed

 Documentation/feature-removal-schedule.txt |    5 +++
 drivers/net/wireless/Makefile              |    2 +-
 drivers/net/wireless/iwlwifi/Kconfig       |   22 +++++++-------
 drivers/net/wireless/iwlwifi/Makefile      |   40 ++++++++++++++--------------
 drivers/net/wireless/iwlwifi/iwl-agn.c     |    1 +
 drivers/net/wireless/iwlwifi/iwl-shared.h  |    2 +-
 6 files changed, 39 insertions(+), 33 deletions(-)


^ permalink raw reply

* Re: pull request: wireless-next 2011-09-30
From: David Miller @ 2011-09-30 19:27 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, netdev
In-Reply-To: <20110930191131.GC2526@tuxdriver.com>

From: "John W. Linville" <linville@tuxdriver.com>
Date: Fri, 30 Sep 2011 15:11:31 -0400

> Here is yet another big package of wireless updates for 3.2.  Highlights
> include a bluetooth pull, a wl12xx pull, and a pull of the wireless tree
> to fix some merge issues.  Also included is the usual big sets of
> updates to ath9k, iwlagn, b43, and others.  Plus, the NFC subsystem grew
> NCI support.
> 
> Please let me know if there are problems!

Pulled, thanks John.

^ permalink raw reply

* Re: [PATCH] libertas: detect TX lockups and reset hardware
From: John W. Linville @ 2011-09-30 19:15 UTC (permalink / raw)
  To: Daniel Drake; +Cc: dcbw, linux-wireless, libertas-dev
In-Reply-To: <20110921153017.8FDAE9D401D@zog.reactivated.net>

On Wed, Sep 21, 2011 at 04:30:17PM +0100, Daniel Drake wrote:
> Recent patches added support for resetting the SD8686 hardware when
> commands time out, which seems to happen quite frequently soon after
> resuming the system from a Wake-on-WLAN-triggered resume.
> 
> At http://dev.laptop.org/ticket/10969 we see the same thing happen
> with transmits. In this case, the hardware will fail to respond to
> a frame passed for transmission, and libertas (correctly) will block
> all further commands and transmissions as the hardware can only
> deal with one thing at a time. This results in a lockup while the
> system waits indefinitely for the dead card to respond.
> 
> Hook up a TX lockup timer to detect this and reset the hardware.
> 
> Signed-off-by: Daniel Drake <dsd@laptop.org>

> @@ -995,6 +1029,7 @@ void lbs_stop_card(struct lbs_private *priv)
>  
>  	/* Delete the timeout of the currently processing command */
>  	del_timer_sync(&priv->command_timer);
> +	del_timer_sync(&priv->tx_lockup_timer);
>  	del_timer_sync(&priv->auto_deepsleep_timer);
>  
>  	/* Flush pending command nodes */

This hunk doesn't apply.  What tree are you using as a base?

John
-- 
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 3/3] mac80211: pass vif param to conf_tx() callback
From: John W. Linville @ 2011-09-30 19:57 UTC (permalink / raw)
  To: Eliad Peller; +Cc: Johannes Berg, linux-wireless
In-Reply-To: <1316970415-23239-3-git-send-email-eliad@wizery.com>

On Sun, Sep 25, 2011 at 08:06:55PM +0300, Eliad Peller wrote:
> tx params should be configured per interface.
> Add ieee80211_vif param to the conf_tx callback,
> and update all the drivers that use this callback.
> 
> The following spatch was used:
> @rule1@
> struct ieee80211_ops ops;
> identifier conf_tx_op;
> @@
> 	ops.conf_tx = conf_tx_op;
> 
> @rule2@
> identifier rule1.conf_tx_op;
> identifier hw, queue, params;
> @@
> 	conf_tx_op (
> -		struct ieee80211_hw *hw,
> +		struct ieee80211_hw *hw, struct ieee80211_vif *vif,
> 		u16 queue,
> 		const struct ieee80211_tx_queue_params *params) {...}
> 
> Signed-off-by: Eliad Peller <eliad@wizery.com>

You really need to compile patches before submitting them...

  CC [M]  drivers/net/wireless/iwlegacy/iwl3945-base.o
drivers/net/wireless/iwlegacy/iwl3945-base.c:3522:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/iwlegacy/iwl-4965.o
drivers/net/wireless/iwlegacy/iwl-4965.c:2125:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/iwlwifi/iwl-agn.o
drivers/net/wireless/iwlwifi/iwl-agn.c:3092:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/rt2x00/rt2500pci.o
drivers/net/wireless/rt2x00/rt2500pci.c:2005:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/rt2x00/rt2800pci.o
drivers/net/wireless/rt2x00/rt2800pci.c:1021:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/rt2x00/rt2500usb.o
drivers/net/wireless/rt2x00/rt2500usb.c:1824:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/rt2x00/rt2800usb.o
drivers/net/wireless/rt2x00/rt2800usb.c:766:2: warning: initialization from incompatible pointer type

  CC [M]  drivers/net/wireless/mwl8k.o
drivers/net/wireless/mwl8k.c: In function ‘mwl8k_reload_firmware’:
drivers/net/wireless/mwl8k.c:5466:3: warning: passing argument 2 of ‘mwl8k_conf_tx’ makes pointer from integer without a cast
drivers/net/wireless/mwl8k.c:4918:12: note: expected ‘struct ieee80211_vif *’ but argument is of type ‘int’
drivers/net/wireless/mwl8k.c:5466:3: warning: passing argument 3 of ‘mwl8k_conf_tx’ makes integer from pointer without a cast
drivers/net/wireless/mwl8k.c:4918:12: note: expected ‘u16’ but argument is of type ‘struct ieee80211_tx_queue_params *’
drivers/net/wireless/mwl8k.c:5466:3: error: too few arguments to function ‘mwl8k_conf_tx’
drivers/net/wireless/mwl8k.c:4918:12: note: declared here
make[1]: *** [drivers/net/wireless/mwl8k.o] Error 1
make: *** [drivers/net/wireless/] Error 2

Feel free to submit a new patch that doesn't introduce warnings or break the build...

John
-- 
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 v2] Move brcm80211 to mainline
From: Arend Van Spriel @ 2011-09-30 21:54 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Greg KH, linville@tuxdriver.com, devel@linuxdriverproject.org,
	linux-wireless@vger.kernel.org, Brett Rudley, Roland Vossen,
	Franky (Zhenhui) Lin
In-Reply-To: <1314248569.5054.43.camel@jlt3.sipsolutions.net>

PiBGcm9tOiBKb2hhbm5lcyBCZXJnIFttYWlsdG86am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldF0N
Cj4gU2VudDogZG9uZGVyZGFnIDI1IGF1Z3VzdHVzIDIwMTEgNzowMw0KPiANCj4gPiArI2RlZmlu
ZSBMT0NLKHdsKQlzcGluX2xvY2tfYmgoJih3bCktPmxvY2spDQo+IA0KPiBObyB3YXkgLi4uDQo+
IA0KDQpIaSBKb2hhbm5lcywNCg0KWW91ciBjb21tZW50IGlzIGEgYml0IG9wZW4gZm9yIGludGVy
cHJldGF0aW9uIChvciBub3QgOy0pICkuIENvdWxkIHlvdSBlbGFib3JhdGUgb24gdGhpcyBvbmU/
DQoNCkdyLiBBdlMNCg==


^ permalink raw reply

* Re: [PATCH v2] Move brcm80211 to mainline
From: Luis R. Rodriguez @ 2011-09-30 22:11 UTC (permalink / raw)
  To: Arend Van Spriel
  Cc: Johannes Berg, Greg KH, linville@tuxdriver.com,
	devel@linuxdriverproject.org, linux-wireless@vger.kernel.org,
	Brett Rudley, Roland Vossen, Franky (Zhenhui) Lin
In-Reply-To: <400C43189542CE41BC0A5B252FC90136BC0CF45AE8@SJEXCHCCR02.corp.ad.broadcom.com>

On Fri, Sep 30, 2011 at 2:54 PM, Arend Van Spriel <arend@broadcom.com> wrote:
>> From: Johannes Berg [mailto:johannes@sipsolutions.net]
>> Sent: donderdag 25 augustus 2011 7:03
>>
>> > +#define LOCK(wl)   spin_lock_bh(&(wl)->lock)
>>
>> No way ...
>>
>
> Hi Johannes,
>
> Your comment is a bit open for interpretation (or not ;-) ). Could you elaborate on this one?

Dude, just kill the define.

  Luis

^ permalink raw reply

* [PATCH net-next] drivers/net: Add module.h to wireless/ath/ath6kl/sdio.c
From: Paul Gortmaker @ 2011-09-30 23:07 UTC (permalink / raw)
  To: davem; +Cc: netdev, linville, kvalo, linux-wireless, Paul Gortmaker

This file uses various MODULE_* macros, and so needs the full
module.h header called out explicitly.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>

---

[Dave: I can't carry this in the module.h tree with all the other one
line patches, as it only exists in trees based off wireless/net-next.
It fixes a compile failure that shows up in linux-next.  Thanks.]

diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 3417160..ca4a93e 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -14,6 +14,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <linux/module.h>
 #include <linux/mmc/card.h>
 #include <linux/mmc/mmc.h>
 #include <linux/mmc/host.h>
-- 
1.7.6


^ permalink raw reply related


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