summaryrefslogtreecommitdiff
path: root/drivers/net (follow)
Commit message (Collapse)AuthorAge
...
| * | | | | | | | | ath10k: platform driver for WCN3990 SNOC WLAN moduleGovind Singh2017-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add snoc layer driver registration and associated ops. CRs-Fixed: 1112488 Change-Id: I6106c617514609bd3fe41d9bbfbd34bf0588ef36 Signed-off-by: Govind Singh <govinds@codeaurora.org> Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
* | | | | | | | | | Merge "ath10k: Add copy engine descriptor for WCN3990 target"Linux Build Service Account2017-01-30
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | ath10k: Add copy engine descriptor for WCN3990 targetGovind Singh2017-01-24
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The WCN3990 target uses 37bit addressing mode, define separate structure for the copy engine descriptor to support this 37bit addressing mode. The WCN3990 target supports copy engine classification and toeplitz hash calculation for NAPI. CRs-Fixed: 1115328 Change-Id: I3a6d3e71e788acfab44f4c9d0f159ced351e6456 Signed-off-by: Govind Singh <govinds@codeaurora.org> Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
* | | | | | | | | | Merge "ath10k: Modify htt rx descriptor for WCN3990 target"Linux Build Service Account2017-01-30
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | ath10k: Modify htt rx descriptor for WCN3990 targetGovind Singh2017-01-25
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WCN3990 target uses more fields in htt rx descriptor, hence modify htt rx descriptor for WCN3990 target. CRs-Fixed: 1114748 Change-Id: Iaf3f7bde2a1cfd9e6862c308e5c65447d4293323 Signed-off-by: Govind Singh <govinds@codeaurora.org>
* | | | | | | | | | Merge "Revert "mac80211: Add support for beacon report radio measurement""Linux Build Service Account2017-01-30
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | Revert "mac80211: Add support for beacon report radio measurement"Rajeev Kumar Sirasanagandla2017-01-25
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8e5ea69a4159 ("mac80211: Add support for beacon report radio measurement") which is incomplete cherry-pick of commit 7947d3e075cd ("mac80211: Add support for beacon report radio measurement") from git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git and due to which compilation of ath10k module is broken. Incomplete cherry-pick means not all files of corresponding commit from opensource repo are pulled. CRs-Fixed: 1115991 Change-Id: Iec6aeea39e1a581c91641329fcfa85e608d60bfa Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
* | | | | | | | | | Merge "ath10k: Add wmi service ready event for HL1.0 fw"Linux Build Service Account2017-01-30
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | ath10k: Add wmi service ready event for HL1.0 fwSarada Prasanna Garnayak2017-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wmi service ready bitmap has changed in HL1.0 fw. Add wmi service ready event to support svc bitmap. CRs-Fixed: 1115986 Change-Id: Ie83878d186ebb2e4e919f75f6c87887384f79796 Signed-off-by: Govind Singh <govinds@codeaurora.org> Signed-off-by: Rakesh Pillai <pillair@codeaurora.org> Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
* | | | | | | | | | | Merge "ath10k: Refactor wmi init cmd for WCN3990"Linux Build Service Account2017-01-30
|\| | | | | | | | | |
| * | | | | | | | | | ath10k: Refactor wmi init cmd for WCN3990Rakesh Pillai2017-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WMI init cmd parameters num_wds_entries, num_perrs and skid_limit have different values for WCN3990. Refactor the wmi init cmd for WCN3990 with appropriate values. CRs-Fixed: 1115155 Change-Id: I6fadc8bd8e655eed589de658a036b4062c6da310 Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
| * | | | | | | | | | ath10k: Add support for wmi ops and services for WCN3990Rakesh Pillai2017-01-25
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WCN3990 uses different wmi ops and services. Add support for these wmi ops and services for WCN3990 in ath10k CRs-Fixed: 1115136 Change-Id: Id3f5f21dc4eb16e2175e570cc5c019a22b8ffb37 Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
* | | | | | | | | | Merge "ath10k: update the Rx ring fill level for wcn3990 target"Linux Build Service Account2017-01-30
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | |
| * | | | | | | | | ath10k: update the Rx ring fill level for wcn3990 targetSarada Prasanna Garnayak2017-01-25
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The WLAN firmware writes Rx packet in the Rx ring buffer through copy engine. The Rx ring fill level depends on the number of mac in WLAN chipset and wcn3990 WLAN chipset has a dual mac. Update the Rx ring buffer fill level method to add support for wcn3990 WLAN module. CRs-Fixed: 1115978 Change-Id: Ife7a951171e25602b74f6b389f464c38cf9af1c8 Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
* | | | | | | | | Merge "Revert "cfg80211: remove enum ieee80211_band""Linux Build Service Account2017-01-28
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | Revert "cfg80211: remove enum ieee80211_band"Rajeev Kumar Sirasanagandla2017-01-25
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ee6143827c1f ("cfg80211: remove enum ieee80211_band") which is incomplete cherry-pick of commit 57fbcce37be7 ("cfg80211: remove enum ieee80211_band") from git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git and due to which compilation of ath10k module is broken. Incomplete cherry-pick means not all files of corresponding commit from opensource repo are pulled. Conflicts were resolved in drivers/net/wireless/ath/ath10k/htt_rx.c CRs-Fixed: 1113043 Change-Id: Ie2f95b1524777e8eaf1436ba3e4ab3f9e6b2822e Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
* | | | | | | | | Merge "ath10k: Add copy engine register MAP for wcn3990 wlan module"Linux Build Service Account2017-01-28
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | ath10k: Add copy engine register MAP for wcn3990 wlan moduleGovind Singh2017-01-24
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The copy engine is a host to target communication interface between wlan firmware and wlan wcn3990 platform driver. Add copy engine register map for wcn3990 snoc wlan module. This add support for the copy engine source/destination ring configuration for wcn3990 chipset. CRs-Fixed: 1114412 Change-Id: If1a87fd9fffc62605ebc6d3fd8ed22980c5518e9 Signed-off-by: Govind Singh <govinds@codeaurora.org> Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
* | | | | | | | | Merge "wil6210: bus_request platform operation refinement"Linux Build Service Account2017-01-28
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
| * | | | | | | | wil6210: bus_request platform operation refinementLior David2017-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver uses the bus_request platform operation to request resources from the platform for a specific bandwidth. Currently the driver requests resources for the maximum theoretical bandwidth, when interface is brought up. Refine this process a bit: now the driver will request a small amount of resources when interface is up, and will only issue the maximum request when connected. This mechanism will be improved further in the future to make more refined requests based on actual bandwidth. Change-Id: Iada383f8183338190bfb082c1128d2ea38053ebc CRs-Fixed: 1114406 Signed-off-by: Lior David <liord@codeaurora.org>
* | | | | | | | | Merge "mac80211: pass block ack session timeout to to driver"Linux Build Service Account2017-01-23
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | mac80211: pass block ack session timeout to to driverSara Sharon2017-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently mac80211 does not inform the driver of the session block ack timeout when starting a rx aggregation session. Drivers that manage the reorder buffer need to know this parameter. Seeing that there are now too many arguments for the drv_ampdu_action() function, wrap them inside a structure. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git Git-commit: 50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1 [rsirasan@codeaurora.org: resolved conflicts in include/net/mac80211.h and net/mac80211/agg-rx.c and not pulled changes for drivers/net/wireless/intel/ and drivers/net/wireless/st/ since path is not maintained] CRs-Fixed: 1112956 Change-Id: I15d86f60cd3bd33e392b313f7a4ee2fca91207d4 Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
| * | | | | | | | | Revert "mac80211: pass block ack session timeout to to driver"Rajeev Kumar Sirasanagandla2017-01-22
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 71384687ff94 ("mac80211: pass block ack session timeout to to driver") which is incomplete cherry-pick. CRs-Fixed: 1112956 Change-Id: I63fdf95d25ca5bdfa87c54cea8e9a68eae715e44 Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
* | | | | | | | | Merge "ath10k: add WCN3990 target type and hw version"Linux Build Service Account2017-01-22
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | ath10k: add WCN3990 target type and hw versionGovind Singh2017-01-21
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new target type and hw version for WCN3990. Change-Id: Iba891c8a25321d986d24120db8e0988f7df56dc5 Signed-off-by: Govind Singh <govinds@codeaurora.org>
* / / / / / / / / ath10k: Make CE layer bus agnosticGovind Singh2017-01-21
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove bus specific dependencies from CE layer to have common CE layer across multiple targets. Change-Id: Ieb6a80b359eed820653215bbf98148ce15634e87 Signed-off-by: Govind Singh <govinds@codeaurora.org>
* | | | | | | | Merge "wil6210: set dma mask to reflect device capability"Linux Build Service Account2017-01-17
|\ \ \ \ \ \ \ \
| * | | | | | | | wil6210: set dma mask to reflect device capabilityHamad Kadmany2017-01-17
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 11ad device supports 48 bit addresses, reflect that by setting the dma mask accordingly to be able to map skbs using 48 bits. HW has limitation that all vrings should share the same msb bits out of the 48 bits address. To overcome that, for vrings mapping use 32 bit addresses only. Change-Id: I7f710129ba61356f7f29ec69c885f60a31246151 CRs-Fixed: 1109659 Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
* | | | | | | | ath10k: cache calibration data when the core is stoppedMarty Faltesek2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 0b8e3c4ca29f ("ath10k: move cal data len to hw_params") broke retrieving the calibration data from cal_data debugfs file. The length of file was always zero. The reason is: static ssize_t ath10k_debug_cal_data_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { struct ath10k *ar = file->private_data; void *buf = file->private_data; This is obviously bogus, private_data cannot contain both struct ath10k and the buffer. Fix it by caching calibration data to ar->debug.cal_data. This also allows it to be accessed when the device is not active (interface is down). The cal_data buffer is fixed size because during the first firmware probe we don't yet know what will be the lenght of the calibration data. It was simplest just to use a fixed length. There's a WARN_ON() in ath10k_debug_cal_data_fetch() if the buffer is too small. Tested with qca988x and firmware 10.2.4.70.56. Reported-by: Nikolay Martynov <mar.kolya@gmail.com> Fixes: 0b8e3c4ca29f ("ath10k: move cal data len to hw_params") Cc: stable@vger.kernel.org # 4.7+ Signed-off-by: Marty Faltesek <mfaltesek@google.com> [kvalo@qca.qualcomm.com: improve commit log and minor other changes] Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: Ignore SWBA event for a vif if its marked for no beaconMohammed Shafi Shajakhan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignore processing further in SWBA event scheduled for a vif, if mac80211 has marked the particular vif for stop beaconing and brought the vdev down in 'ath10k_control_beaconing'. This should potentially avoid ath10k warning/error messages while running continuous wifi down/up with max number of vaps configured. Found this change during code walk through and going through other beacon configuration related functions in ath10k Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix error return code in ahbWei Yongjun2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in function ath10k_ahb_probe() or ath10k_ahb_resource_init(). Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: support up to 64 vdevsBen Greear2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The (1 << x) - 1 trick won't work when you are trying to fill up all 64 bits, so add special case for that. Signed-off-by: Ben Greear <greearb@candelatech.com> [kvalo@qca.qualcomm.com: remove the sentence about moving limits] Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: document cycle count related countersBen Greear2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They are not necessarily named in an intuitive manner, so at least add some comments to help the next person. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix typo in logging messageBen Greear2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix rfc1042 header retrieval in QCA4019 with eth decap modeVasanthakumar Thiagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chipset from QCA99X0 onwards (QCA99X0, QCA9984, QCA4019 & future) rx_hdr_status is not padded to align in 4-byte boundary. Define a new hw_params field to handle different alignment behaviour between different hw. This patch fixes improper retrieval of rfc1042 header with QCA4019. This patch along with "ath10k: Properly remove padding from the start of rx payload" will fix traffic failure in ethernet decap mode for QCA4019. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: do not check if reset is NULLMasahiro Yamada2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since reset_control_get() never returns NULL, we can use IS_ERR() instead of IS_ERR_OR_NULL(). The return statements can be simpler as well. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: use devm_reset_control_get() instead of reset_control_get()Masahiro Yamada2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the managed variant of reset_control_get() to simplify the failure path and the .remove callback. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: use devm_clk_get() instead of clk_get()Masahiro Yamada2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the managed variant of clk_get() to simplify the failure path and the .remove callback. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: spelling and miscellaneous neateningJoe Perches2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct some trivial comment typos. Remove unnecessary parentheses in a long line. Signed-off-by: Joe Perches <joe@perches.com> [kvalo@qca.qualcomm.com: drop the change for return] Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: remove 4-addr padding related hw_param configurationVasanthakumar Thiagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hw_4addr_pad was added to handle different types of padding in 4-address rx frame. But this padding is not very specific to 4-address, it can happen even with three address + ethernet decap mode. Since the padding information can be obtained through Rx desc for QCA99X0 and newer chips, this hw_param is not needed any more. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: properly remove padding from the start of rx payloadVasanthakumar Thiagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QCA99X0 (QCA99X0, QCA9984, QCA9888 and QCA4019) family chips, hw adds padding at the begining of the rx payload to make L3 header 4-byte aligned. In the chips doing this type of padding, the number of bytes padded will be indicated through msdu_end:info1. Define a hw_rx_desc_ops wrapper to retrieve the number of padded bytes and use this while doing undecap. This should fix padding related issues with ethernt decap format with QCA99X0, QCA9984, QCA9888 and QCA4019 hw. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> [Rename operations to hw_ops for other purposes] Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: add provision for Rx descriptor abstractionVasanthakumar Thiagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are slight differences in Rx hw descriptor information among different chips. So far driver does not use those new information for any functionalities, but there is one important information which is available from QCA99X0 onwards to indicate the number of bytes that hw padded at the begining of the rx payload and this information is needed to undecap the rx packet. Add an abstraction for Rx desc to make use of the new desc information available. The callback that this patch defines to retrieve the padding bytes will be used in follow-up patch. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> [Rename operations to hw_ops for other purposes] Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: move ath10k_hw_params definition to hw.hVasanthakumar Thiagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is to prepare for rx descriptor abstraction where we'll be dereferencing ath10k_hw_params member in hw.h. Moreover hw.h looks more suitable to house ath10k_hw_params definition than core.h Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: improve logging messageBen Greear2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Helps to know the sta pointer. Signed-off-by: Ben Greear <greearb@candelatech.com> [kvalo@qca.qualcomm.com: add %pK and remove the colon] Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: enable peer stats by defaultThomas Pedersen2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IFTYPE_MESH_POINT need to rely on these for accurate path selection metrics. Other modes will probably also find them useful. Enabling peer stats has the side effect of reducing max number of STAs from 128 to 118. There should be negligible performance impact. If users really need 128 STAs and don't mind losing out on peer stats, they can still disable them: echo 0 > debugfs/ieee80211/phyn/ath10k/peer_stats Signed-off-by: Thomas Pedersen <twp@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: remove unused variable ar_pciChaehyun Lim2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trival fix to remove unused variable ar_pci in ath10k_pci_tx_pipe_cleanup when building with W=1: drivers/net/wireless/ath/ath10k/pci.c:1696:21: warning: variable 'ar_pci' set but not used [-Wunused-but-set-variable] Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix memory leak on caldata on error exit pathColin Ian King2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | caldata is not being free'd on the error exit path, causing a memory leak and data definitely should not be freed. Free caldata instead of data. Thanks to Kalle Valo for spotting that data should not be free'd. Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix reporting channel survey dataAshok Raj Nagarajan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When user requests for survey dump data, driver is providing wrong survey information. This information we sent is the survey data that we have collected during previous user request. This issue occurs because we request survey dump for wrong channel. With this change, we correctly display the correct and current survey information to userspace. Fixes: fa7937e3d5c2 ("ath10k: update bss channel survey information") Signed-off-by: Ashok Raj Nagarajan <arnagara@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: remove unnecessary error code assignmentMohammed Shafi Shajakhan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error assigned does not seems to be used anywhere, fixes nothing just a small cleanup Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* | | | | | | | ath10k: fix throughput regression in multi client modeRajkumar Manoharan2017-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 7a0adc83f34d ("ath10k: improve tx scheduling") is causing severe throughput drop in multi client mode. This issue is originally reported in veriwave setup with 50 clients with TCP downlink traffic. While increasing number of clients, the average throughput drops gradually. With 50 clients, the combined peak throughput is decreased to 98 Mbps whereas reverting given commit restored it to 550 Mbps. Processing txqs for every tx completion is causing overhead. Ideally for management frame tx completion, pending txqs processing can be avoided. The change partly reverts the commit "ath10k: improve tx scheduling". Processing pending txqs after all skbs tx completion will yeild enough room to burst tx frames. Fixes: 7a0adc83f34d ("ath10k: improve tx scheduling") Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>