* [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, ®);
@@ -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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox