aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath
Commit message (Collapse)AuthorAge
* ath9k: simplify ath9k_hw_get_scaled_power functionGabor Juhos2012-04-16
| | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: introduce ath9k_hw_get_scaled_power helperGabor Juhos2012-04-16
| | | | | | | | | | The computation of the scaled power value in various eeprom files uses identical code. Move that code into a helper function and use that instead of code duplication. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: use consistent value for REDUCE_SCALED_POWER_BY_THREE_CHAINGabor Juhos2012-04-16
| | | | | | | | | | | | | | | | | The REDUCE_SCALED_POWER_BY_THREE_CHAIN symbol is defined in different eeprom files, and the value varies between the different files. In eeprom_def.c and in ar9003_eeprom.c the value of the symbol is 9, however the comments in these files indicates the value should be 10*log10(3)*2 which is 9.54242509439325. Replace the the value to 10 in these files. Also add comments to eeprom_9287.c. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: use ath9k_hw_update_regulatory_maxpower in ath9k_hw_def_set_txpowerGabor Juhos2012-04-16
| | | | | | | | We have a helper function for updating the max_power_level value. Use that and remove the duplicated code. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* net/wireless: use module_pci_driverAxel Lin2012-04-16
| | | | | | | | | | | | | | | | | | | | This patch converts the drivers in drivers/net/wireless/* to use module_pci_driver() macro which makes the code smaller and a bit simpler. Signed-off-by: Axel Lin <axel.lin@gmail.com> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: Jiri Slaby <jirislaby@gmail.com> Cc: Nick Kossifidis <mickflemm@gmail.com> Cc: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com> Cc: Simon Kelley <simon@thekelleys.org.uk> Cc: Jouni Malinen <j@w1.fi> Cc: Lennert Buytenhek <buytenh@wantstofly.org> Cc: Christian Lamparter <chunkeey@googlemail.com> Cc: Ivo van Doorn <IvDoorn@gmail.com> Cc: Larry Finger <Larry.Finger@lwfinger.net> Cc: linux-wireless@vger.kernel.org Acked-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: add PCI idYoshinori Sato2012-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | This device works fine of ath5k. Details bellow 05:00.0 0200: 168c:ff1b (rev 01) 05:00.0 Ethernet controller: Atheros Communications Inc. Device ff1b (rev 01) Flags: bus master, fast devsel, latency 0, IRQ 19 Memory at febf0000 (64-bit, non-prefetchable) [size=64K] Capabilities: <access denied> Kernel driver in use: ath5k ath5k 0000:05:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 ath5k 0000:05:00.0: setting latency timer to 64 ath5k 0000:05:00.0: registered as 'phy0' ath: EEPROM regdomain: 0x67 ath: EEPROM indicates we should expect a direct regpair map ath: Country alpha2 being used: 00 ath: Regpair used: 0x67 ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' ath5k phy0: Atheros AR2425 chip found (MAC: 0xe2, PHY: 0x70) Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: fix beacon descriptorRajkumar Manoharan2012-04-16
| | | | | | | | | | The tx interrupt for beacon queue is configured only for edma chips. As the edma chip does not support per descriptor interrupt, no need to set INTREQ for every beacon descriptor. And also clear ps filter for beacon frame. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: skip beaconing when reset work is pendingRajkumar Manoharan2012-04-16
| | | | | | | | Whenever the reset work is queued up, do not generate beacon. And also clear the beacon miss count once the beacon stuck was observed. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: reset noiseimmunity level to defaultRajkumar Manoharan2012-04-16
| | | | | | | | | After the chip reset, the noise immunity levels are restored with history values. If the immunity levels are lower than the defaults, lets start with the optimal values. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: fix ibss beacon next tbttRajkumar Manoharan2012-04-16
| | | | | | | | | | | Sync-up ibss beacon timer with the beacon frame's timestamp. When the node acts as joiner, it has to sync with the received beacon timestamp instead of reading tsf from hw. As the hw tsf wont wont be update till bssid is configured. This patch programs hw tsf with the received beacon timestamp if beacon timers are yet to be configured. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: fix ibss fair beacon distribution for AR9462Rajkumar Manoharan2012-04-16
| | | | | | | | Update AR9462 initval to fix unbalance beacon distribution in Ad-Hoc network. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: optimize the hardware hang checkFelix Fietkau2012-04-16
| | | | | | | | Since it's only called when beacons are stuck, move it to the SWBA handler tasklet, to avoid doing redundant checks on every single interrupt. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: do not register LEDs on AR913xFelix Fietkau2012-04-16
| | | | | | | LED support is typically handled via system GPIO on these platforms. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k_hw: add support for 8 AP mode interfacesFelix Fietkau2012-04-16
| | | | | | | | Also tweak beacon response times for better stability with the shorter timer intervals. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: use compare_ether_addr on MAC addresses instead of memcmpJonathan Bither2012-04-16
| | | | | | | | | | | Following Felix's recent patchset as an example I have replaced memcmp with compare_ether_addr. "Because of the constant size and guaranteed 16 bit alignment, the inline compare_ether_addr function is much cheaper than calling memcmp." Signed-off-by: Jonathan Bither <jonbither@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: Gather and report IRQ sync_cause errors.Ben Greear2012-04-16
| | | | | | | | | | | Report all defined sync_cause errors in debugfs to aid with debugging. Use a macro to print out the interrupts file contents to decrease code duplication. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: Use macro to decrease code when priting recv stats.Ben Greear2012-04-16
| | | | | | | | This hides some repetitive code, and will help if the column widths ever need to change. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k_htc: Add Panasonic N5HBZ0000055 device idSujith Manoharan2012-04-13
| | | | | | Reported-by: Ryan Roper <ryan.roper@gmail.com> Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* mac80211: remove hw.conf.channel usage where possibleMichal Kazior2012-04-13
| | | | | | | | | | | | | | Removes hw.conf.channel usage from the following functions: * ieee80211_mandatory_rates * ieee80211_sta_get_rates * ieee80211_frame_duration * ieee80211_rts_duration * ieee80211_ctstoself_duration This is in preparation for multi-channel operation. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k_hw: Remove BTCOEX initvalsSujith Manoharan2012-04-13
| | | | | | | | | | | | | | | | | The MAX_TXPWR table for BTCOEX is not needed for AR9462. Programming these values to the HW results in undesirable behavior - for example, large number of delimiter/data underruns are seen in AES-CCMP mode. Also, registers like AR_PCU_MISC_MODE2 return 0xdeadbeef after the BTCOEX_MAX power table is programmed to the HW, and frames being transmitted end up being looped back to the RX engine, an example being beacon frames in IBSS mode. Remove this table for now - this fixes CCMP performance and general IBSS usage. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: remove dead codeZefir Kurtisi2012-04-12
| | | | | | | | | Clean up some orphaned code lines containing * unused variables (not referenced / write-only) * non-implemented function prototypes Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Merge branch 'for-linville' of git://github.com/kvalo/ath6klJohn W. Linville2012-04-12
|\
| * ath6kl: Fix 4-way handshake failure in AP and P2P GO modeVasanthakumar Thiagarajan2012-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | RSN capability field of RSN IE which is generated (which is what really advertised in beacon/probe response) differs from the one generated in wpa_supplicant. This inconsistency in rsn IE results in 4-way handshake failure. To fix this, configure rsn capability used in wpa_supplicant in firmware using a new wmi command, WMI_SET_IE_CMDID. There is a bit (ATH6KL_FW_CAPABILITY_RSN_CAP_OVERRIDE) in fw_capabilities to advertise this support to driver. Signed-off-by: Subramania Sharma <sharmat@qca.qualcomm.com> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Configure htcap in fw based on the channel type in AP modeVasanthakumar Thiagarajan2012-04-09
| | | | | | | | | | | | | | | | | | | | This patch disables HT in start_ap if the type of the channel on which the AP mode is going to be operating is non-HT. HT is enabled with default ht cap setting if the operating channel is going to be 11n. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Don't advertise HT40 support in 2.4 GhzVasanthakumar Thiagarajan2012-04-09
| | | | | | | | | | | | | | HT40 is not supported in 2.4Ghz. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Fix target assert in p2p bringup with multi vifVasanthakumar Thiagarajan2012-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | Using interface 0 for p2p causes target assert. This is because interface 0 is always initialized to non-p2p operations. Fix this issue by initializing all the interfaces for p2p when fw is capable of dynamic interface switching. When fw is not capable of dynamic switching, make sure p2p is not brought up on interface which is not initialized for this purpose. Reported-by: Naveen Singh navesing@qca.qualcomm.com Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Support net_stats.multicastVasanthakumar Thiagarajan2012-04-04
| | | | | | | | | | | | | | | | | | net_stats.multicast is updated with the count of received multicast packets. kvalo: indentation changes Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Fix scan related issue on suspend-resumeVivek Natarajan2012-04-03
| | | | | | | | | | | | | | | | | | | | When a scan request is pending while going to suspend, any new scan request after resume will fail. So, cancel all scan requests in all the vifs before moving to suspend state. Signed-off-by: PingYang Zhang <pingzhan@qca.qualcomm.com> Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Use vmalloc instead of kmalloc for fwVivek Natarajan2012-04-03
| | | | | | | | | | | | | | | | | | | | Sometimes it has been observed that allocating a contiguous memory of more than 100K fails with kmalloc. This has been modified to use vmalloc instead. Signed-off-by: PingYang Zhang <pingzhan@qca.qualcomm.com> Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Set background scan period.Bala Shanmugam2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After connect command, send scan params WMI command to set background scan period. If period value is zero send 0xffff as bg scan period to disable bg scan. Set default bg scan period to be 60 seconds if not specified. This patch depends on below patch cfg80211: Add background scan period attribute. kvalo: fix open parenthesis alignment Signed-off-by: Bala Shanmugam <bkamatch@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Store scan request info in-advance before sending SCAN requestRaja Mani2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In current code, Scan request info is recorded in vif->scan_req after sending SCAN request to the firmware in ath6kl_cfg80211_scan(). In some corner cases, firmware sends SCAN_COMPLETE event immediately when it receives SCAN request, which internally executes scan complete event handler ath6kl_cfg80211_scan_complete_event() first. So, Scan completion handler will a get a chance to executed even before storing scan request info in ath6kl_cfg80211_scan(). Scan completion handler never report SCAN_COMPLETE event to cfg80211 if scan request info(vif->scan_req) is NULL. This leads to scan failure issue ("Device or resource busy error") during next SCAN request from the user space. This patch ensures that scan request info is stored before sending SCAN request. Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: add full USB supportKalle Valo2012-03-26
| | | | | | | | | | | | | | | | Now, with HTC pipe, it's possible to fully support USB version of AR6004. Based on code by Kevin Fang. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Add HTC pipe implementationKalle Valo2012-03-26
| | | | | | | | | | | | | | | | This is needed for USB. Based on code by Kevin Fang. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: add htc opsKalle Valo2012-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for adding HTC pipe implementation add htc-ops.h to make it possible dynamically choose which HTC type is used. Needed for full USB support. Based on the code by Ray Chen <raychen@qca.qualcomm.com>. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> Signed-off-by: Ray Chen <raychen@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: remove void pointer from ath6kl_credit_setup()Kalle Valo2012-03-26
| | | | | | | | | | | | Void pointers are bad. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: add rx data padding supportKalle Valo2012-03-26
| | | | | | | | | | | | Needed when using USB. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: add pointer to the skb in htc_packetKalle Valo2012-03-26
| | | | | | | | | | | | Needed by the USB code. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: add tx_comp_multi() to struct htc_ep_callbacksKalle Valo2012-03-26
| | | | | | | | | | | | It's also needed by the USB code. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Add tx_complete() to struct htc_ep_callbacksKalle Valo2012-03-26
| | | | | | | | | | | | | | This is needed by the USB code. Also while at it replace one void pointer with a properly typed pointer. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: set ram reserved size only for ar6003Kalle Valo2012-03-26
| | | | | | | | | | | | Ram reserved size is not needed with ar6004. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * ath6kl: Configure inactivity timeout in fwVasanthakumar Thiagarajan2012-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | Configure the inactivity timeout passed in start_ap() to firmware. This capability is advertised only when fw supports it, there is a new bit (ATH6KL_FW_CAPABILITY_INACTIVITY_TIMEOUT) in firmware capability ie for driver to learn fw's capability. After the fw finds out the station is inactive, it will probe the station with null func frames. By default, the timeout is 10 secs. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * Merge remote branch 'wireless-next/master' into ath6kl-nextKalle Valo2012-03-26
| |\
| * | ath6kl: Optimize target power in deep sleep suspendRaja Mani2012-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding below steps helps to get good power numbers in deep sleep suspend path, * Disable WOW mode. * Flush data packets and wait for all control packets. to be cleared in TX path before deep sleep suspend. * Set host sleep mode to SLEEP. Below steps are added to perform the recovery action while the system resume from deep sleep, * Set host sleep mode to AWAKE. * Reset scan parameters to default value. In addition, Debug prints are added to track deep sleep suspend/resume state. Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: Isolate host sleep mode config part from ath6kl_wow_suspendRaja Mani2012-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The piece of code used in ath6kk_wow_suspend function to configure the host sleep mode is needed in deep sleep case also. Moving that portion to a separate function called ath6kl_update_host_mode() would be helpful to avoid the duplication of the same code in deep sleep path. There is no functional change. kvalo: move inline functions to cfg80211.c and fix a long line Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: Dump htc header when invalid Rx frame length is detectedVasanthakumar Thiagarajan2012-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dump htc header along with the warning message when the request to Rx with invalid frame length is detected. kvalo: fix open parenthesis alignment Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: abort normal scan when scheduled scan is startedKalle Valo2012-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the device disconnects from an AP when it is in suspending state. You will get the following message from wpa_supplicant after waking the device up and sending scan request: "Scan trigger failed: ret=-16 (Device or resource busy)" Fix the issue by sending a scan complete event before starting scheduled scan. kvalo: cosmetic changes to commit log Signed-off-by: Isaac.li <shonmou@gmail.com> Tested-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: Add __printf verification to ath6kl_printkJoe Perches2012-03-20
| | | | | | | | | | | | | | | | | | | | | Make sure printf formats and arguments match. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: Add ARP offload related statistic info in tgt_statsRaja Mani2012-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Firmware reports the below ARP offload related information while sending the target statistic event to the host. * Number of ARP packets received. * Number of packets matched with the device IP addr. * Number of ARP response packet sent to the remote. This patch adds the additional debug prints in debugfs entry tgt_stats. It will be useful to know the ARP offload execution status. Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: add debug log for AP MLME operationsAarthi Thiruvengadam2012-03-20
| | | | | | | | | | | | | | | | | | | | | | | | This is useful during debugging to check if disconnect commands were issued by the host. Signed-off-by: Aarthi Thiruvengadam <athiruve@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
| * | ath6kl: handle probe response from P2P device in P2P GO modeAarthi Thiruvengadam2012-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the device is in P2P GO mode and in listen state, the correct behavior is to see two different probe response frames - one from P2P device and the other from GO. wpa_supplicant uses the same mechanism to send the frame in both cases (ath6kl_mgmt_tx). For GO probe response, ath6kl needs to call ath6kl_send_go_probe_resp (this will add only WSC/P2P IEs and the rest of the IEs are filled in by the firmware). That was done based on the nw_type == AP_NETWORK which would work if P2P Device role were in a separate netdev. When P2P Device and GO use the same netdev, ath6kl needs to use the special GO probe response case only if SSID is longer than P2P wildcard SSID. Signed-off-by: Aarthi Thiruvengadam <athiruve@qca.qualcomm.com> Reviewed-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>