aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath6kl/init.c
AgeCommit message (Collapse)AuthorFilesLines
2014-08-28Merge branch 'for-linville' of git://github.com/kvalo/athJohn W. Linville1-1/+1
2014-08-25ath6kl: fix %d confusingly prefixed with 0x in format stringsHans Wennborg1-1/+1
Signed-off-by: Hans Wennborg <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-28Merge tag 'master-2014-07-25' of ↵David S. Miller1-18/+72
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next John W. Linville says: ==================== pull request: wireless-next 2014-07-25 Please pull this batch of updates intended for the 3.17 stream! For the mac80211 bits, Johannes says: "We have a lot of TDLS patches, among them a fix that should make hwsim tests happy again. The rest, this time, is mostly small fixes." For the Bluetooth bits, Gustavo says: "Some more patches for 3.17. The most important change here is the move of the 6lowpan code to net/6lowpan. It has been agreed with Davem that this change will go through the bluetooth tree. The rest are mostly clean up and fixes." and, "Here follows some more patches for 3.17. These are mostly fixes to what we've sent to you before for next merge window." For the iwlwifi bits, Emmanuel says: "I have the usual amount of BT Coex stuff. Arik continues to work on TDLS and Ariej contributes a few things for HS2.0. I added a few more things to the firmware debugging infrastructure. Eran fixes a small bug - pretty normal content." And for the Atheros bits, Kalle says: "For ath6kl me and Jessica added support for ar6004 hw3.0, our latest version of ar6004. For ath10k Janusz added a printout so that it's easier to check what ath10k kconfig options are enabled. He also added a debugfs file to configure maximum amsdu and ampdu values. Also we had few fixes as usual." On top of that is the usual large batch of various driver updates -- brcmfmac, mwifiex, the TI drivers, and wil6210 all get some action. Rafał has also been very busy with b43 and related updates. Also, I pulled the wireless tree into this in order to resolve a merge conflict... P.S. The change to fs/compat_ioctl.c reflects a name change in a Bluetooth header file... ==================== Signed-off-by: David S. Miller <[email protected]>
2014-07-20ath6kl: remove unnecessary break after returnFabian Frederick1-1/+0
Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2014-07-14ath6kl: add support for ar6004 hw3.0Jessica Wu1-4/+48
This change enables ath6kl driver to support ar6004 hw3.0. At the same time do some fixes in firmware initialisation which applies to ar6004 hw1.3 as well. Signed-off-by: Jessica Wu <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: add support wmi rate tables with mcs15Jessica Wu1-0/+1
Some of the firmware versions support rate tables up to mcs15, add support for that. Signed-off-by: Jessica Wu <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: don't set hi_refclk_hz if hardware version doesn't need itKalle Valo1-3/+6
Needed for ar6004 hw3.0 support. Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: convert ar6004 hardware flags to firmware feature flagsKalle Valo1-9/+7
The functionality defined through these flags were actually firmware features which can change between firmware versions. To make it possible to support different firmware versions with the same driver, convert the flags to firmware feature flags. For backwards compatibility support for old ar6004 firmware FW API 3 or smaller images we forcefully set the feature bits in the driver. Starting from FW API 5 the firmware image needs to set them. Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: Fix ath6kl_bmi_read_hi32 macroFrederic Danis1-2/+10
tmp may be used uninitialized if ath6kl_bmi_read() returns an error. Signed-off-by: Frederic Danis <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-03-13ath6kl: fix blank lines before and after bracesKalle Valo1-1/+0
Fixes checkpatch warnings: CHECK: Blank lines aren't necessary after an open brace '{' CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Kalle Valo <[email protected]>
2013-08-07ath6kl: Fix race in heart beat pollingVasanthakumar Thiagarajan1-0/+3
Make sure to cancel heart beat timer before freeing wmi to avoid potential NULL pointer dereference. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-06-01ath6kl: Check wmi ready event status before validating abi versionRaja Mani1-7/+7
There is no point to check firmware ABI version when the driver fails to wait for WMI_READY event during the boot time. For such failures, the driver should assume the firmware is not booted and start doing cleanup. Signed-off-by: Raja Mani <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-03-18ath6kl: Fix the byte alignment rule to avoid loss of bytes in a TCP segmentMyoungje Kim1-2/+2
Either first 3 bytes of the first received tcp segment or last one over MTU size file can be loss due to the byte alignment problem. Although ATH6KL_HTC_ALIGN_BYTES was defined for 'extra bytes for htc header alignment' in the patch "Fix buffer alignment for scatter-gather I/O"(1df94a857), there exists the bytes loss issue which means that it will be truncated 3 bytes in the transmitted file contents if a file which has over MTU size is transferred through TCP/IP stack. It doesn't look like TCP/IP stack bug of 3.5 or the latest version of kernel but the byte alignment issue. This patch is to use the roundup() function for the byte alignment rather than the predefined ATH6KL_HTC_ALIGN_BYTES. kvalo: fixed indentation Signed-off-by: Myoungje Kim <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-03-18ath6kl: cold reset target after host warm bootKalle Valo1-1/+12
Julien reported that ar6004 usb device fails to initialise after host has been rebooted and power is still on for the ar6004 device. He found out that doing a cold reset fixes the issue. I wasn't sure what would be the best way to detect if target needs a reset so I settled on checking a timeout from htc_wait_recv_ctrl_message(). Reported-by: Julien Massot <[email protected]> Tested-by: Julien Massot <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-03-18ath6kl: fix usb related error handling and warningsKalle Valo1-4/+6
It was annoying to debug usb warm reboot initialisation problems as many usb related functions just ignored errors and it wasn't obvious from the kernel logs what was failing. Fix all that so that error messages are printed and errors are handled properly. Signed-off-by: Kalle Valo <[email protected]>
2013-03-18ath6kl: cleanup ath6kl_reset_device()Kalle Valo1-3/+9
Move it to init.c, make it static, remove all useless checks and force it to always do cold reset. Signed-off-by: Kalle Valo <[email protected]>
2013-03-18ath6kl: print firmware capabilitiesKalle Valo1-0/+73
Printin the firmware capabilities during the first firmware boot makes it easier to find out what features firmware supports. Obligatory screenshot: [21025.678481] ath6kl: ar6003 hw 2.1.1 sdio fw 3.2.0.144 api 3 [21025.678667] ath6kl: firmware supports: sched-scan,sta-p2pdev-duplex,rsn-cap-override Signed-off-by: Kalle Valo <[email protected]>
2013-03-05ath6kl: Return error from ath6kl_bmi_done()Mohammed Shafi Shajakhan1-4/+2
This addresses a FIXME in the driver. Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-11-27ath6kl: Move and rename ath6kl_cleanup_vif functionMohammed Shafi Shajakhan1-33/+1
Rename ath6kl_cleanup_vif function as 'ath6kl_cfg80211_vif_stop' which is the more appropriate name considering the functionality of the module and vif specific cleanup is actually done by ath6kl_cfg80211_vif_cleanup. Also move it to cfg80211.c. Also make ath6kl_cfg80211_sta_bmiss_enhance as static function. This addresses a FIXME/TODO. Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-11-27ath6kl: Remove erroneous flag clearingMohammed Shafi Shajakhan1-2/+0
WLAN_ENABLED is vif specific, not part of the driver's struct ath6kl. Proper clearing of this flag is already taken care in ath6kl_cleanup_vif. Cc: wei-jen jlin <[email protected]> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Add a hardware flag for SDIO CRC error workaroundMohammed Shafi Shajakhan1-4/+3
Make use of SDIO CRC error workaround hardware flag and avoid target revision checks. Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Fix mapping uplink endpoint for AR6004Mohammed Shafi Shajakhan1-2/+3
AR6004(UB134) firmware supports only LP Endpoint, So map all Access Categories to Low Priority endpoints. This fixes a WPA2 connection issue as the uplink(tx) endpoint is appropriately mapped in sync with the firmware. Tested-by: Ben Gray <[email protected]> Reported-by: Ben Gray <[email protected]> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Fix inactivity timeout for AR6004Mohammed Shafi Shajakhan1-5/+8
Currently AR6004 handles the inactivity timeout resolution in minutes rather than seconds. So parse the inactivity timeout to the firmware in minutes. For now we will cleanup the inactive station entries to the nearest converted minutes (ex: an inactive time of 70 seconds would take atleast 2 - 3 minutes) Tested with surprise removal of client cards/host shutdown. Cc: Manikandan Radhakrishnan <[email protected]> Reported-by: Leela Kella <[email protected]> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Rename ATH6KL_HW_FLAG_64BIT_RATESMohammed Shafi Shajakhan1-4/+4
Rename ATH6KL_HW_FLAG_64BIT_RATES to ATH6KL_HW_64BIT_RATES. This seemed to be necessary to add/use new hardware flags without exceeding 80 lines. We shall be adding new hw flags dropping the FLAG term. Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Fix reconnection issue after recoveryVasanthakumar Thiagarajan1-1/+5
Disallowing any wmi commands while re-initializing the firmware results in connection failures after recovery is done in open/WEP mode. To fix this, clear WMI_READY, to make sure no wmi command is tried while fw is down. Remove ATH6KL_STATE_RECOVERY state check in ath6kl_control_tx() so that any configuration during fw init time will go through using wmi commands. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Add support to detect fw error through heart beatVasanthakumar Thiagarajan1-6/+0
This patch adds support to detect fw error condition by sending periodic message (heart beat challenge) to firmware. Upon reception of the message, fw would send a response event to driver. When there are no reponses from fw for about 5 cmd driver would trigger the recovery logic assuming that fw has gone into an error state. Capable fw will advertise this capability through ATH6KL_FW_CAPABILITY_HEART_BEAT_POLL bit. This feature is disabled by default, can be enabled through a modparam (heart_beat_poll). This modparam also confiures the polling interval in msecs. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Recover from fw crashVasanthakumar Thiagarajan1-0/+19
Re-initialize the target when fw crash is reported. This would make the device functional again after target crash. During the target re-initialization it is made sure that target is not bugged with data/cmd request, ar->state ATH6KL_STATE_RECOVERY is used for this purpose. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Refactor ath6kl_init_hw_start() and ath6kl_init_hw_stop()Vasanthakumar Thiagarajan1-5/+23
So that these functions will be used to re-initialize the fw upon detecting fw error. This refactoring moves ar->state setting out of core stop/start functionality. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: rework scheduled scanThomas Pedersen1-0/+6
This patch reflects changes in the firmware scheduled scan implementation to behave better in cases with multiple concurrent vifs. Major changes: - scheduled scan filters and state are now programmed per-vif. - decouple scheduled scan from host sleep. To maintain graceful failure with old firmwares, a new firmware capability bit is introduced: ATH6KL_FW_CAPABILITY_SCHED_SCAN_V2. ath6kl simply won't advertise scheduled scan to cfg80211 if the SCHED_SCAN_V2 is not supported. Since firmwares from here on out won't support the previous implicit API for scheduled scan (set WoW filters and host sleep), bump the firmware API to protect old drivers. Unfortunately, due to firmware RAM constraints ath6kl still cannot expect a scan complete event at the end of a scheduled scan results cycle, so the sched_scan_timer is retained. Signed-off-by: Thomas Pedersen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-10-24ath6kl: Add support for AR6004 hardware version 1.3Bala Shanmugam1-0/+20
Add support for AR6004 hardware with version 1.3 and has id 0x31c8088a. Signed-off-by: Bala Shanmugam <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-06-14ath6kl: fix fw capability parsingThomas Pedersen1-3/+3
This patch fixes a bug where no capabilites are parsed when the number of firmware capability bits translate into fewer bytes than the host has knowledge of. Instead just process number of capability bytes as reported by the firmware. Signed-off-by: Thomas Pedersen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-06-11ath6kl: use firmware version from FW IENaveen Singh1-0/+8
Need to have different FW versioning for different FW binaries. This is handled by appending different meta data in firmware binaries. kvalo: add an empty line before a debug message, use '0' instead of '0x00', fix indentation Signed-off-by: Naveen Singh <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-05-24ath6kl: Add support for setting tx rateset.Bala Shanmugam1-0/+5
Tx legacy and mcs rateset can configured using iw for 2.4 and 5 bands. Add support for the same in driver. kvalo: add an enum for the hw flags and rename the flag accordingly, rename ath6kl_cfg80211_set_bitrate_mask() to a shorter version to make it easier to indent Signed-off-by: Bala Shanmugam <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-05-24ath6kl: Fix missing gpio pin 9 configurationVasanthakumar Thiagarajan1-0/+6
GPIO pin 9 also needs to be configured along with other gpio pins to avoid sdio crc errors. I've not experienced any issue with missing this particular gpio pin configuration, found dunring code review. This can potentially improve rx performance. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-05-16ath6kl: enable enhanced bmiss detectionThomas Pedersen1-0/+3
Enable enhanced bmiss detection if the firmware supports it. This feature is only enabled on some firmwares since it comes with a power cost. Also add a few missing command ids to keep the enums straight. kvalo: fix a compiler with ath6kl_err(), add few empty lines Signed-off-by: Thomas Pedersen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-04-16ath6kl: merge split format strings into oneKalle Valo1-5/+6
Found by checkpatch: WARNING: quoted string split across lines Signed-off-by: Kalle Valo <[email protected]>
2012-04-12ath6kl: Add AR6004 1.2 support for USB and SDIORay Chen1-0/+18
Add the necessary change for AR6004 1.2 chip support Signed-off-by: Ray Chen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-04-12Merge remote branch 'wireless-next/master' into ath6kl-nextKalle Valo1-0/+2
2012-04-10ath: Add and use pr_fmt, convert printks to pr_<level>Joe Perches1-0/+2
Use a more current logging style. Make sure all output is prefixed appropriately. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-04-09ath6kl: Fix target assert in p2p bringup with multi vifVasanthakumar Thiagarajan1-9/+18
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 [email protected] Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-04-03ath6kl: Use vmalloc instead of kmalloc for fwVivek Natarajan1-1/+3
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 <[email protected]> Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-26ath6kl: add htc opsKalle Valo1-1/+2
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 <[email protected]>. Signed-off-by: Kalle Valo <[email protected]> Signed-off-by: Ray Chen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-26ath6kl: add tx_comp_multi() to struct htc_ep_callbacksKalle Valo1-0/+1
It's also needed by the USB code. Signed-off-by: Kalle Valo <[email protected]>
2012-03-26ath6kl: set ram reserved size only for ar6003Kalle Valo1-10/+12
Ram reserved size is not needed with ar6004. Signed-off-by: Kalle Valo <[email protected]>
2012-03-13ath6kl: fix regression in ath6kl_upload_board_file()Kalle Valo1-1/+2
My patch 24fc32b3 ("ath6kl: add ath6kl_bmi_write_hi32()") caused a regression in ath6kl_upload_board_file() and the board_address variable was not properly initialised in some cases: ath6kl/init.c:1068:6: warning: ‘board_address’ may be used uninitialized in this function Most likely this broke ar6004 support but I can't test that right now. Signed-off-by: Kalle Valo <[email protected]>
2012-03-07ath6kl: fix too long linesKalle Valo1-3/+3
Found by checkpatch: drivers/net/wireless/ath/ath6kl/init.c:78: WARNING: line over 80 characters drivers/net/wireless/ath/ath6kl/init.c:397: WARNING: line over 80 characters drivers/net/wireless/ath/ath6kl/init.c:407: WARNING: line over 80 characters drivers/net/wireless/ath/ath6kl/htc.c:189: WARNING: line over 80 characters drivers/net/wireless/ath/ath6kl/htc.c:704: WARNING: line over 80 characters drivers/net/wireless/ath/ath6kl/htc.c:2452: WARNING: line over 80 characters Signed-off-by: Kalle Valo <[email protected]>
2012-03-07ath6kl: fix error handling ath6kl_target_config_wlan_params()Kalle Valo1-28/+38
The error handling in ath6kl_target_config_wlan_params() was just weird, fix that. This also fixes some of the open parenthesis alignment issues reported by checkpatch. Signed-off-by: Kalle Valo <[email protected]>
2012-03-07ath6kl: add ath6kl_bmi_read_hi32()Kalle Valo1-16/+4
There are few 32 bit reads from the host interest area. Add ath6kl_bmi_read_hi32() to make it easier to do that. As code is cleaner this also fixes few checkpatch warnings. Signed-off-by: Kalle Valo <[email protected]>
2012-03-07ath6kl: add ath6kl_bmi_write_hi32()Kalle Valo1-76/+23
We have a lot of 32 bit writes to the host interest area and the code doing that is ugly. Clean that up by adding ath6kl_bmi_write_hi32(). This also fixes few checkpatch warnings. Signed-off-by: Kalle Valo <[email protected]>
2012-03-07ath6kl: alignment should match open parenthesisKalle Valo1-10/+10
Fix the issues which checkpatch found and were easy to fix. Especially callers of ath6kl_bmi_write() are tricky and that needs to be fixed separately. Signed-off-by: Kalle Valo <[email protected]>