Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH] rt2x00: rt2800lib: fix default VGC values for RT3572 for the 5GHz band
From: Gabor Juhos @ 2013-10-04 20:07 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless, users, Gabor Juhos

The rt2x00 driver uses 0x22 as a default VGC value
in VGC adjustment for the RT3572 chipset. In the
Ralink DPO_RT5572_LinuxSTA_2.6.1.3_20121022 driver,
this value is only used for initialization. During
VGC adjustment, the reference driver uses different
values.

Update the 'rt2800_get_default_vgc' function to
synchronize the values with the reference driver.
Also add the missing AGC initialization code into
the 'rt2800_config_channel' function.

References:
  RT35xx_SetAGCInitValue in chip/rt35xx.c
  RT35xx_ChipAGCAdjust in chip/rt35xx.c

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
 drivers/net/wireless/rt2x00/rt2800lib.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 95c18dc..7508729 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -3310,9 +3310,18 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
 
 	rt2800_register_write(rt2x00dev, TX_PIN_CFG, tx_pin);
 
-	if (rt2x00_rt(rt2x00dev, RT3572))
+	if (rt2x00_rt(rt2x00dev, RT3572)) {
 		rt2800_rfcsr_write(rt2x00dev, 8, 0x80);
 
+		/* AGC init */
+		if (rf->channel <= 14)
+			reg = 0x1c + (2 * rt2x00dev->lna_gain);
+		else
+			reg = 0x22 + ((rt2x00dev->lna_gain * 5) / 3);
+
+		rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
+	}
+
 	if (rt2x00_rt(rt2x00dev, RT3593)) {
 		rt2800_register_read(rt2x00dev, GPIO_CTRL, &reg);
 
@@ -4421,9 +4430,7 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev *rt2x00dev)
 		else
 			vgc = 0x2e + rt2x00dev->lna_gain;
 	} else { /* 5GHZ band */
-		if (rt2x00_rt(rt2x00dev, RT3572))
-			vgc = 0x22 + (rt2x00dev->lna_gain * 5) / 3;
-		else if (rt2x00_rt(rt2x00dev, RT3593))
+		if (rt2x00_rt(rt2x00dev, RT3593))
 			vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
 		else if (rt2x00_rt(rt2x00dev, RT5592))
 			vgc = 0x24 + (2 * rt2x00dev->lna_gain);
-- 
1.7.10

^ permalink raw reply related

* Re: [rt2x00-users] [PATCH v2 3/4] rt2x00: rt2800lib: fix default VGC values for RT3593
From: Gabor Juhos @ 2013-10-04 19:59 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: John Linville, linux-wireless, users
In-Reply-To: <20131004143822.GC7842@localhost.localdomain>

2013.10.04. 16:38 keltezéssel, Stanislaw Gruszka írta:
> On Thu, Oct 03, 2013 at 08:00:42PM +0200, Gabor Juhos wrote:
>> Update the rt2800_get_default_vgc function to use the same VGC
>> values that the DPO_RT5572_LinuxSTA_2.6.1.3_20121022 reference
>> driver uses.
>>
>> References:
>>   RT35xx_ChipAGCAdjust in chips/rt35xx.c
>>   RT3593_R66_MID_LOW_SENS_GET macro in include/chip/rt3593.h
>>   RT3593_R66_NON_MID_LOW_SEMS_GET macro in include/chips/rt3593.h
>>
>> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> 
> Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
> 
>> @@ -4422,6 +4423,8 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev *rt2x00dev)
>>  	} else { /* 5GHZ band */
>>  		if (rt2x00_rt(rt2x00dev, RT3572))
>>  			vgc = 0x22 + (rt2x00dev->lna_gain * 5) / 3;
> 
> Looks RT3572 values should be also changed ? According to:
> 
>                 if (pAd->CommonCfg.BBPCurrentBW == BW_20)
>                 {
>                         R66 = 0x32 + (lanGain*5) / 3;
>                         if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
>                                 R66 += 0x10;
>                 }
>                 else
>                 {
>                         R66 = 0x3A + (lanGain*5)/3;
>                         if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
>                                 R66 += 0x10;
>                 }       

Yes. I even created a patch for that, but I forgot to add that into the series.
Will send that separately.

-Gabor

^ permalink raw reply

* Re: [GIT PULL] firmware: wl1251 firmware binary
From: Luca Coelho @ 2013-10-04 19:43 UTC (permalink / raw)
  To: balbi; +Cc: dwmw2, ben, Linux Kernel Mailing List, linux-wireless,
	Pavel Machek
In-Reply-To: <20131004153246.GJ16059@radagast>

On Fri, 2013-10-04 at 10:32 -0500, Felipe Balbi wrote:
> diff --git a/LICENCE.wl1251 b/LICENCE.wl1251
> new file mode 100644
> index 0000000..bd0f5f1
> --- /dev/null
> +++ b/LICENCE.wl1251
> @@ -0,0 +1,59 @@
> +Copyright (c) 2000 – 2013 Texas Instruments Incorporated
> +
> +All rights reserved not granted herein.
> +
> +Limited License.
> +
> +Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
> +license under copyrights and patents it now or hereafter owns or controls to
> +make, have made, use, import, offer to sell and sell ("Utilize") this software
> +subject to the terms herein.  With respect to the foregoing patent license,
> +such license is granted  solely to the extent that any such patent is necessary
> +to Utilize the software alone.  The patent license shall not apply to any
> +combinations which include this software, other than combinations with devices
> +manufactured by or for TI (“TI Devices”).  No hardware patent is licensed
> +hereunder.
> +
> +Redistributions must preserve existing copyright notices and reproduce this
> +license (including the above copyright notice and the disclaimer and (if
> +applicable) source code license limitations below) in the documentation and/or
> +other materials provided with the distribution
> +
> +Redistribution and use in binary form, without modification, are permitted
> +provided that the following conditions are met:
> +
> +*	No reverse engineering, decompilation, or disassembly of this software
> +	is permitted with respect to any software provided in binary form.
> +
> +*	any redistribution and use are licensed by TI for use only with TI
> +	Devices.
> +
> +*	Nothing shall obligate TI to provide you with source code for the
> +	software licensed and provided to you in object code.
> +
> +If software source code is provided to you, modification and redistribution of
> +the source code are permitted provided that the following conditions are met:
> +
> +*	any redistribution and use of the source code, including any resulting
> +	derivative works, are licensed by TI for use only with TI Devices.
> +
> +*	any redistribution and use of any object code compiled from the source
> +	code and any resulting derivative works, are licensed by TI for use
> +	only with TI Devices.
> +
> +Neither the name of Texas Instruments Incorporated nor the names of its
> +suppliers may be used to endorse or promote products derived from this software
> +without specific prior written permission.
> +
> +DISCLAIMER.
> +
> +THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS OR
> +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
> +EVENT SHALL TI AND TI’S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
> +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
> +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> diff --git a/WHENCE b/WHENCE
> index aac3ba9..3a35670 100644
> --- a/WHENCE
> +++ b/WHENCE
> @@ -1712,6 +1712,24 @@ Licence: Redistributable. See LICENCE.tda7706-firmware.txt for details.
>  
>  --------------------------------------------------------------------------
>  
> +Driver: wl1251 - Texas Instruments 802.11 WLAN driver for WiLink4 chips
> +
> +File: ti-connectivity/wl1251-fw.bin
> +Version: 4.0.4.3.7
> +
> +File: ti-connectivity/wl1251-nvs.bin
> +
> +Licence: See LICENCE.wl1251 for details.
> +
> +The published NVS files are for testing only.  Every device needs to
> +have a unique NVS which is properly calibrated for best results.
> +
> +The driver expects to find the firmwares under a ti-connectivity subdirectory.
> +So if your system looks for firmwares in /lib/firmware, the firmwares for
> +wl12xx chips must be located in /lib/firmware/ti-connectivity/.
> +
> +--------------------------------------------------------------------------
> +
>  Driver: wl12xx - Texas Instruments 802.11 WLAN driver for WiLink6/7 chips
>  
>  File: ti-connectivity/wl1271-fw.bin
> diff --git a/ti-connectivity/wl1251-fw.bin b/ti-connectivity/wl1251-fw.bin
> new file mode 100644
> index 0000000..f89c983
> Binary files /dev/null and b/ti-connectivity/wl1251-fw.bin differ
> diff --git a/ti-connectivity/wl1251-nvs.bin b/ti-connectivity/wl1251-nvs.bin
> new file mode 100644
> index 0000000..2bf9c50
> Binary files /dev/null and b/ti-connectivity/wl1251-nvs.bin differ
> 

Looks good to me:

Acked-by: Luciano Coelho <luca@coelho.fi>

--
Luca.


^ permalink raw reply

* pull request: wireless-next 2013-10-04
From: John W. Linville @ 2013-10-04 18:16 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev

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

Dave,

Please pull this batch of patches intended for the 3.13 stream!

Regarding the Bluetooth bits, Gustavo says:

"The big work here is from Marcel and Johan. They did a lot of work
in the L2CAP, HCI and MGMT layers. The most important ones are the
addition of a new MGMT command to enable/disable LE advertisement
and the introduction of the HCI user channel to allow applications
to get directly and exclusive access to Bluetooth devices."

As to the ath10k bits, Kalle says:

"Bartosz dropped support for qca98xx hw1.0 hardware from ath10k, it's
just too much to support it. Michal added support for the new firmware
interface. Marek fixed WEP in AP and IBSS mode. Rest of the changes are
minor fixes or cleanups."

And also:

"Major changes are:

* throughput improvements including aligning the RX frames correctly and
  optimising HTT layer (Michal)

* remove qca98xx hw1.0 support (Bartosz)

* add support for firmware version 999.999.0.636 (Michal)

* firmware htt statistics support (Kalle)

* fix WEP in AP and IBSS mode (Marek)

* fix a mutex unlock balance in debugfs file (Shafi)

And of course there's a lot of smaller fixes and cleanup."

For the wl12xx bits, Luca says:

"Here are some patches intended for 3.13.  Eliad is upstreaming a bunch
of patches that have been pending in the internal tree.  Mostly bugfixes
and other small improvements."

Along with that...

Arend and friends bring us a batch of brcmfmac updates, Larry Finger
offers some rtlwifi refactoring, and Sujith sends the usual batch of
ath9k updates.  As usual, there are a number of other small updates
from a variety of players as well.

Please let me know if there are any problems!

Thanks,

John

---

The following changes since commit
96f817fedec48b59c9e8b22141cec4e56ad47913:

  tcp: shrink tcp6_timewait_sock by one cache line (2013-10-03
  17:43:39 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git
  for-davem

for you to fetch changes up to
c522ddf1aea71c2cb8ea4876697bc69bdfb5446f:

  Merge branch 'master' of
  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
  into for-davem (2013-10-04 13:26:50 -0400)

----------------------------------------------------------------

Albert Pool (1):
      ar5523: Add USB ID of D-Link WUA-2340 rev A1

Amitkumar Karwar (4):
      Bluetooth: btmrvl: add btmrvl_send_sync_cmd() function
      Bluetooth: btmrvl: get rid of struct btmrvl_cmd
      Bluetooth: btmrvl: add setup handler
      Bluetooth: btmrvl: add calibration data download support

Arend van Spriel (2):
      brcmfmac: fix sparse error 'bad constant expression'
      brcmfmac: rework rx path bus interface

Arik Nemtsov (3):
      wlcore: ROC on AP channel before auth reply
      wlcore: re-enable idle handling
      wlcore: always register dummy hardirq

Bartosz Markowski (5):
      ath10k: Remove qca98xx hw1.0 support
      ath10k: update supported FW build version
      ath10k: set the UART baud rate to 19200
      ath10k: remove obsolete INIT STATUS definitions
      ath10k: define ath10k_debug_start/_stop as static inline

Catalin Iacob (1):
      rtlwifi: remove duplicate declarations and macros in headers

Chris Metcalf (1):
      ath9k: mark wmi_event_swba as __packed

Dave Jones (1):
      ath10k: add missing braces to ath10k_pci_tx_pipe_cleanup

DoHyun Pyun (8):
      Bluetooth: Add the definition and structure for Set Reserved LT_ADDR
      Bluetooth: Add the definition and structure for Delete Reserved LT_ADDR
      Bluetooth: Add the definition and structure for Set CSB Data
      Bluetooth: Add the structure for Write Sync Train Parameters
      Bluetooth: Add the definition and structure for Set CSB
      Bluetooth: Add the definition for Start Synchronization Train
      Bluetooth: Add the definition and stcuture for Sync Train Complete
      Bluetooth: Add the definition for Slave Page Response Timeout

Eliad Peller (2):
      wlcore: remove unsupported channels
      wlcore: clarify and fix regulatory domain bit translation

Franky Lin (4):
      brcmfmac: sync firmware event list
      brcmfmac: add BCM4339 SDIO interface support
      brcmfmac: add valid core index check in related functions
      brcmfmac: reserve memory for bus layer in sk_buff::cb

Gabor Juhos (1):
      rt2x00: rt2800lib: fix band selection and LNA PE control for RT3593 PCIe cards

Gustavo Padovan (1):
      Merge git://git.kernel.org/.../bluetooth/bluetooth

Hante Meuleman (1):
      brcmfmac: Use fw filename and nvram based of devid for sdio.

Janusz Dziedzic (2):
      ath10k: setup peer UAPSD flag correctly
      ath10k: check allocation errors in CE

Jingoo Han (21):
      wireless: ath10k: remove unnecessary pci_set_drvdata()
      mwifiex: Remove casting the return value which is a void pointer
      wireless: ath5k: use dev_get_platdata()
      wireless: ath9k: use dev_get_platdata()
      wireless: brcmfmac: use dev_get_platdata()
      wireless: cw1200: use dev_get_platdata()
      wireless: libertas: use dev_get_platdata()
      wireless: wl1251: use dev_get_platdata()
      wireless: wlcore: use dev_get_platdata()
      wireless: wl12xx: use dev_get_platdata()
      wireless: rtlwifi: remove unnecessary pci_set_drvdata()
      wireless: iwlegacy: remove unnecessary pci_set_drvdata()
      wireless: adm8211: remove unnecessary pci_set_drvdata()
      wireless: airo: remove unnecessary pci_set_drvdata()
      wireless: ath10k: remove unnecessary pci_set_drvdata()
      wireless: wil6210: remove unnecessary pci_set_drvdata()
      wireless: ipw2x00: remove unnecessary pci_set_drvdata()
      wireless: mwl8k: remove unnecessary pci_set_drvdata()
      wireless: orinoco: remove unnecessary pci_set_drvdata()
      wireless: p54pci: remove unnecessary pci_set_drvdata()
      wireless: rtl818x: remove unnecessary pci_set_drvdata()

Johan Hedberg (23):
      Bluetooth: Remove unused event mask struct
      Bluetooth: Fix double error response for l2cap_create_chan_req
      Bluetooth: Fix L2CAP error return used for failed channel lookups
      Bluetooth: Fix L2CAP Disconnect response for unknown CID
      Bluetooth: Fix L2CAP command reject reason
      Bluetooth: Fix sending responses to identified L2CAP response packets
      Bluetooth: Fix responding to invalid L2CAP signaling commands
      Bluetooth: Fix waiting for clearing of BT_SK_SUSPEND flag
      Bluetooth: Add synchronization train parameters reading support
      Bluetooth: Add event mask page 2 setting support
      Bluetooth: Add clarifying comment to bt_sock_wait_state()
      Bluetooth: Clean up socket locking in l2cap_sock_recvmsg
      Bluetooth: Fix busy return for mgmt_set_powered in some cases
      Bluetooth: Move mgmt response convenience functions to a better location
      Bluetooth: Use async request for LE enable/disable
      Bluetooth: Add new mgmt setting for LE advertising
      Bluetooth: Add new mgmt_set_advertising command
      Bluetooth: Refactor hci_dev_open to a separate hci_dev_do_open function
      Bluetooth: Fix workqueue synchronization in hci_dev_open
      Bluetooth: Introduce a new HCI_BREDR_ENABLED flag
      Bluetooth: Add a new mgmt_set_bredr command
      Bluetooth: Fix REJECTED vs NOT_SUPPORTED mgmt responses
      Bluetooth: Fix advertising data flags with disabled BR/EDR

Johannes Berg (1):
      iwlwifi: pcie: fix merge damage

John W. Linville (5):
      Merge branch 'for-linville' of git://github.com/kvalo/ath
      Merge branch 'for-linville' of git://git.kernel.org/.../luca/wl12xx
      Merge tag 'for-linville-20131001' of git://github.com/kvalo/ath
      Merge branch 'for-upstream' of git://git.kernel.org/.../bluetooth/bluetooth-next
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next into for-davem

Kalle Valo (22):
      ath10k: remove un ar_pci->cacheline_sz field
      ath10k: pci: make host_ce_config_wlan[] more readable
      ath10k: make target_ce_config_wlan more readable
      ath10k: remove void pointer from struct ath10k_pci_compl
      ath10k: convert ath10k_pci_reg_read/write32() to take struct ath10k
      ath10k: clean up ath10k_ce_completed_send_next_nolock()
      ath10k: convert ath10k_pci_wake() to return
      ath10k: simplify ath10k_ce_init() wake up handling
      ath10k: check chip id from the soc register during probe
      ath10k: add chip_id file to debugfs
      ath10k: add trace event ath10k_htt_stats
      ath10k: implement ath10k_debug_start/stop()
      ath10k: add htt_stats_enable debugfs file
      ath10k: add BMI log level
      ath10k: rename ATH10K_DBG_CORE to BOOT
      ath10k: cleanup debug messages in core.c
      ath10k: add boot debug messages to pci.c and ce.c
      ath10k: add boot debug messages to htc.c
      ath10k: add boot messages to htt.c
      ath10k: clean mac.c debug messages
      ath10k: print phymode as a string
      ath10k: delete struct ce_sendlist

Kevin Lo (1):
      rt2x00: Fix rf register for RT3070

Larry Finger (16):
      rtlwifi: rtl8192cu: Convert driver to use rtl_process_phyinfo()
      rtlwifi: rtl8192du: Fix smatch errors in /rtl8192de/dm.c
      rtlwifi: rtl8192de: Fix smatch warnings in rtl8192de/hw.c
      rtlwifi: rtl8192cu: Fix smatch warning in rtl8192cu/trx.c
      rtlwifi: rtl8192_common: Fix smatch errors and warnings in rtl8192c/dm_common.c
      rtlwifi: Fix smatch warning in pci.c
      rtlwifi: Fix smatch warnings in usb.c
      rtlwifi: rtl8188ee: Fix smatch warning in rtl8188ee/hw.c
      rtlwifi: Remove all remaining references to variable 'noise' in rtl_stats struct
      rtlwifi: Implement a common rtl_phy_scan_operation_backup() routine
      rtlwifi: rtl8192cu: Convert to use new rtl_phy_scan_operation_backup() routine
      rtlwifi: rtl8192ce: Convert driver to use new rtl_phy_scan_operation_backup() routine
      rtlwifi: rtl8192c: Remove rtl8192c_phy_scan_operation_backup()
      rtlwifi: rtl8192ce: Convert driver to use new rtl_phy_scan_operation_backup() routine
      rtlwifi: rtl8723ae: Convert driver to use new rtl_phy_scan_operation_backup() routine
      rtlwifi: rtl8188ee: Convert driver to use new rtl_phy_scan_operation_backup() routine

Marcel Holtmann (35):
      Bluetooth: Refactor raw socket filter into more readable code
      Bluetooth: Fix handling of getpeername() for HCI sockets
      Bluetooth: Fix handling of getsockname() for HCI sockets
      Bluetooth: Report error for HCI reset ioctl when device is down
      Bluetooth: Fix error handling for HCI socket options
      Bluetooth: Restrict ioctls to HCI raw channel sockets
      Bluetooth: Introduce user channel flag for HCI devices
      Bluetooth: Introduce new HCI socket channel for user operation
      Bluetooth: Use devname:vhci module alias for virtual HCI driver
      Bluetooth: Add support creating virtual AMP controllers
      Bluetooth: Disable upper layer connections when user channel is active
      Bluetooth: Use GFP_KERNEL when cloning SKB in a workqueue
      Bluetooth: Only schedule raw queue when user channel is active
      Bluetooth: Use only 2 bits for controller type information
      Bluetooth: Replace BDADDR_LOCAL with BDADDR_NONE
      Bluetooth: Provide high speed configuration option
      Bluetooth: Send new settings event when changing high speed option
      Bluetooth: Require CAP_NET_ADMIN for HCI User Channel operation
      Bluetooth: Enable -D__CHECK_ENDIAN__ for sparse by default
      Bluetooth: Restrict disabling of HS when controller is powered off
      Bluetooth: Add management command for setting static address
      Bluetooth: Increment management interface revision
      Bluetooth: Fix memory leak with L2CAP signal channels
      Bluetooth: Restrict SSP setting changes to BR/EDR enabled controllers
      Bluetooth: Allow setting static address even if LE is disabled
      Bluetooth: Restrict loading of link keys to BR/EDR capable controllers
      Bluetooth: Restrict loading of long term keys to LE capable controllers
      Bluetooth: Allow changing device class when BR/EDR is disabled
      Bluetooth: Fix switch statement order for L2CAP fixed channels
      Bluetooth: Don't copy L2CAP LE signalling to raw sockets
      Bluetooth: SMP packets are only valid on LE connections
      Bluetooth: L2CAP connectionless channels are only valid for BR/EDR
      Bluetooth: Drop packets on ATT fixed channel on BR/EDR
      Bluetooth: Check minimum length of SMP packets
      Bluetooth: Only one command per L2CAP LE signalling is supported

Marek Puzyniak (1):
      ath10k: fix WEP in AP and IBSS mode

Michal Kazior (36):
      ath10k: clean up monitor start code
      ath10k: use sizeof(*var) in kmalloc
      ath10k: clean up PCI completion states
      ath10k: print errcode when CE ring setup fails
      ath10k: fix HTT service setup
      ath10k: implement 802.3 SNAP rx decap type A-MSDU handling
      ath10k: plug possible memory leak in WMI
      ath10k: add support for firmware newer than 636
      ath10k: add support for HTT 3.0
      ath10k: use inline ce_state structure
      ath10k: remove ce_op_state
      ath10k: remove unused ce_attr parameters
      ath10k: rename hif_ce_pipe_info to ath10k_pci_pipe
      ath10k: rename ce_state to ath10k_ce_pipe
      ath10k: rename ce_ring_state to ath10k_ce_ring
      ath10k: prevent CE from looping indefinitely
      ath10k: simplify HTC credits calculation
      ath10k: add HTC TX credits replenishing notification
      ath10k: make WMI commands block by design
      ath10k: simplify HTC command submitting
      ath10k: improve beacon submission latency
      ath10k: remove wmi pending count limit
      ath10k: remove wmi event worker thread
      ath10k: fix tracing build for ath10k_wmi_cmd
      ath10k: fix num_sends_allowed replenishing
      ath10k: use num_pending_tx instead of msdu id bitmap
      ath10k: avoid needless memset on TX path
      ath10k: decouple HTT TX completions
      ath10k: cleanup HTT TX functions
      ath10k: use msdu headroom to store txfrag
      ath10k: report A-MSDU subframes individually
      ath10k: document decap modes
      ath10k: cleanup RX decap handling
      ath10k: fix Native Wifi decap mode RX
      ath10k: align RX frames properly
      ath10k: replenish HTT RX buffers in a tasklet

Mohammed Shafi Shajakhan (1):
      ath10k: Fix mutex unlock balance

Peter Senna Tschudin (2):
      Bluetooth: Fix assignment of 0/1 to bool variables
      wireless: rtlwifi: Replace variable with a break

Sachin Kamat (1):
      net: ath9k: Use NULL instead of false

Stanislaw Gruszka (2):
      rt2800: comment enable radio initialization sequence
      rt2800: add support for radio chip RF3070

Sujith Manoharan (21):
      ath10k: Calculate correct peer PHY mode for VHT
      ath9k: Update initvals for AR9565 1.0
      ath9k: Bypass EEPROM for diversity cap for AR9565
      ath9k: Fix antenna diversity init for AR9565
      ath9k: Use correct RX gain table for AR9565
      ath9k: Add support for AR9565 v1.0.1 LNA diversity
      ath9k: Enable antenna diversity for WB335
      ath9k: Identify CUS252 cards
      ath9k: Identify WB335 Antenna configuration
      ath9k: Fix regulatory compliance for AR9462/AR9565
      ath9k: Add and use initvals for channel 14
      ath9k: Update AR9485 1.1 initvals
      ath9k: Add DELL 1707 to supported card table
      ath9k: Fix calibration for AR9462
      ath9k: Fix issue with parsing malformed CFP IE
      ath9k: Handle abnormal NAV in AP mode
      ath9k: Use bitops for calibration flags
      ath9k: Fix PeakDetect calibration for AR9462
      ath9k: Fix NF calibration for single stream cards
      ath9k: Handle FATAL interrupts correctly
      ath9k: Remove incorrect diversity initialization

Victor Goldenshtein (4):
      wlcore: cleanup scan debug prints
      wlcore: fix unsafe dereference of the wlvif
      wl18xx: fix boot process in high temperature environment
      wl18xx: print new RDL versions during boot

Xose Vazquez Perez (1):
      wireless: rt2x00: rt2800usb: add new devices

Yair Shapira (2):
      wlcore: add new plt power-mode: CHIP_AWAKE
      wlcore: disable elp sleep while in plt mode

Zefir Kurtisi (1):
      ath9k: replace snprintf() with scnprintf()

 drivers/bluetooth/Makefile                         |   2 +
 drivers/bluetooth/btmrvl_drv.h                     |  12 +-
 drivers/bluetooth/btmrvl_main.c                    | 269 ++++++----
 drivers/bluetooth/btmrvl_sdio.c                    |  15 +-
 drivers/bluetooth/btmrvl_sdio.h                    |   2 +
 drivers/bluetooth/hci_vhci.c                       | 170 +++++--
 drivers/net/wireless/adm8211.c                     |   1 -
 drivers/net/wireless/airo.c                        |   1 -
 drivers/net/wireless/ath/ar5523/ar5523.c           |   1 +
 drivers/net/wireless/ath/ath10k/bmi.c              |  42 +-
 drivers/net/wireless/ath/ath10k/ce.c               | 382 ++++++--------
 drivers/net/wireless/ath/ath10k/ce.h               | 120 +----
 drivers/net/wireless/ath/ath10k/core.c             |  70 ++-
 drivers/net/wireless/ath/ath10k/core.h             |  35 +-
 drivers/net/wireless/ath/ath10k/debug.c            | 144 +++++-
 drivers/net/wireless/ath/ath10k/debug.h            |  14 +-
 drivers/net/wireless/ath/ath10k/htc.c              | 241 +++------
 drivers/net/wireless/ath/ath10k/htc.h              |   5 +-
 drivers/net/wireless/ath/ath10k/htt.c              |  19 +-
 drivers/net/wireless/ath/ath10k/htt.h              |  13 +-
 drivers/net/wireless/ath/ath10k/htt_rx.c           | 314 ++++++------
 drivers/net/wireless/ath/ath10k/htt_tx.c           | 285 ++++++-----
 drivers/net/wireless/ath/ath10k/hw.h               |  25 +-
 drivers/net/wireless/ath/ath10k/mac.c              | 244 +++++----
 drivers/net/wireless/ath/ath10k/pci.c              | 446 +++++++++-------
 drivers/net/wireless/ath/ath10k/pci.h              |  73 ++-
 drivers/net/wireless/ath/ath10k/rx_desc.h          |  24 +-
 drivers/net/wireless/ath/ath10k/trace.h            |  32 +-
 drivers/net/wireless/ath/ath10k/txrx.c             |  67 +--
 drivers/net/wireless/ath/ath10k/txrx.h             |   5 +-
 drivers/net/wireless/ath/ath10k/wmi.c              | 232 ++++-----
 drivers/net/wireless/ath/ath10k/wmi.h              |  71 ++-
 drivers/net/wireless/ath/ath5k/ahb.c               |  15 +-
 drivers/net/wireless/ath/ath9k/ahb.c               |   4 +-
 drivers/net/wireless/ath/ath9k/antenna.c           |  36 +-
 drivers/net/wireless/ath/ath9k/ar5008_phy.c        |   5 +-
 drivers/net/wireless/ath/ath9k/ar9002_calib.c      |   4 +-
 drivers/net/wireless/ath/ath9k/ar9002_phy.c        |   3 +-
 drivers/net/wireless/ath/ath9k/ar9003_calib.c      |  92 +++-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c     |  34 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.h     |   2 +
 drivers/net/wireless/ath/ath9k/ar9003_hw.c         |   5 +
 drivers/net/wireless/ath/ath9k/ar9003_mci.c        |   6 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.c        |  32 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.h        |   4 +
 drivers/net/wireless/ath/ath9k/ar9003_rtt.c        |  58 ++-
 drivers/net/wireless/ath/ath9k/ar9485_initvals.h   | 218 ++++++--
 .../net/wireless/ath/ath9k/ar9565_1p0_initvals.h   |  24 +-
 drivers/net/wireless/ath/ath9k/ath9k.h             |  20 +-
 drivers/net/wireless/ath/ath9k/beacon.c            |   2 +
 drivers/net/wireless/ath/ath9k/calib.c             |  14 +-
 drivers/net/wireless/ath/ath9k/debug.c             | 446 ++++++++--------
 drivers/net/wireless/ath/ath9k/debug.h             |  12 +-
 drivers/net/wireless/ath/ath9k/dfs_debug.c         |  25 +-
 drivers/net/wireless/ath/ath9k/dfs_pri_detector.c  |   2 +-
 drivers/net/wireless/ath/ath9k/eeprom_4k.c         |  10 +-
 drivers/net/wireless/ath/ath9k/eeprom_9287.c       |   8 +-
 drivers/net/wireless/ath/ath9k/eeprom_def.c        |  12 +-
 drivers/net/wireless/ath/ath9k/gpio.c              |  22 +-
 drivers/net/wireless/ath/ath9k/htc_drv_debug.c     | 456 ++++++++---------
 drivers/net/wireless/ath/ath9k/hw.c                |  59 ++-
 drivers/net/wireless/ath/ath9k/hw.h                |  26 +-
 drivers/net/wireless/ath/ath9k/init.c              |  20 +
 drivers/net/wireless/ath/ath9k/link.c              |  12 +-
 drivers/net/wireless/ath/ath9k/main.c              |  10 +-
 drivers/net/wireless/ath/ath9k/pci.c               | 195 ++++++-
 drivers/net/wireless/ath/ath9k/rc.c                |  32 +-
 drivers/net/wireless/ath/ath9k/wmi.h               |   2 +-
 drivers/net/wireless/ath/ath9k/xmit.c              |   2 +-
 drivers/net/wireless/ath/wil6210/pcie_bus.c        |   1 -
 .../net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c |  13 +-
 drivers/net/wireless/brcm80211/brcmfmac/dhd.h      |   2 -
 drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h  |   2 +-
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |  38 +-
 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 234 +++++----
 drivers/net/wireless/brcm80211/brcmfmac/fweh.h     |   5 +-
 drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c |   2 +
 .../net/wireless/brcm80211/brcmfmac/sdio_chip.c    |  28 +
 .../net/wireless/brcm80211/brcmfmac/sdio_chip.h    |   8 +
 drivers/net/wireless/brcm80211/brcmfmac/usb.c      |   5 +-
 .../net/wireless/brcm80211/include/brcm_hw_ids.h   |   1 +
 drivers/net/wireless/cw1200/cw1200_spi.c           |   4 +-
 drivers/net/wireless/ipw2x00/ipw2200.c             |   2 -
 drivers/net/wireless/iwlegacy/3945-mac.c           |   2 -
 drivers/net/wireless/iwlegacy/4965-mac.c           |   2 -
 drivers/net/wireless/iwlwifi/pcie/trans.c          |   8 +-
 drivers/net/wireless/libertas/if_spi.c             |   2 +-
 drivers/net/wireless/mwifiex/pcie.c                |   6 +-
 drivers/net/wireless/mwl8k.c                       |   2 -
 drivers/net/wireless/orinoco/orinoco_nortel.c      |   2 -
 drivers/net/wireless/orinoco/orinoco_pci.c         |   2 -
 drivers/net/wireless/orinoco/orinoco_plx.c         |   2 -
 drivers/net/wireless/orinoco/orinoco_tmd.c         |   2 -
 drivers/net/wireless/p54/p54pci.c                  |   1 -
 drivers/net/wireless/rt2x00/rt2800.h               |   2 +
 drivers/net/wireless/rt2x00/rt2800lib.c            |  49 +-
 drivers/net/wireless/rt2x00/rt2800usb.c            |  17 +-
 drivers/net/wireless/rtl818x/rtl8180/dev.c         |   1 -
 drivers/net/wireless/rtlwifi/base.c                |  29 ++
 drivers/net/wireless/rtlwifi/base.h                |   2 +-
 drivers/net/wireless/rtlwifi/efuse.c               |  18 +-
 drivers/net/wireless/rtlwifi/pci.c                 |   4 -
 drivers/net/wireless/rtlwifi/rtl8188ee/hw.c        |   1 +
 drivers/net/wireless/rtlwifi/rtl8188ee/phy.c       |  28 -
 drivers/net/wireless/rtlwifi/rtl8188ee/phy.h       |   1 -
 drivers/net/wireless/rtlwifi/rtl8188ee/sw.c        |   3 +-
 drivers/net/wireless/rtlwifi/rtl8188ee/trx.c       |   1 -
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c  |  25 +-
 drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c |  30 --
 drivers/net/wireless/rtlwifi/rtl8192c/phy_common.h |   4 -
 drivers/net/wireless/rtlwifi/rtl8192ce/def.h       |   2 -
 drivers/net/wireless/rtlwifi/rtl8192ce/phy.h       |   4 -
 drivers/net/wireless/rtlwifi/rtl8192ce/reg.h       |  20 -
 drivers/net/wireless/rtlwifi/rtl8192ce/sw.c        |   3 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/trx.c       |   1 -
 drivers/net/wireless/rtlwifi/rtl8192cu/mac.c       | 187 +------
 drivers/net/wireless/rtlwifi/rtl8192cu/sw.c        |   3 +-
 drivers/net/wireless/rtlwifi/rtl8192cu/trx.c       |   2 -
 drivers/net/wireless/rtlwifi/rtl8192de/dm.c        |   8 +-
 drivers/net/wireless/rtlwifi/rtl8192de/hw.c        |  18 -
 drivers/net/wireless/rtlwifi/rtl8192de/phy.c       |  28 -
 drivers/net/wireless/rtlwifi/rtl8192de/phy.h       |   4 -
 drivers/net/wireless/rtlwifi/rtl8192de/sw.c        |   3 +-
 drivers/net/wireless/rtlwifi/rtl8192de/trx.c       |   1 -
 drivers/net/wireless/rtlwifi/rtl8192se/reg.h       |   5 -
 drivers/net/wireless/rtlwifi/rtl8192se/trx.c       |   1 -
 drivers/net/wireless/rtlwifi/rtl8723ae/phy.c       |  29 --
 drivers/net/wireless/rtlwifi/rtl8723ae/phy.h       |   1 -
 drivers/net/wireless/rtlwifi/rtl8723ae/sw.c        |   3 +-
 drivers/net/wireless/rtlwifi/rtl8723ae/trx.c       |   1 -
 drivers/net/wireless/rtlwifi/usb.c                 |   6 +-
 drivers/net/wireless/rtlwifi/wifi.h                |   2 -
 drivers/net/wireless/ti/wl1251/spi.c               |   2 +-
 drivers/net/wireless/ti/wl12xx/main.c              |   2 +-
 drivers/net/wireless/ti/wl18xx/main.c              |  95 +++-
 drivers/net/wireless/ti/wl18xx/reg.h               |  33 +-
 drivers/net/wireless/ti/wlcore/cmd.c               |  58 ++-
 drivers/net/wireless/ti/wlcore/main.c              | 158 +++++-
 drivers/net/wireless/ti/wlcore/ps.c                |   4 +
 drivers/net/wireless/ti/wlcore/scan.c              |  27 +-
 drivers/net/wireless/ti/wlcore/spi.c               |   2 +-
 drivers/net/wireless/ti/wlcore/testmode.c          |  13 +-
 drivers/net/wireless/ti/wlcore/tx.c                |  27 +-
 drivers/net/wireless/ti/wlcore/tx.h                |   3 +
 drivers/net/wireless/ti/wlcore/wlcore.h            |   2 +
 drivers/net/wireless/ti/wlcore/wlcore_i.h          |  11 +
 include/net/bluetooth/bluetooth.h                  |   5 +-
 include/net/bluetooth/hci.h                        |  81 ++-
 include/net/bluetooth/hci_core.h                   |   2 +-
 include/net/bluetooth/l2cap.h                      |   1 +
 include/net/bluetooth/mgmt.h                       |  11 +
 net/bluetooth/Makefile                             |   2 +
 net/bluetooth/af_bluetooth.c                       |  41 ++
 net/bluetooth/hci_conn.c                           |   4 +
 net/bluetooth/hci_core.c                           | 189 +++++--
 net/bluetooth/hci_event.c                          |  17 +-
 net/bluetooth/hci_sock.c                           | 204 ++++++--
 net/bluetooth/l2cap_core.c                         | 162 +++---
 net/bluetooth/l2cap_sock.c                         |  20 +-
 net/bluetooth/mgmt.c                               | 562 ++++++++++++++++-----
 net/bluetooth/rfcomm/sock.c                        |   7 +-
 net/bluetooth/smp.c                                |  15 +-
 162 files changed, 4802 insertions(+), 3186 deletions(-)
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [PATCH 3/3] [RFC] cfg80211: Enable GO operation on additional channels
From: Luis R. Rodriguez @ 2013-10-04 17:38 UTC (permalink / raw)
  To: Peer, Ilan, Jeff Johnson
  Cc: Spinadel, David, linux-wireless,
	wireless-regdb@lists.infradead.org, Jouni Malinen, Ginsburg, Noam,
	Perelmooter, Liraz, Shalev, Oz, Michael Green
In-Reply-To: <CAB=NE6Vcqrs-US-HJzxcnFhjF0-dsnvPdcWoUpuo-UDV_5cReQ@mail.gmail.com>

On Thu, Jul 18, 2013 at 4:34 PM, Luis R. Rodriguez
<mcgrof@do-not-panic.com> wrote:
> On Wed, Jul 17, 2013 at 12:15 PM, Peer, Ilan <ilan.peer@intel.com> wrote:
>>> It was unclear for what exact channels you needed to deal with here.
>>> Given review so far wouldn't it just be DFS flagged channels on some UNII
>>> bands ? Then again if the indoor flag needs to be pegged to to a specific UNII
>>> band and we can do that on wireless-regdb do we even need the UNII band
>>> check routine helper?
>>>
>>
>> Generally it is possible that the indoor property is not pegged to the 'other_channel', or it is possible that it is pegged but they are not in the same UNII band, so the verification is still needed. I guess that once I get the list you requested things will be clearer :)
>
> OK so there are exceptions to the indoor flag affecting GO under these
> rules or not. Looking forward to the respin.

Anxiously looking forward to the respin :D

  Luis

^ permalink raw reply

* Re: [GIT PULL] firmware: wl1251 firmware binary
From: Felipe Balbi @ 2013-10-04 15:32 UTC (permalink / raw)
  To: Luca Coelho
  Cc: balbi, dwmw2, ben, Linux Kernel Mailing List, linux-wireless,
	Pavel Machek
In-Reply-To: <1380862901.4265.33.camel@porter.coelho.fi>

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

On Fri, Oct 04, 2013 at 08:01:41AM +0300, Luca Coelho wrote:
> Hi Felipe,
> 
> On Wed, 2013-10-02 at 07:55 -0500, Felipe Balbi wrote:
> > Hi,
> > 
> > here's a pull request for wl4 firmware. I'll send a patch for wl1251
> > driver updating firmware load path.
> > 
> > The following changes since commit b8ac7c7e27dcd13fa3c843aaf62457e9c57ea4db:
> > 
> >   linux-firmware: Add Brocade FC/FCOE Adapter firmware files (2013-09-30 04:53:32 +0100)
> > 
> > are available in the git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/balbi/linux-firmware.git wilink4
> > 
> > for you to fetch changes up to d726804dbc8dad88587b6be17716714cd91ed86c:
> > 
> >   ti-connectivity: add wl1251 firmware and license (2013-10-02 06:55:39 -0500)
> > 
> > ----------------------------------------------------------------
> > Felipe Balbi (1):
> >       ti-connectivity: add wl1251 firmware and license
> > 
> >  LICENCE.wl1251                 |  59 +++++++++++++++++++++++++++++++++++++++++
> >  WHENCE                         |  18 +++++++++++++
> >  ti-connectivity/wl1251-fw.bin  | Bin 0 -> 194180 bytes
> >  ti-connectivity/wl1251-nvs.bin | Bin 0 -> 752 bytes
> >  4 files changed, 77 insertions(+)
> >  create mode 100644 LICENCE.wl1251
> >  create mode 100644 ti-connectivity/wl1251-fw.bin
> >  create mode 100644 ti-connectivity/wl1251-nvs.bin
> 
> Since you didn't send v2 of the patch, you could have used the -p option
> with git request-pull so we could see the changes you made here...

diff --git a/LICENCE.wl1251 b/LICENCE.wl1251
new file mode 100644
index 0000000..bd0f5f1
--- /dev/null
+++ b/LICENCE.wl1251
@@ -0,0 +1,59 @@
+Copyright (c) 2000 – 2013 Texas Instruments Incorporated
+
+All rights reserved not granted herein.
+
+Limited License.
+
+Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
+license under copyrights and patents it now or hereafter owns or controls to
+make, have made, use, import, offer to sell and sell ("Utilize") this software
+subject to the terms herein.  With respect to the foregoing patent license,
+such license is granted  solely to the extent that any such patent is necessary
+to Utilize the software alone.  The patent license shall not apply to any
+combinations which include this software, other than combinations with devices
+manufactured by or for TI (“TI Devices”).  No hardware patent is licensed
+hereunder.
+
+Redistributions must preserve existing copyright notices and reproduce this
+license (including the above copyright notice and the disclaimer and (if
+applicable) source code license limitations below) in the documentation and/or
+other materials provided with the distribution
+
+Redistribution and use in binary form, without modification, are permitted
+provided that the following conditions are met:
+
+*	No reverse engineering, decompilation, or disassembly of this software
+	is permitted with respect to any software provided in binary form.
+
+*	any redistribution and use are licensed by TI for use only with TI
+	Devices.
+
+*	Nothing shall obligate TI to provide you with source code for the
+	software licensed and provided to you in object code.
+
+If software source code is provided to you, modification and redistribution of
+the source code are permitted provided that the following conditions are met:
+
+*	any redistribution and use of the source code, including any resulting
+	derivative works, are licensed by TI for use only with TI Devices.
+
+*	any redistribution and use of any object code compiled from the source
+	code and any resulting derivative works, are licensed by TI for use
+	only with TI Devices.
+
+Neither the name of Texas Instruments Incorporated nor the names of its
+suppliers may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+DISCLAIMER.
+
+THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL TI AND TI’S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/WHENCE b/WHENCE
index aac3ba9..3a35670 100644
--- a/WHENCE
+++ b/WHENCE
@@ -1712,6 +1712,24 @@ Licence: Redistributable. See LICENCE.tda7706-firmware.txt for details.
 
 --------------------------------------------------------------------------
 
+Driver: wl1251 - Texas Instruments 802.11 WLAN driver for WiLink4 chips
+
+File: ti-connectivity/wl1251-fw.bin
+Version: 4.0.4.3.7
+
+File: ti-connectivity/wl1251-nvs.bin
+
+Licence: See LICENCE.wl1251 for details.
+
+The published NVS files are for testing only.  Every device needs to
+have a unique NVS which is properly calibrated for best results.
+
+The driver expects to find the firmwares under a ti-connectivity subdirectory.
+So if your system looks for firmwares in /lib/firmware, the firmwares for
+wl12xx chips must be located in /lib/firmware/ti-connectivity/.
+
+--------------------------------------------------------------------------
+
 Driver: wl12xx - Texas Instruments 802.11 WLAN driver for WiLink6/7 chips
 
 File: ti-connectivity/wl1271-fw.bin
diff --git a/ti-connectivity/wl1251-fw.bin b/ti-connectivity/wl1251-fw.bin
new file mode 100644
index 0000000..f89c983
Binary files /dev/null and b/ti-connectivity/wl1251-fw.bin differ
diff --git a/ti-connectivity/wl1251-nvs.bin b/ti-connectivity/wl1251-nvs.bin
new file mode 100644
index 0000000..2bf9c50
Binary files /dev/null and b/ti-connectivity/wl1251-nvs.bin differ

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply related

* Re: [rt2x00-users] [PATCH v2 4/4] rt2x00: rt2800lib: fix VGC programming for RT3572 and RT3593
From: Stanislaw Gruszka @ 2013-10-04 14:39 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1380823243-11149-4-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 08:00:43PM +0200, Gabor Juhos wrote:
> According to the DPO_RT5572_LinuxSTA_2.6.1.3_20121022
> reference driver, programming of the 'BBP 66' register
> on the RT3572 and RT3593 chipsets must be done via the
> 'rt2800_bbp_write_with_rx_chain' function. This ensures
> that value is correclty set for all RX chains.
> 
> References:
>   RT35xx_ChipAGCAdjust and RT35xx_SetAGCInitValue functions
>   in chips/rt35xx.c
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

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

^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2 3/4] rt2x00: rt2800lib: fix default VGC values for RT3593
From: Stanislaw Gruszka @ 2013-10-04 14:38 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1380823243-11149-3-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 08:00:42PM +0200, Gabor Juhos wrote:
> Update the rt2800_get_default_vgc function to use the same VGC
> values that the DPO_RT5572_LinuxSTA_2.6.1.3_20121022 reference
> driver uses.
> 
> References:
>   RT35xx_ChipAGCAdjust in chips/rt35xx.c
>   RT3593_R66_MID_LOW_SENS_GET macro in include/chip/rt3593.h
>   RT3593_R66_NON_MID_LOW_SEMS_GET macro in include/chips/rt3593.h
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

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

> @@ -4422,6 +4423,8 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev *rt2x00dev)
>  	} else { /* 5GHZ band */
>  		if (rt2x00_rt(rt2x00dev, RT3572))
>  			vgc = 0x22 + (rt2x00dev->lna_gain * 5) / 3;

Looks RT3572 values should be also changed ? According to:

                if (pAd->CommonCfg.BBPCurrentBW == BW_20)
                {
                        R66 = 0x32 + (lanGain*5) / 3;
                        if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
                                R66 += 0x10;
                }
                else
                {
                        R66 = 0x3A + (lanGain*5)/3;
                        if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
                                R66 += 0x10;
                }       


^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2 2/4] rt2x00: rt2800lib: fix VGC adjustment for RT3572 and RT3593
From: Stanislaw Gruszka @ 2013-10-04 14:27 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users
In-Reply-To: <1380823243-11149-2-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 08:00:41PM +0200, Gabor Juhos wrote:
> The Ralink DPO_RT5572_LinuxSTA_2.6.1.3_20121022
> reference driver uses different RSSI threshold
> and VGC adjustment values for the RT3572 and
> RT3593 chipsets.
> 
> Update the rt2800_link_tuner function to use the
> same values. Also change the comment in the function
> to make it more generic.
> 
> References:
> 
>   RT35xx_ChipAGCAdjust function in chips/rt35xx.c
>   RSSI_FOR_MID_LOW_SENSIBILITY constant in include/chip/rtmp_phy.h
>   RT3593_R66_MID_LOW_SENS_GET macro in include/chip/rt3593.h
>   RT3593_R66_NON_MID_LOW_SEMS_GET macro in include/chips/rt3593.h
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

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

^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2 1/4] rt2x00: rt2800lib: fix VGC adjustment for RT5592
From: Stanislaw Gruszka @ 2013-10-04 14:19 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users, stable
In-Reply-To: <1380823243-11149-1-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 08:00:40PM +0200, Gabor Juhos wrote:
> In commit 3d81535ea5940446510a8a5cee1c6ad23c90c753
> (rt2800: 5592: add chip specific vgc calculations)
> the rt2800_link_tuner function has been modified to
> adjust VGC level for the RT5592 chipset.
> 
> On the RT5592 chipset, the VGC level must be adjusted
> only if rssi is greater than -65. However the current
> code adjusts the VGC value by 0x10 regardless of the
> actual chipset if the rssi value is between -80 and
> -65.
> 
> Fix the broken behaviour by reordering the if-else
> statements.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

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

^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2 2/2] rt2x00: rt2800lib: remove TXPOWER_DELTA entry from extended EEPROM map
From: Stanislaw Gruszka @ 2013-10-04 14:07 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users, Paul Menzel
In-Reply-To: <1380802022-28646-2-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 02:07:02PM +0200, Gabor Juhos wrote:
> The TXPOWER_DELTA field of the regular EEPROM
> stores the TX power compensation value for HT40.
> The extended EEPROM has no such field, it stores
> separate TX power values for HT20 and for HT40.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Acked-by: Paul Menzel <paulepanter@users.sourceforge.net>

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

^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2 1/2] rt2x00: rt2800lib: remove TXMIXER_GAIN entries from the extended EEPROM map
From: Stanislaw Gruszka @ 2013-10-04 14:06 UTC (permalink / raw)
  To: Gabor Juhos; +Cc: John Linville, linux-wireless, users, Paul Menzel
In-Reply-To: <1380802022-28646-1-git-send-email-juhosg@openwrt.org>

On Thu, Oct 03, 2013 at 02:07:01PM +0200, Gabor Juhos wrote:
> The comments are indicating that the TXMIXER_GAIN_BG
> and TXMIXED_GAIN_A entries are overlapping with the
> RSSI_BG2 and RSSI_A2 entries in the extended EEPROM
> map. This is not correct, because the upper byte of
> the RSSI_BG2 and RSSI_A2 entries are reserved. There
> are no TX mixer gain values are stored at all in the
> extended EEPROM.
> 
> Remove the initialization of these entries from the
> extended EEPROM map to reflect this.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Acked-by: Paul Menzel <paulepanter@users.sourceforge.net>

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

^ permalink raw reply

* Re: [rt2x00-users] [PATCH v2] rt2x00: rt2800lib: remove duplicate rf_vals for RF3053
From: Stanislaw Gruszka @ 2013-10-04 14:02 UTC (permalink / raw)
  To: Kevin Lo; +Cc: John Linville, linux-wireless, users
In-Reply-To: <524E1CC5.3030004@kevlo.org>

On Fri, Oct 04, 2013 at 09:41:25AM +0800, Kevin Lo wrote:
> We already have rf_vals_3x with same values.  Hence rf_vals_3053 is removed
> in this patch.
> 
> Signed-off-by: Kevin Lo <kevlo@kevlo.org>
> Acked-by: Paul Menzel <paulepanter@users.sourceforge.net>

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


^ permalink raw reply

* Re: [rt2x00-users] [PATCH] rt2x00: rt2800lib: fix RF registers for RT5390/RT5392
From: Stanislaw Gruszka @ 2013-10-04 13:57 UTC (permalink / raw)
  To: Kevin Lo, g; +Cc: John Linville, linux-wireless, users
In-Reply-To: <524BEB7A.8040508@kevlo.org>

On Wed, Oct 02, 2013 at 05:46:34PM +0800, Kevin Lo wrote:
> Update rf registers to use the same values that the MediaTek/Ralink
> reference driver DPO_RT5572_LinuxSTA_2.6.1.3_20121022 uses.
> 
> References:
>   RF5390RegTable in chips/rt5390.c
>   RF5392RegTable in chips/rt5390.c
> 
> Tested on TP-Link TL-WN727N and D-Link DWA-140 Rev.b3 usb wifi dongles.
> 
> Signed-off-by: Kevin Lo <kevlo@kevlo.org>

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


^ permalink raw reply

* Re: [PATCH] wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware
From: Eugene Krasnikov @ 2013-10-04 11:11 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: John W. Linville, linux-wireless, wcn36xx
In-Reply-To: <CAFSJ42Ydrput-ojxtf0unZj13euZHCePZByN=AB3HemY-XgTMw@mail.gmail.com>

Hi John,

Sorry for inconvenience!
I managed to reproduce this error, will fix and send a new patch later on today.

2013/10/4 Eugene Krasnikov <k.eugene.e@gmail.com>:
> Hi Arend,
>
> Yes, i am building it as a module. Let me try to build it into the
> kernel, may be that is the reason why build fails.
>
> 2013/10/4 Arend van Spriel <arend@broadcom.com>:
>> On 10/03/2013 11:22 PM, Eugene Krasnikov wrote:
>>>
>>> Hm, weird... do not see this problem myself. Let me try to sync latest
>>> wireless-next and will try to apply latest patch from this mailthread
>>> on top.
>>
>>
>> Hi Eugene,
>>
>> Do you build the driver as module. John is building it built-in then kernel.
>>
>> Gr. AvS
>>
>>
>>> P.S. If somebody esle can try to apply this patch and build that would
>>> be useful to know if problem is visible on others PCs as well.
>>>
>>> 2013/10/3 John W. Linville <linville@tuxdriver.com>:
>>>>
>>>> On Thu, Sep 26, 2013 at 11:25:18PM +0100, Eugene Krasnikov wrote:
>>>>>
>>>>> Hi John,
>>>>>
>>>>> This is the latest version of wcn36xx driver on top of current
>>>>> wireless-next tree. Please let me know if you have any problems with
>>>>> applying it.
>>>>>
>>>>> 2013/9/26 Eugene Krasnikov <k.eugene.e@gmail.com>:
>>>>>>
>>>>>> This is a mac80211 driver for Qualcomm WCN3660/WCN3680 devices. So
>>>>>> far WCN3660/WCN3680 is available only on MSM platform.
>>>>>>
>>>>>> Firmware can be found here:
>>>>>>
>>>>>> https://www.codeaurora.org/cgit/external/hisense/platform/vendor/qcom-opensource/wlan/prima/tree/firmware_bin?h=8130_CS
>>>>>>
>>>>>> Wiki page is available here:
>>>>>> http://wireless.kernel.org/en/users/Drivers/wcn36xx
>>>>>>
>>>>>> A lot people made a contribution to this driver. Here is the list in
>>>>>> alphabetical order:
>>>>>>
>>>>>> Eugene Krasnikov <k.eugene.e@gmail.com>
>>>>>> Kalle Valo <kvalo@qca.qualcomm.com>
>>>>>> Olof Johansson <dev@skyshaper.net>
>>>>>> Pontus Fuchs <pontus.fuchs@gmail.com>
>>>>>> Yanbo Li <yanbol@qti.qualcomm.com>
>>>>>>
>>>>>> Signed-off-by: Eugene Krasnikov <k.eugene.e@gmail.com>
>>>>
>>>>
>>>> 'make allyesconfig' yield this:
>>>>
>>>>    LD      drivers/net/wireless/ath/ath.o
>>>>    LD      drivers/net/wireless/ath/built-in.o
>>>> drivers/net/wireless/ath/wcn36xx/built-in.o: In function
>>>> `_GLOBAL__sub_I_65535_0_wcn36xx_set_default_rates':
>>>>
>>>> /home/linville/git/wireless-next/drivers/net/wireless/ath/wcn36xx/main.c:302:
>>>> multiple definition of `debug_mask'
>>>>
>>>> drivers/net/wireless/ath/ath6kl/built-in.o:/home/linville/git/wireless-next/drivers/net/wireless/ath/ath6kl/cfg80211.c:1208:
>>>> first defined here
>>>> make[2]: *** [drivers/net/wireless/ath/built-in.o] Error 1
>>>> make[1]: *** [drivers/net/wireless/ath] Error 2
>>>> make: *** [drivers/net/wireless/] Error 2
>>>>
>>>> --
>>>> John W. Linville                Someday the world will need a hero, and
>>>> you
>>>> linville@tuxdriver.com                  might be all we have.  Be ready.
>>>
>>>
>>>
>>>
>>
>>
>
>
>
> --
> Best regards,
> Eugene



-- 
Best regards,
Eugene

^ permalink raw reply

* Re: Kernel panic in 3.10.10-rt7 (iwlwifi)
From: Sebastian Andrzej Siewior @ 2013-10-04 10:12 UTC (permalink / raw)
  To: Thomas Meyer
  Cc: Johannes Berg, linux-rt-users, Wey-Yi Guy, Intel Linux Wireless,
	linux-wireless, tglx
In-Reply-To: <2CD18B42-2489-4DF7-98D6-4D002329DC63@m3y3r.de>

* Thomas Meyer | 2013-09-15 23:49:29 [+0200]:

>Hi,
Hi,

>My system did lockup after short time of usage. I was only able to capture this screenshot:
>
>Any ideas?

the problem seems to be that they use sleeping locks in the primary irq
handler.

iwl_pcie_rx_replenish() takes the same lock (->irq_lock) and additionaly
->lock so I think tunrning everything into raw locks isn't very wise for
the latency.

The threaded handler takes for a very short time irq_lock lock. It also
takes the ->lock via (iwl_pcie_rxq_inc_wr_ptr()) with irqs off (that one
looks short, too) and others for instance via iwl_pcie_rx_handle().
Ideally the driver should hold one spinlock to synchronize the primary
and threaded irq handler while disabling the interrupt in the iwl
hardware. Everything else would then hold one or two mutex(es) and could
even allocate memory with GFP_KERNEL.

For now I think the simply thing would be just to let both handlers run
in the thread. Does this patch solve your problem?

diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index aeb70e1..42567fc 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -1456,6 +1456,20 @@ static const struct iwl_trans_ops trans_ops_pcie = {
 	.set_bits_mask = iwl_trans_pcie_set_bits_mask,
 };
 
+#ifdef CONFIG_PREEMPT_RT_BASE
+static irqreturn_t iwl_rt_irq_handler(int irq, void *dev_id)
+{
+	irqreturn_t ret;
+
+	local_bh_disable();
+	ret = iwl_pcie_isr_ict(irq, dev_id);
+	local_bh_enable();
+	if (ret == IRQ_WAKE_THREAD)
+		ret = iwl_pcie_irq_handler(irq, dev_id);
+	return ret;
+}
+#endif
+
 struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
 				       const struct pci_device_id *ent,
 				       const struct iwl_cfg *cfg)
@@ -1566,9 +1580,14 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
 	if (iwl_pcie_alloc_ict(trans))
 		goto out_free_cmd_pool;
 
+#ifdef CONFIG_PREEMPT_RT_BASE
+	if (request_threaded_irq(pdev->irq, NULL, iwl_rt_irq_handler,
+				 IRQF_SHARED | IRQF_ONESHOT, DRV_NAME, trans)) {
+#else
 	if (request_threaded_irq(pdev->irq, iwl_pcie_isr_ict,
 				 iwl_pcie_irq_handler,
 				 IRQF_SHARED, DRV_NAME, trans)) {
+#endif
 		IWL_ERR(trans, "Error allocating IRQ %d\n", pdev->irq);
 		goto out_free_ict;
 	}
-- 
1.8.4.rc3


>With kind regards
>Thomas

Sebastian

^ permalink raw reply related

* [PATCH] ath10k: fix station authorization
From: Michal Kazior @ 2013-10-04  8:30 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior

Peer authorization should be delayed until
mac80211 says given station has transitioned into
authorized state.

The state is propagated from mac80211 for both
open and protected networks.

This should prevent data traffic to/from given
station until authorization completes. Until now
it was probably possible for unauthorized traffic
to pass leading to possible security issues.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
I've been keeping this patch in my closet apparently.

Tested briefly and seems there are no regressions.

 drivers/net/wireless/ath/ath10k/mac.c |   27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 8684e03..0175d22 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -781,7 +781,6 @@ static void ath10k_peer_assoc_h_basic(struct ath10k *ar,
 	memcpy(arg->addr, sta->addr, ETH_ALEN);
 	arg->vdev_id = arvif->vdev_id;
 	arg->peer_aid = sta->aid;
-	arg->peer_flags |= WMI_PEER_AUTH;
 
 	if (arvif->vdev_type == WMI_VDEV_TYPE_STA)
 		/*
@@ -2603,6 +2602,32 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
 		if (ret)
 			ath10k_warn("Failed to disassociate station: %pM\n",
 				    sta->addr);
+	} else if (old_state == IEEE80211_STA_ASSOC &&
+		   new_state == IEEE80211_STA_AUTHORIZED) {
+		/*
+		 * Authorization
+		 */
+		ath10k_dbg(ATH10K_DBG_MAC, "mac sta %pM authorized\n",
+			   sta->addr);
+
+		ret = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr,
+						WMI_PEER_AUTHORIZE, 1);
+		if (ret)
+			ath10k_warn("Failed to authorize station: %pM\n",
+				    sta->addr);
+	} else if (old_state == IEEE80211_STA_AUTHORIZED &&
+		   new_state == IEEE80211_STA_ASSOC) {
+		/*
+		 * De-Authorization
+		 */
+		ath10k_dbg(ATH10K_DBG_MAC, "mac sta %pM de-authorized\n",
+			   sta->addr);
+
+		ret = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr,
+						WMI_PEER_AUTHORIZE, 0);
+		if (ret)
+			ath10k_warn("Failed to de-authorize station: %pM\n",
+				    sta->addr);
 	}
 
 	mutex_unlock(&ar->conf_mutex);
-- 
1.7.9.5


^ permalink raw reply related

* [PATCH v2 2/2] ath10k: fix scheduling while atomic bug
From: Michal Kazior @ 2013-10-04  8:17 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1380874630-14280-1-git-send-email-michal.kazior@tieto.com>

Recent WMI/HTC changes made it possible for WMI
commands to sleep (if there's not enough HTC TX
credits to submit a command). TX path is in an
atomic context so calling WMI commands in it is
wrong.

This simply moves WEP key index update to a worker
and fixes the 'scheduling while atomic' bug.

This still leaves multiple WEP key handling laggy,
i.e. some frames may be TXed with an old/different
key (although recipient should still be able to RX
them).

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
 drivers/net/wireless/ath/ath10k/core.h |    4 ++-
 drivers/net/wireless/ath/ath10k/mac.c  |   53 ++++++++++++++++++++++----------
 2 files changed, 39 insertions(+), 18 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index ce36daa..cef5455 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -215,8 +215,10 @@ struct ath10k_vif {
 	struct ath10k *ar;
 	struct ieee80211_vif *vif;
 
+	struct work_struct wep_key_work;
 	struct ieee80211_key_conf *wep_keys[WMI_MAX_KEY_INDEX + 1];
-	u8 def_wep_key_index;
+	u8 def_wep_key_idx;
+	u8 def_wep_key_newidx;
 
 	u16 tx_seq_no;
 
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 7e06e75..378d868 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1238,7 +1238,7 @@ static void ath10k_bss_disassoc(struct ieee80211_hw *hw,
 	/* FIXME: why don't we print error if wmi call fails? */
 	ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id);
 
-	arvif->def_wep_key_index = 0;
+	arvif->def_wep_key_idx = 0;
 }
 
 static int ath10k_station_assoc(struct ath10k *ar, struct ath10k_vif *arvif,
@@ -1439,6 +1439,30 @@ static void ath10k_tx_h_qos_workaround(struct ieee80211_hw *hw,
 	skb_pull(skb, IEEE80211_QOS_CTL_LEN);
 }
 
+static void ath10k_tx_wep_key_work(struct work_struct *work)
+{
+	struct ath10k_vif *arvif = container_of(work, struct ath10k_vif,
+						wep_key_work);
+	int ret, keyidx = arvif->def_wep_key_newidx;
+
+	if (arvif->def_wep_key_idx == keyidx)
+		return;
+
+	ath10k_dbg(ATH10K_DBG_MAC, "mac vdev %d set keyidx %d\n",
+		   arvif->vdev_id, keyidx);
+
+	ret = ath10k_wmi_vdev_set_param(arvif->ar,
+					arvif->vdev_id,
+					arvif->ar->wmi.vdev_param->def_keyid,
+					keyidx);
+	if (ret) {
+		ath10k_warn("could not update wep keyidx (%d)\n", ret);
+		return;
+	}
+
+	arvif->def_wep_key_idx = keyidx;
+}
+
 static void ath10k_tx_h_update_wep_key(struct sk_buff *skb)
 {
 	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
@@ -1447,8 +1471,6 @@ static void ath10k_tx_h_update_wep_key(struct sk_buff *skb)
 	struct ath10k *ar = arvif->ar;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	struct ieee80211_key_conf *key = info->control.hw_key;
-	u32 vdev_param;
-	int ret;
 
 	if (!ieee80211_has_protected(hdr->frame_control))
 		return;
@@ -1460,21 +1482,14 @@ static void ath10k_tx_h_update_wep_key(struct sk_buff *skb)
 	    key->cipher != WLAN_CIPHER_SUITE_WEP104)
 		return;
 
-	if (key->keyidx == arvif->def_wep_key_index)
-		return;
-
-	ath10k_dbg(ATH10K_DBG_MAC, "mac vdev %d keyidx %d\n",
-		   arvif->vdev_id, key->keyidx);
-
-	vdev_param = ar->wmi.vdev_param->def_keyid;
-	ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
-					key->keyidx);
-	if (ret) {
-		ath10k_warn("could not update wep keyidx (%d)\n", ret);
+	if (key->keyidx == arvif->def_wep_key_idx)
 		return;
-	}
 
-	arvif->def_wep_key_index = key->keyidx;
+	/* FIXME: Most likely a few frames will be TXed with an old key. Simply
+	 * queueing frames until key index is updated is not an option because
+	 * sk_buff may need more processing to be done, e.g. offchannel */
+	arvif->def_wep_key_newidx = key->keyidx;
+	ieee80211_queue_work(ar->hw, &arvif->wep_key_work);
 }
 
 static void ath10k_tx_h_add_p2p_noa_ie(struct ath10k *ar, struct sk_buff *skb)
@@ -2010,6 +2025,8 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,
 	arvif->ar = ar;
 	arvif->vif = vif;
 
+	INIT_WORK(&arvif->wep_key_work, ath10k_tx_wep_key_work);
+
 	if ((vif->type == NL80211_IFTYPE_MONITOR) && ar->monitor_present) {
 		ath10k_warn("Only one monitor interface allowed\n");
 		ret = -EBUSY;
@@ -2065,7 +2082,7 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,
 
 	vdev_param = ar->wmi.vdev_param->def_keyid;
 	ret = ath10k_wmi_vdev_set_param(ar, 0, vdev_param,
-					arvif->def_wep_key_index);
+					arvif->def_wep_key_idx);
 	if (ret)
 		ath10k_warn("Failed to set default keyid: %d\n", ret);
 
@@ -2133,6 +2150,8 @@ static void ath10k_remove_interface(struct ieee80211_hw *hw,
 
 	mutex_lock(&ar->conf_mutex);
 
+	cancel_work_sync(&arvif->wep_key_work);
+
 	spin_lock_bh(&ar->data_lock);
 	if (arvif->beacon) {
 		dev_kfree_skb_any(arvif->beacon);
-- 
1.7.9.5


^ permalink raw reply related

* [PATCH v2 0/2] ath10k: wep & ampdu fix
From: Michal Kazior @ 2013-10-04  8:17 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <to=1380292567-2363-1-git-send-email-michal.kazior@tieto.com>

Hi,

One throughput fix and one bug fix.

The bug fix addresses my oversight when reworking
HTC/WMI. I haven't seen the error yet but I'm
quite certain this should be fixed.

v2:
 * A-MPDU patch contains a workaround for
   Netgear/Linksys 11ac APs
   (Kalle, can you kindly test this, please?)
 * patchset cover mail title changed to avoid
   confusion (too many patchsets named the same
   way..)


Michal Kazior (1):
  ath10k: fix scheduling while atomic bug

Sujith Manoharan (1):
  ath10k: Fix bug in max. VHT A-MPDU size

 drivers/net/wireless/ath/ath10k/core.h |    4 +-
 drivers/net/wireless/ath/ath10k/mac.c  |   67 +++++++++++++++++++++++---------
 2 files changed, 52 insertions(+), 19 deletions(-)

-- 
1.7.9.5


^ permalink raw reply

* [PATCH v2 1/2] ath10k: Fix bug in max. VHT A-MPDU size
From: Michal Kazior @ 2013-10-04  8:17 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Sujith Manoharan, Michal Kazior
In-Reply-To: <1380874630-14280-1-git-send-email-michal.kazior@tieto.com>

From: Sujith Manoharan <c_manoha@qca.qualcomm.com>

For VHT peers, the maximum A-MPDU size has to be calculated
from the VHT capabilities element and not the HT-cap. The formula
is the same, but a higher value is used in VHT, allowing larger
aggregates to be transmitted.

The patch contains a workaround for some Netgear/Linksys APs that
report Rx A-MPDU factor incorrectly.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
 drivers/net/wireless/ath/ath10k/mac.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 8684e03..7e06e75 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1033,14 +1033,26 @@ static void ath10k_peer_assoc_h_vht(struct ath10k *ar,
 				    struct wmi_peer_assoc_complete_arg *arg)
 {
 	const struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap;
+	u8 ampdu_factor;
 
 	if (!vht_cap->vht_supported)
 		return;
 
 	arg->peer_flags |= WMI_PEER_VHT;
-
 	arg->peer_vht_caps = vht_cap->cap;
 
+	ampdu_factor =
+		(vht_cap->cap & IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK) >>
+		IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT;
+
+	/* Workaround: Some Netgear/Linksys 11ac APs set Rx A-MPDU factor to
+	 * zero in VHT IE. Using it would result in degraded throughput.
+	 * arg->peer_max_mpdu at this point contains HT max_mpdu so keep
+	 * it if VHT max_mpdu is smaller. */
+	arg->peer_max_mpdu = max(arg->peer_max_mpdu,
+				 (1 << (IEEE80211_HT_MAX_AMPDU_FACTOR +
+					ampdu_factor)) - 1);
+
 	if (sta->bandwidth == IEEE80211_STA_RX_BW_80)
 		arg->peer_flags |= WMI_PEER_80MHZ;
 
-- 
1.7.9.5


^ permalink raw reply related

* Re: [PATCH] wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware
From: Eugene Krasnikov @ 2013-10-04  7:55 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: John W. Linville, linux-wireless, wcn36xx
In-Reply-To: <524E72B7.5000102@broadcom.com>

Hi Arend,

Yes, i am building it as a module. Let me try to build it into the
kernel, may be that is the reason why build fails.

2013/10/4 Arend van Spriel <arend@broadcom.com>:
> On 10/03/2013 11:22 PM, Eugene Krasnikov wrote:
>>
>> Hm, weird... do not see this problem myself. Let me try to sync latest
>> wireless-next and will try to apply latest patch from this mailthread
>> on top.
>
>
> Hi Eugene,
>
> Do you build the driver as module. John is building it built-in then kernel.
>
> Gr. AvS
>
>
>> P.S. If somebody esle can try to apply this patch and build that would
>> be useful to know if problem is visible on others PCs as well.
>>
>> 2013/10/3 John W. Linville <linville@tuxdriver.com>:
>>>
>>> On Thu, Sep 26, 2013 at 11:25:18PM +0100, Eugene Krasnikov wrote:
>>>>
>>>> Hi John,
>>>>
>>>> This is the latest version of wcn36xx driver on top of current
>>>> wireless-next tree. Please let me know if you have any problems with
>>>> applying it.
>>>>
>>>> 2013/9/26 Eugene Krasnikov <k.eugene.e@gmail.com>:
>>>>>
>>>>> This is a mac80211 driver for Qualcomm WCN3660/WCN3680 devices. So
>>>>> far WCN3660/WCN3680 is available only on MSM platform.
>>>>>
>>>>> Firmware can be found here:
>>>>>
>>>>> https://www.codeaurora.org/cgit/external/hisense/platform/vendor/qcom-opensource/wlan/prima/tree/firmware_bin?h=8130_CS
>>>>>
>>>>> Wiki page is available here:
>>>>> http://wireless.kernel.org/en/users/Drivers/wcn36xx
>>>>>
>>>>> A lot people made a contribution to this driver. Here is the list in
>>>>> alphabetical order:
>>>>>
>>>>> Eugene Krasnikov <k.eugene.e@gmail.com>
>>>>> Kalle Valo <kvalo@qca.qualcomm.com>
>>>>> Olof Johansson <dev@skyshaper.net>
>>>>> Pontus Fuchs <pontus.fuchs@gmail.com>
>>>>> Yanbo Li <yanbol@qti.qualcomm.com>
>>>>>
>>>>> Signed-off-by: Eugene Krasnikov <k.eugene.e@gmail.com>
>>>
>>>
>>> 'make allyesconfig' yield this:
>>>
>>>    LD      drivers/net/wireless/ath/ath.o
>>>    LD      drivers/net/wireless/ath/built-in.o
>>> drivers/net/wireless/ath/wcn36xx/built-in.o: In function
>>> `_GLOBAL__sub_I_65535_0_wcn36xx_set_default_rates':
>>>
>>> /home/linville/git/wireless-next/drivers/net/wireless/ath/wcn36xx/main.c:302:
>>> multiple definition of `debug_mask'
>>>
>>> drivers/net/wireless/ath/ath6kl/built-in.o:/home/linville/git/wireless-next/drivers/net/wireless/ath/ath6kl/cfg80211.c:1208:
>>> first defined here
>>> make[2]: *** [drivers/net/wireless/ath/built-in.o] Error 1
>>> make[1]: *** [drivers/net/wireless/ath] Error 2
>>> make: *** [drivers/net/wireless/] Error 2
>>>
>>> --
>>> John W. Linville                Someday the world will need a hero, and
>>> you
>>> linville@tuxdriver.com                  might be all we have.  Be ready.
>>
>>
>>
>>
>
>



-- 
Best regards,
Eugene

^ permalink raw reply

* Re: [PATCH] wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware
From: Arend van Spriel @ 2013-10-04  7:48 UTC (permalink / raw)
  To: Eugene Krasnikov, John W. Linville; +Cc: linux-wireless, wcn36xx
In-Reply-To: <CAFSJ42ZwJzd46UXE2crzuaMVRLzre9SVm_vFcQ-KAVY6Q9c3QQ@mail.gmail.com>

On 10/03/2013 11:22 PM, Eugene Krasnikov wrote:
> Hm, weird... do not see this problem myself. Let me try to sync latest
> wireless-next and will try to apply latest patch from this mailthread
> on top.

Hi Eugene,

Do you build the driver as module. John is building it built-in then kernel.

Gr. AvS

> P.S. If somebody esle can try to apply this patch and build that would
> be useful to know if problem is visible on others PCs as well.
>
> 2013/10/3 John W. Linville <linville@tuxdriver.com>:
>> On Thu, Sep 26, 2013 at 11:25:18PM +0100, Eugene Krasnikov wrote:
>>> Hi John,
>>>
>>> This is the latest version of wcn36xx driver on top of current
>>> wireless-next tree. Please let me know if you have any problems with
>>> applying it.
>>>
>>> 2013/9/26 Eugene Krasnikov <k.eugene.e@gmail.com>:
>>>> This is a mac80211 driver for Qualcomm WCN3660/WCN3680 devices. So
>>>> far WCN3660/WCN3680 is available only on MSM platform.
>>>>
>>>> Firmware can be found here:
>>>> https://www.codeaurora.org/cgit/external/hisense/platform/vendor/qcom-opensource/wlan/prima/tree/firmware_bin?h=8130_CS
>>>>
>>>> Wiki page is available here:
>>>> http://wireless.kernel.org/en/users/Drivers/wcn36xx
>>>>
>>>> A lot people made a contribution to this driver. Here is the list in
>>>> alphabetical order:
>>>>
>>>> Eugene Krasnikov <k.eugene.e@gmail.com>
>>>> Kalle Valo <kvalo@qca.qualcomm.com>
>>>> Olof Johansson <dev@skyshaper.net>
>>>> Pontus Fuchs <pontus.fuchs@gmail.com>
>>>> Yanbo Li <yanbol@qti.qualcomm.com>
>>>>
>>>> Signed-off-by: Eugene Krasnikov <k.eugene.e@gmail.com>
>>
>> 'make allyesconfig' yield this:
>>
>>    LD      drivers/net/wireless/ath/ath.o
>>    LD      drivers/net/wireless/ath/built-in.o
>> drivers/net/wireless/ath/wcn36xx/built-in.o: In function `_GLOBAL__sub_I_65535_0_wcn36xx_set_default_rates':
>> /home/linville/git/wireless-next/drivers/net/wireless/ath/wcn36xx/main.c:302: multiple definition of `debug_mask'
>> drivers/net/wireless/ath/ath6kl/built-in.o:/home/linville/git/wireless-next/drivers/net/wireless/ath/ath6kl/cfg80211.c:1208: first defined here
>> make[2]: *** [drivers/net/wireless/ath/built-in.o] Error 1
>> make[1]: *** [drivers/net/wireless/ath] Error 2
>> make: *** [drivers/net/wireless/] Error 2
>>
>> --
>> John W. Linville                Someday the world will need a hero, and you
>> linville@tuxdriver.com                  might be all we have.  Be ready.
>
>
>



^ permalink raw reply

* Re: [PATCH 2/2] ath10k: fix scheduling while atomic bug
From: Kalle Valo @ 2013-10-04  6:37 UTC (permalink / raw)
  To: Michal Kazior; +Cc: ath10k, linux-wireless
In-Reply-To: <CA+BoTQnjG9MnbPsLM-RtAwuGNp_ZAfbvwvR_zg1Ks0ZmUxAtrQ@mail.gmail.com>

Michal Kazior <michal.kazior@tieto.com> writes:

> On 1 October 2013 18:35, Kalle Valo <kvalo@qca.qualcomm.com> wrote:
>> Michal Kazior <michal.kazior@tieto.com> writes:
>>
>>> Recent WMI/HTC changes broke WEP with multiple
>>> keys. If WMI had no HTC TX credits to submit
>>> command for default wep index update it would
>>> trigger a bug.
>>>
>>> This simply moves the wep key index update to a
>>> worker.
>>>
>>> The key update may happen some time after first
>>> frame with a different wep key has been sent (i.e.
>>> some frames will be sent with old key). This was
>>> the case before too as WMI commands were
>>> asynchronous.
>>>
>>> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
>>
>> This looks problematic. Basically you just delay sending the WMI
>> command, but there's no guarantee that we actually have free credits at
>> the time of transmission. So to me it looks like this fixes the issue
>> just by luck.
>
> One thing at a time.
>
> This patch fixes 'scheduling while atomic' bug that was introduced
> with recent HTC/WMI changes.

Ah, that's what you mean with "triggers a bug" in the commit log? Ok,
even though I consider this very ugly I guess it's alright as a short
term fix. But please describe the bug in more detail in the commit log,
at least mention that we are sleeping in an atomic context (or something
like that).


-- 
Kalle Valo

^ permalink raw reply

* [PATCH 2/2] ath10k: fix possible memory leak in new FW loading
From: Michal Kazior @ 2013-10-04  6:13 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1380867200-19714-1-git-send-email-michal.kazior@tieto.com>

Some failpaths did `return` instead of a `goto`
leaking requested firmware.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
 drivers/net/wireless/ath/ath10k/core.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index bf85d34..5acb404 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -404,12 +404,14 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name)
 	if (len < magic_len) {
 		ath10k_err("firmware image too small to contain magic: %zu\n",
 			   len);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err;
 	}
 
 	if (memcmp(data, ATH10K_FIRMWARE_MAGIC, magic_len) != 0) {
 		ath10k_err("Invalid firmware magic\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err;
 	}
 
 	/* jump over the padding */
@@ -431,7 +433,8 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name)
 		if (len < ie_len) {
 			ath10k_err("Invalid length for FW IE %d (%zu < %zu)\n",
 				   ie_id, len, ie_len);
-			return -EINVAL;
+			ret = -EINVAL;
+			goto err;
 		}
 
 		switch (ie_id) {
-- 
1.7.9.5


^ permalink raw reply related

* [PATCH 0/2] ath10k: minor fixes
From: Michal Kazior @ 2013-10-04  6:13 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior

Hi,

The patchset fixes a compilation warning and a
memory leak in FW loading code.

Michal Kazior (2):
  ath10k: fix printf format string
  ath10k: fix possible memory leak in new FW loading

 drivers/net/wireless/ath/ath10k/core.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

-- 
1.7.9.5


^ 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