summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
Commit message (Collapse)AuthorAgeFilesLines
* ath9k_htc: check seq number instead of cmd id for timeoutFred Chou2015-04-072-7/+7
| | | | | | | | As the driver may send multiple wmi commands with identical cmd id, it is more robust to check seq number for timeout instead. Signed-off-by: Fred Chou <fred.chou.nd@gmail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2015-04-023-10/+14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/net/usb/asix_common.c drivers/net/usb/sr9800.c drivers/net/usb/usbnet.c include/linux/usb/usbnet.h net/ipv4/tcp_ipv4.c net/ipv6/tcp_ipv6.c The TCP conflicts were overlapping changes. In 'net' we added a READ_ONCE() to the socket cached RX route read, whilst in 'net-next' Eric Dumazet touched the surrounding code dealing with how mini sockets are handled. With USB, it's a case of the same bug fix first going into net-next and then I cherry picked it back into net. Signed-off-by: David S. Miller <davem@davemloft.net>
| * ath9k: disable TPC support again (for now)Felix Fietkau2015-03-161-1/+1
| | | | | | | | | | | | | | | | | | TPC support has been observed to cause some tx power fluctuations on some devices with at least AR934x and AR938x chips. Disable it for now until the bugs have been found and fixed Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * ath9k: fix tracking of enabled AP beaconsFelix Fietkau2015-03-162-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | sc->nbcnvifs tracks assigned beacon slots, not enabled beacons. Therefore, it cannot be used to decide if cur_conf->enable_beacon (bool) should be updated, or if beacons have been enabled already. With the current code (depending on the order of calls), beacons often do not get enabled in an AP+STA setup. To fix tracking of enabled beacons, convert cur_conf->enable_beacon to a bitmask of enabled beacon slots. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* | Merge tag 'wireless-drivers-next-for-davem-2015-04-01' of ↵David S. Miller2015-04-0142-274/+1728
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Major changes: ath9k: * add Active Interference Cancellation, a method implemented in the HW to counter WLAN RX > sensitivity degradation when BT is transmitting at the same time. This feature is supported by cards like WB222 based on AR9462. iwlwifi: * Location Aware Regulatory was added by Arik * 8000 device family work * update to the BT Coex firmware API brmcfmac: * add new BCM43455 and BCM43457 SDIO device support * add new BCM43430 SDIO device support wil6210: * take care of AP bridging * fix NAPI behavior * found approach to achieve 4*n+2 alignment of Rx frames rt2x00: * add new rt2800usb device DWA 130 rtlwifi: * add USB ID for D-Link DWA-131 * add USB ID ASUS N10 WiFi dongle mwifiex: * throughput enhancements ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * | ath9k: use REG_RMW and rmw buffer in ath9k_hw_def_set_gainOleksij Rempel2015-03-301-20/+14
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: use REG_RMW and rmw buffer in ath9k_hw_4k_set_board_valuesOleksij Rempel2015-03-301-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | replace REG_WRITE to REG_RMW and place every thing in one RMW buffer. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: use REG_RMW and rmw buffer in ath9k_hw_4k_set_gainOleksij Rempel2015-03-301-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | it is possible to reduce time needed for this function by rplacing REG_WRITE with REG_RMW (plus dummy 0) and putt all commands in same buffer. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ath9k_hw_4k_set_board_values: use rmw bufferOleksij Rempel2015-03-301-0/+2
| | | | | | | | | | | | | | | | | | | | | it will reduce exution time from 14ms to 2ms on ar9271 Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ath9k_hw_analog_shift_rmw: use REG_RMWOleksij Rempel2015-03-301-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | use REG_RMW in ath9k_hw_analog_shift_rmw. It will double execution speed on usb bus. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ath9k_hw_4k_set_board_values: use rmw bufferOleksij Rempel2015-03-301-0/+2
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: use rmw buffer in ath9k_hw_set_operating_mode and ath9k_hw_resetOleksij Rempel2015-03-301-0/+4
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ath9k_hw_set_4k_power_cal_tabl: use rmw bufferOleksij Rempel2015-03-301-0/+2
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: write buffer related optimisation in ar5008_hw_set_channel_regsOleksij Rempel2015-03-301-2/+3
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ath9k_hw_loadnf: use REG_RMWOleksij Rempel2015-03-301-11/+8
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: use one shot read in ath9k_hw_update_mibstatsOleksij Rempel2015-03-301-5/+15
| | | | | | | | | | | | | | | | | | | | | this will reduce some overhead on usb bus. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ar9271_hw_pa_cal: use REG_READ_ARRAYOleksij Rempel2015-03-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | insted of reading each register separatly and waste 4ms on each operation, we can use one shot read. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: add new function ath9k_hw_read_arrayOleksij Rempel2015-03-302-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | REG_READ generate most overhead on usb bus. It send and read micro packages and reduce usb bandwidth. To reduce this overhead we should read in batches. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: add multi_read to be compatible with ath9k_htcOleksij Rempel2015-03-301-0/+11
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ar9271_hw_pa_cal: use RMW bufferOleksij Rempel2015-03-301-2/+6
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ar9271_hw_pa_cal: use proper makroses.Oleksij Rempel2015-03-301-24/+19
| | | | | | | | | | | | | | | Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: ar9271_hw_pa_cal - use defs instead of magin numbersOleksij Rempel2015-03-301-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | This function uses mixed styles for register names/numbers which is make harder reading and optimisation. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k_htc: add new WMI_REG_RMW_CMDID commandOleksij Rempel2015-03-306-6/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since usb bus add extra delay on each request, a command with read + write requests is too expensive. We can dramtically reduce usb load by moving this command to firmware. In my tests, this patch will reduce channel scan time for about 5-10 seconds. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Fix AIC compilation errorSujith Manoharan2015-03-211-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AIC needs to be registered only when BTCOEX is enabled. This fixes the error reported by kbuild: >> ERROR: "ar9003_hw_attach_aic_ops" [drivers/net/wireless/ath/ath9k/ath9k_hw.ko] undefined! Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: fall back to pseudo-DMS mcast for secure link and PBSSVladimir Kondratiev2015-03-201-2/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Multicast is not yet properly supported for all connection types; actually, only non-secure AP is supported. For all other cases, fall back to old "pseudo-DMS" approach. Namely, for: - PBSS - secure connection When re-routing MCAST Rx->Tx on the AP, do not Tx back to the origin of the frame Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: implement broadcast/multicast dataVladimir Kondratiev2015-03-205-76/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use dedicated vring for multicast frames; this vring allocated for AP and PBSS (both P2P GO and client) configurations For short frames, use MCS0; for long - MCS1 Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: add bcast structures to WMIVladimir Kondratiev2015-03-201-2/+18
| | | | | | | | | | | | | | | | | | | | | Sync with the wmi definitions from the firmware team Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: Prefer ether_addr_copy() over memcpy()Vladimir Kondratiev2015-03-202-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix checkpatch warning: WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2) Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: Align Rx frames on 4*n+2 by having SNAPVladimir Kondratiev2015-03-204-3/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the networking code and for hardware network accelerators, it is better to have IP header 4*n aligned. On the other side, DMA on Rx path require buffer to be aligned on 4*n as well. Having 14 bytes of Ethernet header, these 2 alignment requests are in contradiction. To solve this, order hardware offload block to not remove SNAP header. This adds extra 6 bytes between addresses and ethertype, making it 20 bytes total. This way, both buffer and IP header are 4*n aligned. Remaining is only to remove SNAP by shifting addresses 6 bytes. This involves data copying, so this feature should be disabled unless required by the platform. Module parameter "rx_align_2" (bool, default - false) introduced to control this feature. Feature is completely disabled when parameter is false. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: fix check for FW responsivenessVladimir Kondratiev2015-03-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "echo" used to be called when no firmware loaded to the NIC, this causes error output. Probe firmware with "echo" only after it returned "ready" event. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | wil6210: optimize index manipulation in wil_vring_reap_rxVladimir Kondratiev2015-03-201-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use temporal variable for often used vring->swhead; and use proper index in debug printing - vring->swhead used before was modified in wil_vring_advance_head and then increased value was used in debug print Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Start AIC calibration during MCI resetSujith Manoharan2015-03-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | When a MCI reset is done, make sure that AIC is started. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Handle MCI_STATE_AIC_CALSujith Manoharan2015-03-203-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | Add the main AIC calibration function to handle MCI_STATE_AIC_CAL. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Handle MCI_STATE_AIC_STARTSujith Manoharan2015-03-203-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds a function to handle the MCI message MCI_STATE_AIC_START. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Handle MCI_STATE_AIC_CAL_RESETSujith Manoharan2015-03-203-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | Add a routine to handle the MCI_STATE_AIC_CAL_RESET message. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Disable AIC by defaultSujith Manoharan2015-03-202-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since various MCI messages need to be handled, along with driver-level support in upper layers, disable AIC for now. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Process the AIC calibration resultsSujith Manoharan2015-03-201-0/+245
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for post-processing the AIC calibration results. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Finish AIC calibrationSujith Manoharan2015-03-201-1/+77
| | | | | | | | | | | | | | | | | | | | | | | | Set the appropriate bits in the HW after AIC calibration is done. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Handle MCI_STATE_AIC_CAL_SINGLESujith Manoharan2015-03-204-0/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds routines to handle the MCI message AIC_CAL_SINGLE, starting the required HW calibration. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Add register definitions for AICSujith Manoharan2015-03-203-25/+169
| | | | | | | | | | | | | | | | | | | | | | | | Various registers to control and check AIC status. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Register private AIC opsSujith Manoharan2015-03-205-1/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | AIC can be disabled or enabled on a per-card basis using MCI configuration, so register a function to check its status. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Add initial structures for AICSujith Manoharan2015-03-202-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | These are necessary for implementing AIC, supported by chips like WB222. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: allow 40MHz radar detection widthZefir Kurtisi2015-03-161-1/+2
| | | | | | | | | | | | | | | Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: add DFS support for extension channelZefir Kurtisi2015-03-161-15/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In HT40 modes, pulse events on primary and extension channel are processed individually. If valid, a pulse event will be fed into the detector * for primary frequency, or * for extension frequency (+/-20MHz based on HT40-mode) * or both With that, a 40MHz radar will result in two individual radar events. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: restart only triggering DFS detector lineZefir Kurtisi2015-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | To support HT40 DFS mode, a triggering detector must reset only itself but not other detector lines. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: make ath_frame_info fit into reduced-size rate_driver_dataFlorian Westphal2015-03-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | pre-requisite to shrink size of ieee80211_tx_info which in turn is needed to shrink skb->cb to 40 bytes again. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ar5523: use container_ofFlorian Westphal2015-03-132-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we want to shrink skb->cb then we'd have to see about reducing struct ieee80211_tx_info, which gets embedded inside skb->cb[]. It provides a scratch space to be used by wireless drivers. ar5523 uses the maximum space available today (40 bytes), but it seems we don't need this -- data->skb pointer seems to always point back to the skb whose cb buffer the data structure resides, iow, given a pointer to the embedded control buffer we can infer the skb address. Tested-by: Pontus Fuchs <pontus.fuchs@gmail.com> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Fix RTT chainmask usageSujith Manoharan2015-03-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since the RTT registers need to be configured for all valid chains irrespective of the runtime chainmask, use the actual chainmask of the chip. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Check allowed PCIE powersave configurationSujith Manoharan2015-03-131-16/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When assigning the initvals for PCIE sleep/awake registers, check the configuration that has been assigned to pll_pwrsave during initialization. Also, display a warning if we don't have valid arrays. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| * | ath9k: Initialize pll_pwrsave for AR9462/AR9565Sujith Manoharan2015-03-133-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Cards based on AR9462/AR9565 support more PCIE power save mechanisms, so register them correctly. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>