summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
AgeCommit message (Collapse)Author
2014-07-10Merge branch 'master' of ↵John W. Linville
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2014-07-01ath9k: Calculate sleep durationRajkumar Manoharan
Right now sleep duration is configured as beacon interval. It should be the multiple of beacon interval by listen period which helps to reduce station power consumption. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-07-01ath9k: Increase max listen intervalRajkumar Manoharan
Earlier the listen interval is used to decide switching between operating and off-channels during bgscan and to improve throughput, the listen interval is reduced to 1. After optimiztion in scan state machine, listen period is not used for decision making and hence reverting it back to original value. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-07-01ath9k: Cache beacon config after associationRajkumar Manoharan
The beacon configurations are not cached properly after the station associates with AP. Not handling BEACON_INFO, is failing to update dtim period and also it is causing below warning message. WARNING: CPU: 1 PID: 0 at drivers/net/wireless/ath/ath9k/recv.c:548 ath_rx_tasklet+0xc89/0xca0 [ath9k]() Call Trace: [<c14669c9>] dump_stack+0x48/0x69 [<c104f1a2>] warn_slowpath_common+0x82/0xa0 [<fd38c2f9>] ? ath_rx_tasklet+0xc89/0xca0 [ath9k] [<fd38c2f9>] ? ath_rx_tasklet+0xc89/0xca0 [ath9k] Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-07-01ath5k: capture CCK and OFDM restartsMathy Vanhoef
Treat frames that underwent a CCK or OFDM restart as frames with an invalid CRC. Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-07-01ath5k: support for FIF_FCSFAIL filterMathy Vanhoef
When the FIF_FCSFAIL filter flag is set, pass frames with CRC errors. Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-26Merge branch 'ath-current' of git://github.com/kvalo/athJohn W. Linville
2014-06-25ath9k_hw: Fix pll2_divfrac for AR953xRajkumar Manoharan
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-25ath9k_hw: fix tx gain table index for AR953xRajkumar Manoharan
Fix tx gain table index on fast channel change for AR953x. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-25ath9k_hw: fix XPABIASLEVEL settings for AR9531Rajkumar Manoharan
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-25ath9k_hw: Add QCA953x 2.0 initvalsRajkumar Manoharan
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-25ath9k_hw: update CCK loop coefficients for AR953x 1.0Rajkumar Manoharan
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-25Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-nextJohn W. Linville
2014-06-25mac80211: support more than one band in scan requestDavid Spinadel
Some drivers (such as iwlmvm) can handle multiple bands in a single HW scan request. Add a HW flag to indicate that the driver support this. To hold the required data, create a separate structure for HW scan request that holds cfg scan request and data about different parts of the scan IEs. As this changes the mac80211 API, update all drivers using it to use the correct new function type/argument. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2014-06-20ath9k: Fix build error in ath_reset_internalRajkumar Manoharan
drivers/net/wireless/ath/ath9k/main.c:299 ath_reset_internal() error: we previously assumed 'hchan' could be null (see line 293) Cc: Felix Fietkau <nbd@openwrt.org> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-20wil6210: fix for 64-bit integer divisionVladimir Kondratiev
On some platforms, cycles_t is 64-bit, and gcc generates call to __udivdi3 for straight division of cycles_t/cycles_t. This leads to compilation failure, as this function is not exist in the kernel runtime. do_div() to rescue Original report: tree: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git master head: 2e91606f5e1ec7329557dfc0e298c4c021acbb80 commit: 7c0acf868d2e470c9d6a40091acf8d6444c01b57 [81/103] wil6210: Tx performance monitoring config: i386-randconfig-ha3-0620 (attached as .config) All error/warnings: drivers/built-in.o: In function `wil_vring_debugfs_show': >> debugfs.c:(.text+0x39b9be): undefined reference to `__udivdi3' Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: track Tx queue stateVladimir Kondratiev
Provide both event (netif_tx_[stop|wake]) tracking via printk; and state via debugfs 'info' Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: interrupt statisticsVladimir Kondratiev
Track number of interrupts and Tx/Rx packets; expose through debugfs 'info'. Reset upon read. Used to analyse effectivness of interrupt coalescing and NAPI. Read twice with some interval like cat info > /dev/null; sleep 1; cat info Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: add 'info' debugfs entryVladimir Kondratiev
Use 'info' debugfs entry for misc. assorted information. Start with indication whether platform is AC-powered; will use it later for power related decisions Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: work around for platforms with broken INTxVladimir Kondratiev
There are platforms where INTx can't be routed by ACPI, this leads to pci_enable_device failure. Re-try pretending we have MSI already configured; in this case pci_enable_device do not try to configure INTx. However, MSI could still work. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: fix for unreachable code in wmi_recv_cmdVladimir Kondratiev
As reported by Dan Carpenter <dan.carpenter@oracle.com>: The patch a715c7ddd65a: "wil6210: improve debug for WMI receive" from May 29, 2014, leads to the following static checker warning: drivers/net/wireless/ath/wil6210/wmi.c:746 wmi_recv_cmd() info: ignoring unreachable code. drivers/net/wireless/ath/wil6210/wmi.c 739 spin_unlock_irqrestore(&wil->wmi_ev_lock, flags); 740 { 741 int q = queue_work(wil->wmi_wq, 742 &wil->wmi_event_worker); 743 wil_dbg_wmi(wil, "queue_work -> %d\n", q); 744 } 745 } 746 if (n > 1) ^^^^^^^^^^ We never reach this if statemtent. 747 wil_dbg_wmi(wil, "%s -> %d events processed\n", __func__, n); 748 } Exit loop with "break", not "return". Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: map additional registers on targetVladimir Kondratiev
New registers area introduced, mark corresponded address range as valid Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: remove unused #includeVladimir Kondratiev
In the pcie_bus.c, knowledge about debugfs is not necessary Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: fix disconnect handling for APVladimir Kondratiev
For the AP-like interface, if "disconnect all" requested, every station should be deleted with cfg80211_del_sta(). Implement this behavior. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: avoid dmesg pollution by Tx errorsVladimir Kondratiev
On Tx path, when vring for the destination not found, it was considered as error and message was printed unconditionally. However, this situation is normal after disconnect. If disconnect was while heavy traffic load, lots of Tx packets will be dropped and this would cause significant amount of prints in dmesg. Demote messages priority from 'error' to 'debug'. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: Debug print GRO Rx resultVladimir Kondratiev
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: add 'freq' and 'link' debugfs entriesVladimir Kondratiev
Expose operational frequency and link info Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: Use "name = value" format in the debugfsVladimir Kondratiev
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: debug print when scan request state changesVladimir Kondratiev
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: print error when notifying about FW errorVladimir Kondratiev
Print to dmesg when FW error notification is about to be sent Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: writeable ITR registersVladimir Kondratiev
Interrupt threshold registers may be written to. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: debugfs interface to send raw WMI commandVladimir Kondratiev
Debug aid Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: BACK: track last dropped SSNVladimir Kondratiev
Track and print on debugfs Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: Allow driver load if FW not readyVladimir Kondratiev
Usable for debugging, to be able to obtain FW traces Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: Tx performance monitoringVladimir Kondratiev
For performance monitoring, trace time intervals when Tx vring is idle/not idle. Use CPU cycle counter for this, because jiffies is too rough, and other precise time measurement methods involve overhead while get_cycles() should be fast. This used to provide some estimation for percentage when Tx vring was idle, i.e. when hardware is under-utilized. Estimation is not precise because of many reasons - CPU frequency scaling, grt_cycles() may be per core etc. But still, it is good estimation Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: more debug info for vringVladimir Kondratiev
print used/available counters on debugfs; print to dmesg when Tx vring becomes empty This aids with performance investigation Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: print more info about BSS foundVladimir Kondratiev
print essential info to dmesg Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: trace wil->status on debugfsVladimir Kondratiev
For debug purposes Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: print debug info when starting APVladimir Kondratiev
In the wil_cfg80211_start_ap(), debug print selected data: - beacon (before and after fix-up) - crypto parameters - mark start/stop AP invocation Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: indicate mgmt_tx statusVladimir Kondratiev
Inform cfg80211 about Tx result Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19wil6210: Tx mgmt frame from debugfsVladimir Kondratiev
Provide 2 files on the debugfs: - "rxon": write channel (1..4) to open Rx on it, 0 to rxoff - "tx_mgmt": write binary frame, starting from MAC header one need to care about turning receiver on/off before/after tx_mgmt Correct sequence is: echo $channel > rxon cat mfmt_frame > tx_mgmt echo 0 > rxon Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Advertise multichannel supportRajkumar Manoharan
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: use separate HW queue for each channel contextRajkumar Manoharan
Use seperate tx queue for each AC in each channel context and expose these information to mac80211 to avoid stopping one channel context leads to stopping the entire traffic for that AC even on other contexts. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Add recovery mechanism for hw TSF timerFelix Fietkau
Configure the TSF based hardware timer for a channel switch. Also set up backup software timer, in case the gen timer fails. This could be caused by a hardware reset. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Update channel switch timerFelix Fietkau
TSF time might have been updated by the incoming beacon, need update the channel switch timer to reflect the change. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Handle beacon miss on multi channel contextFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Add periodic NoA supportFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Add multi-channel scheduling supportFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Implement mgd_prepare_txFelix Fietkau
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-06-19ath9k: Adjust AP beacon tsf based on station contextFelix Fietkau
In multi channel context (AP + STA case), adjust the TSF time of the AP chanctx to keep its beacons at half beacon interval offset relative to the STA chanctx. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>