ac04506c73d19dc8bdc167f79eef05d6bae5b644 |
|
13-Sep-2014 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath10k: don't use return on void functions Fixes a checkpatch warning: WARNING: void function return statements are not generally useful Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
c6e2e60e858efa8dd92d94f5d442068fb12b9967 |
|
13-Sep-2014 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath10k: fix use of multiple blank lines Fixes checkpatch warnings: CHECK: Please don't use multiple blank lines Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
7aa7a72a23679abf1cea9b3b65a8921244e769a7 |
|
25-Aug-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: improve logging to include dev id This makes it a lot easier to log and debug messages if there's more than 1 ath10k device on a system. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
708b9bde5d8462d7ce47c1c8ddfc84dd2539e39a |
|
21-Jul-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: prevent some tx flushing failures Firmware could request inspection of some submitted tx requests. Since the callback wasn't implemented it was possible to bleed tx msdu_ids which could translate to tx flushing timeouts. There's nothing ath10k can do to help firmware with tx processing now so just report all tx frames as already inspected to prevent firmware from sending up inspection events and force it to report regular tx completion indications with discard status. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
d385623a78145889692074c170ecac7232e547ab |
|
02-Jun-2014 |
Janusz Dziedzic <janusz.dziedzic@tieto.com> |
ath10k: add implementation for configure max amsdu, ampdu Allow to setup maximum subframes for AMSDU and AMPDU aggregation via debugfs htt_max_amsdu_ampdu file. Eg. echo "2 64" > htt_max_amsdu_ampdu will setup maximum amsdu subframes equal 2 and maximum ampdu subframes equal to 64. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
95bf21f97f09b724ed7d5eb9f0b3c5c664f0329e |
|
16-May-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: fix core start sequence It was possible to call hif_stop() 2 times through ath10k_htc_connect_init() timeout failpath which could lead to double free_irq() kernel splat for multiple MSI interrupt case. Re-order init sequence to avoid this problem. The HTC stop shouldn't stop HIF implicitly since it doesn't implicitly start it. Since the re-ordering required some functions to be split/removed/renamed rename a few functions to make more sense while at it. Reported-By: Ben Greear <greearb@candelatech.com> Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
45967089d2685d2327c9710fe796d499d90ae844 |
|
27-Feb-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: reduce htt tx/rx spinlock overhead It is inefficient to grab irqsave spinlocks for skb lists for each queue/dequeue action. Using rx_ring.lock and tx_lock allows to use less heavy bh spinlock functions and moving locking upwards allows to toggle spinlocks less often. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
a16942e63008875a6a057ea2973becd261ed0c4e |
|
27-Feb-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: bypass htc for htt tx path Going through full htc tx path for htt tx is a waste of resources. By skipping it it's possible to easily submit scatter-gather to the pci hif for reduced host cpu load and improved performance. The new approach uses dma pool to store the following metadata for each tx request: * msdu fragment list * htc header * htt tx command The htt tx command contains a msdu prefetch. Instead of copying it original mapped msdu address is used to submit a second scatter-gather item to hif to make a complete htt tx command. The htt tx command itself hands over dma mapped pointers to msdus and completion of the command itself doesn't mean the frame has been sent and can be unmapped/freed. This is why htc tx completion is skipped for htt tx as all tx related resources are freed upon htt tx completion indication event (which also implicitly means htt tx command itself was completed). Since now each htt tx request effectively consists of 2 copy engine items CE_HTT_H2T_MSG_SRC_NENTRIES is updated to allow maximum of TARGET_10X_NUM_MSDU_DESC msdus being queued. This keeps the tx path resource management simple. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
767d34fc67af3939b8ec09804e2b60a1daf94945 |
|
27-Feb-2014 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: remove DMA mapping wrappers There's no real benefit from using them. DMA-API already provides debugging. Some skbuffs are already mapped directly with DMA-API since wrapper arguments were insufficient and extending them would be pointless. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
75fb2f94f2115a616c6066b55c35495482514608 |
|
05-Feb-2014 |
Ben Greear <greearb@candelatech.com> |
ath10k: better tx/rx debugging Make it easier to grep for htt rx errors. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
60f85bea25d5e9915da8b0c87275143b317cec3b |
|
16-Oct-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: fix FW crashes on heavy TX on 10.1.389 AP FW 10.1.389 firmware has some differences in calculation of number of outstanding HTT TX completions. This led to FW crashes of 10.1.389 while main firmware branch was unnaffected. The patch makes sure ath10k doesn't queue up more MSDUs than it should. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
5e00d31a0fb74c36f3b174ff0d4914cf09016e6f |
|
26-Sep-2013 |
Bartosz Markowski <bartosz.markowski@tieto.com> |
ath10k: bring back the WMI path for mgmt frames This is still the only way to submit mgmt frames in case of 10.X firmware. This patch introduces wmi_mgmt_tx queue, because of the fact WMI command can block. This is a problem for ath10k_tx_htt(), since it's called from atomic context. The skb queue and worker are introduced to move the mgmt frame handling out of .tx callback context and not block. Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
1f8bb1518eee321d94477ca7bcbb153c47d43ba4 |
|
18-Sep-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: use msdu headroom to store txfrag Instead of allocating sk_buff for a mere 16-byte tx fragment list buffer use headroom of the original msdu sk_buff. This decreases CPU cache pressure and improves performance. Measured improvement on AP135 is 560mbps -> 590mbps of UDP TX briding traffic. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
2f3773bcaf9fbf3ddb9d4315e3a3ca5e4b376cef |
|
18-Sep-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: cleanup HTT TX functions Use a saner goto scheme for failure handling. Also group operations more sensibly. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
0a89f8a01d0b28ca646f3aae9ffe1a7fc9d5b266 |
|
18-Sep-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: decouple HTT TX completions Until now the all MSDU transfer related structures were freed when all resources were unreferenced. Now HTC transfer is freed independently and HTT transfer is so too. This yields a way more simpler ath10k_skb_cb and should possibly enable parallel pipe processing (which is now serialized in ath10k_pci_process_ce routine). Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
27bb178dae7b8165ffe7028fbd6f616fb7157c6d |
|
18-Sep-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: avoid needless memset on TX path This reduces number of memory accesses and hopefully contributes to better performance in the future. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
aad0b65f5cb83ce0473367838a960f46577da8ac |
|
08-Sep-2013 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath10k: add boot messages to htt.c To unify the boot debug level. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
a3d135e566e269c7cfed51355c422e7e1c0b2b39 |
|
03-Sep-2013 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath10k: add htt_stats_enable debugfs file Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
961d4c38961a0f61e43edbb1fb579f28475a88bd |
|
09-Aug-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: add support for HTT 3.0 New firmware comes with new HTT protocol version. In 3.0 the separate mgmt tx command has been removed. All traffic is to be pushed through data tx (tx_frm) command with a twist - FW seems to not be able (yet?) to access tx fragment table so for manamgement frames frame pointer is passed directly. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
7c199997ded6c90fd45a50f49e9ac63adaacb95e |
|
31-Jul-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: implement tx checksum offloading HW supports L3/L4 tx checksum offloading. This should reduce CPU load and improve performance on slow host machines. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
edb8236df4d0429d973e093062a4806471f5efa2 |
|
05-Jul-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: embed HTT struct inside ath10k This reduces number of allocations and simplifies memory managemnt. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
cd003fad17d9258efdc5dd658666731377cfebd1 |
|
05-Jul-2013 |
Michal Kazior <michal.kazior@tieto.com> |
ath10k: embed HTC struct inside ath10k This reduces number of allocations and simplifies memory managemnt. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5 |
|
12-Jun-2013 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices Here's a new mac80211 driver for Qualcomm Atheros 802.11ac QCA98xx devices. A major difference from ath9k is that there's now a firmware and that's why we had to implement a new driver. The wiki page for the driver is: http://wireless.kernel.org/en/users/Drivers/ath10k The driver has had many authors, they are listed here alphabetically: Bartosz Markowski <bartosz.markowski@tieto.com> Janusz Dziedzic <janusz.dziedzic@tieto.com> Kalle Valo <kvalo@qca.qualcomm.com> Marek Kwaczynski <marek.kwaczynski@tieto.com> Marek Puzyniak <marek.puzyniak@tieto.com> Michal Kazior <michal.kazior@tieto.com> Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|