Commit Graph

562 Commits

Author SHA1 Message Date
Keyur Parekh
04e5a8614b qcacmn: Corrected SGI enum values for HE
For HE case, SGI enum values are different in FW and Host
So that firmware stats and host stats shows different values
To resolve this, change SGI enum value in host to match
firmware definitions.

Change-Id: I1b38dbe32a6c1ab2610c1c3a736a6898ddc73e30
2018-09-17 21:29:22 -07:00
Keyur Parekh
76eadf4265 qcacmn: Populate mcs value for legacy traffic
Populate mcs value for legacy traffic, to display
packet count in correct category in statistics

Change-Id: Ic5ddbc48d3378a884d5c7a189e53ddb7195c21d2
2018-09-17 17:53:47 -07:00
Keyur Parekh
ba75857390 qcacmn: Populate proper Rx reception type
Rx reception type for packet was populated from
wrong TLV. Populate reception type based on
HT,VHT or HE TLV tags

Change-Id: I3240a9f029b0bfeee8833761531e086bc5df6f91
2018-09-16 22:35:23 -07:00
Chaithanya Garrepalli
710e2959f2 qcacmn: Add HAL APIs to set search type and index
HAL APIs added to set search type and search index
in tx descriptor

Change-Id: I9fc2eae5d1f75a7cb72ba141f45a60f248b52f9c
CRs-fixed: 2312178
2018-09-16 09:49:13 -07:00
Chaithanya Garrepalli
2467ed1445 qcacmn: avoid wds source port learning for STA in HKV2
Changes to avoid WDS source port learning in STA mode
if ast override feature is supported by HW

Change-Id: I248c8815429e7417dcf3f451912ee5f037af9c25
2018-09-15 21:21:23 -07:00
chenguo
f51e922a78 qcacmn: add radiotap flags for HE_TRIG frames
HE format in radiotap header are not being updated for HE_TRIG
frames. Add support for it. This is to support MU-OFDMA frames of
UL.

CRs-Fixed: 2223635
Change-Id: If0a93f6047185bcc51948b613d48d13ecb5e16cd
2018-09-11 16:42:19 -07:00
sumedh baikady
59a2d33a2d qcacmn: Use monitor direct for smart monitor
Set monitor direct filter when smart monitor is
enabled. Deliver header from NAC if md bit is set
and smart mesh feature is used.

Change-Id: If1ef865e013c21bbb58bcb89a87856b12d6c7278
Crs-fixed: 2246660
2018-09-08 12:29:31 -07:00
Nandha Kishore Easwaran
e6a27f7cf7 qcacmn: Add apis to set and get ba ageing timeout
Add hal apis to set and get ba ageing timeouts.

Change-Id: I6899f70597de1096d2b318cae1d20e7e1ccab9da
CRs-fixed: 2193128
2018-09-04 11:53:43 -07:00
Balamurugan Mahalingam
5d80641550 qcacmn: [1/2] Support both qca8074v1 and qca8074v2 from hal
Some of the macro names defined in qca8074v1, are defined with
a slightly different name in qca8074v2, and few macros have the
same name in both headers but are defined with different values.
Fixed the same.

Change-Id: I5e948baf5326d1d8fdfa2bd7ee8aa072c710d17c
2018-09-04 11:53:36 -07:00
sumedh baikady
1f8f319500 qcacmn: Add support for cfgtool ba aging timeout cmd
Adds dp handlers for cfgtool80211 cmd to get/set
block ack aging timeout.

Change-Id: I74bb6e9e25c01f1e712066cb1e41e9adb6619662
CRs-fixed: 2193128
2018-08-28 14:46:35 -07:00
Karunakar Dasineni
6a5267501f qcacmn: Fix 'need_status' during rxtid deletion
Set 'need_status' while sending REO queue update command
for deleting REO queues to get status from HW, which will
trigger callback to cleanup and free the queues.
Also fix issue in initializing REO command descriptor, causing
command number to be cleared.

Change-Id: Ie30fc80f76d835e239dd0b3d3e78c7f32bfa09a4
2018-08-27 22:07:33 -07:00
chenguo
4fd11a7234 qcacmn: Add NDP frame supporting for monitor mode of Lithium
NDP is a preamble only PPDU, which do not have payload information
from RXDMA destination ring. The detailed TLV sequence is:
 * RSSI legcy
 * LSIG_A
 * HE_SIGA_SU
 * RSSI_HT
 * GENERATED_CBF_DETAILS
 * PKT_END

CRs-Fixed: 2296348
Change-Id: I19f253c65969b59947bd9a21cf3912b16eb21324
2018-08-27 03:09:54 -07:00
Kai Chen
339b01d8ae qcacmn: Check the MPDU start tag before read ppdu id
Check the MPDU start tag before read ppdu id in MPDU
start TLV in the head of packet TLV.

Change-Id: I0b9a367e148d55a6c667adc8ad16e7c0fdf0a741
2018-08-21 14:16:42 -07:00
Kai Chen
0e79b6e5bd qcacmn: Fix ppdu id wrap around issue
When a ppdu id on a ppdu in status ring find a matching ppdu id
in destination ring. The old logic can cause ppdu id is destination
ring stuck on high value before wrap around. The new logic check
ppdu id between status ring and destination ring is no more than
20000.

Change-Id: Ia601403b0a4fc6cdfff980c7745e055c814137b7
2018-08-21 14:16:37 -07:00
sumedh baikady
df4a57cd31 qcacmn: Handle 2k exception and rate limit delba
Upon receiving 2k jump exception, send delba
and track delba tx status and retries.

Change-Id: Ida35256233869dfa390c40030c9296b9c48481ce
Crs-fixed: 2239856
2018-08-20 01:36:58 -07:00
Venkateswara Swamy Bandaru
29757ad9ee qcacmn: Add DP support for qca8074v2
Add datapath support for qca8074v2.

Change-Id: I8d1a84f011b8fccedd85ca445a0e69a1a4071f72
CRs-Fixed: 2292314
2018-08-13 19:57:52 -07:00
Adil Saeed Musthafa
61a21697f6 qcacmn: Add new radiotap header fields
Add the following fields in Radiotap header:
Antenna noise (in dBM)
Vendor Namespace containing the following information
->L_SIG_A
->Device_ID
->L_SIG_B
->PPDU_START_TIMESTAMP

CRs-Fixed: 2285143
Change-Id: I977be73778ab27383f12214c73b56c9b80d9f02d
2018-08-10 20:45:27 -07:00
Aditya Sathish
ded018e406 qcacmn: Clean up dp component prints
Clean up datapath component prints by correcting trace levels for
regularly occurring prints and removing newlines from converged
print APIs since qdf_trace_msh appends them by default.

Change-Id: Ie8fe319fcb737720f7400a165e134b6a18bd15b5
CRs-Fixed: 2243843
2018-08-10 18:11:21 -07:00
Karunakar Dasineni
b277479e83 qcacmn: Retain defaults in REO_GENERAL_ENABLE
Use read-modify-write to retain default values in
REO_GENERAL_ENABLE register.

Change-Id: I94eb05328117adf02acc2cb14b50b02a008cd322
CRs-Fixed: 2254739
2018-08-09 16:24:52 -07:00
chenguo
1b88046171 qcacmn: Add preamble only PPDU support in monitor mode
There are some particular PPDUs which have preamble only:
     * NDP frames
     * TB_PPDU frames
Add support to the above frames.

Change-Id: I7022433d3765575eaf28d7baf3a11e8b6ce13890
CRs-Fixed: 2275161
2018-08-09 14:34:17 -07:00
Venkata Sharath Chandra Manchala
79860aa182 qcacmn: Enable QCA6390
1. Allocate and Initialize host and target copy engine configuration
   for QCA6390 based products.
2. Setup Copy engine service map for QCA6390.
3. Add conditional compilation flag QCA_WIFI_QCA6390 to support
   QCA6390 based products.

Change-Id: Ia4dd4d436b8ecae0e9f91faa0c1fe7dbd14f001f
CRs-Fixed: 2259312
2018-08-08 12:53:51 -07:00
Gyanranjan Hazarika
7f9c050df4 qcacmn: ba_window size in WMI for rx_reorder_queue_setup
ba_window_size_valid and ba_window size support is missing
while sending wmi_peer_reorder_queue_setup. This is needed
for handing 256 BA which is not FW default.

Change-Id: I3218921c48c0f82225b7992076e73ac0acf7bd11
CRs-fixed: 2285423
2018-08-07 02:19:31 -07:00
Chaithanya Garrepalli
95fc62f8fc qcacmn: populate RSSI for the neighbor clients
Populate the RSSI value for the non associated clients
added in pdev->neighbour_peers_list from monitor status
ring

Change-Id: I509d06bec6eafe8377681c8a3da9a64f301c3c73
CRs-fixed: 2286571
2018-08-06 13:44:01 -07:00
Balamurugan Mahalingam
21b0086b02 qcacmn: define hal tx and rx routines for qca6290 non 11ax
define the hal rx and tx functions
for non 11ax headers as it causes compilation failure

Change-Id: I0fda769fddcf8b54faa22ce55438e84c427a7a2e
2018-07-21 00:03:41 -07:00
Balamurugan Mahalingam
ca15415988 qcacmn: make hal target specific functions as static
This is needed to fix a compilation warning
reported as error due to Werror gcc option

Change-Id: I1ffab78b01266d5d0dabd843a03d44fc6b56b477
2018-07-21 00:03:38 -07:00
Balamurugan Mahalingam
96d2d41c87 qcacmn: Fix compilation issues and a minor issue
Removed qdf exports on functions defined in target specific
header files and defined those functions as static. Revert
changes on hal_rx_msdu_end_sa_idx_get and make
hal_rx_msdu_end_da_idx_get target specific

Change-Id: I2858b1d77118f0a26b54bf983bd342c7a4fe757d
2018-07-21 00:03:36 -07:00
Balamurugan Mahalingam
fe9c9c038c qcacmn: implement qca6390 specific hal functions
implement qca6390 target specific hal_rx_msdu_end_sa_idx_get,
hal_rx_dump_msdu_end_tlv as these routines differs a bit from
rest of the lithium chipsets. this target specific function
will be called through callbacks

Change-Id: I4b71da2d39217c2920597fb36c936218359e6c3a
2018-07-21 00:03:34 -07:00
Balamurugan Mahalingam
97ad1061a3 qcacmn: introduce few target specific hal functions
make hal_rx_msdu_end_sa_idx_get and hal_rx_dump_msdu_end_tlv
routines target specific as qca6390 implementation differs
a bit. add target specific functions for qca6290 and qca8074

Change-Id: Ie05b91d965bae3642e3264620c6d8427ad368044
2018-07-21 00:03:32 -07:00
Balamurugan Mahalingam
6cf4c27417 qcacmn: add HAL support for qca6390
hal_hw_srng table and register offsets array, some target specific
functions  are defined separately for each new target.
define the same for qca6290.

Change-Id: I08c1243bc50460fac776e28186acfa192fb1ff66
2018-07-21 00:03:30 -07:00
Balamurugan Mahalingam
f72cb1f1ff qcacmn: include hal_hw_headers.h header file
macros and fw cmn headers included in hal_internal.h is moved
to a new hal_hw_headers.h to avoid these getting included in hif
layer. Include the new hal_hw_headers.h file

Change-Id: I3390ae9e71ca561d94a265e1fdf4d9354e7b2474
2018-07-21 00:03:27 -07:00
Balamurugan Mahalingam
d0159640ea qcacmn: Separate hal for qca6290 and qca8074
Create separate individual hal_srng_table and hal register
offset in target specific source files. Create separate
functions for qca6290 and qca8074 for few hal rx tx
functions as the macro value differs between the chipsets.

Assign target specific hal tx, rx ops as part of hal_attach
and call respective hal tx, rx ops through callbacks.

Change-Id: Ibbf490c678c39fdd9d54191aad7aaec786db30ec
2018-07-21 00:03:20 -07:00
Krunal Soni
37bf7f4d22 qcacmn: Update radiotap header with LTF symbol value
As per the updated spec, 11AX PPDU's HE SIG_A data-5 field has added
LTF symbol field which is 3bits in size.

Add logic to parse the TLV coming from hardware and update the
LTF symbol value.

Change-Id: I05e2ff8ece7e14dc22ce747e9a9b906bf130462f
CRs-Fixed: 2235233
2018-07-17 00:58:29 -07:00
Venkata Sharath Chandra Manchala
9a59bd6483 qcacmn: Add a new parameter to the srng table
Add max_size parameter in the hw_srng_table
to hold the maximum size for a given ring.

Change-Id: Ibfce021505ab9a55d3208b1c5aba26021d1fe230
CRs-Fixed: 2262818
2018-07-11 14:29:27 -07:00
nobelj
a0c640b5fb qcacmn: Fix rx nss stats for fixed rate nss 1
rx nss calculated based on stbc.

Change-Id: I355f28bc8dcf1460247d51753c9309f4d2e8010b
2018-07-08 19:42:44 -07:00
Venkata Sharath Chandra Manchala
9347b8dbd0 qcacmn: Select window mask based on target
For QCA6390 PCI address space is reduced to 1MB.
Change bitmask to map it to appropriate range.

Change-Id: I70385df91855b7e7ddbedf7f0c6bf6e364b7d78c
CRs-Fixed: 2259194
2018-06-27 03:44:55 -07:00
Nandha Kishore Easwaran
372f566a59 qcacmn: Remove rx_header.h file inclusion
Remove inclusion of rx_header.h file

Change-Id: Ie585334fcfed369f2ff81b4d1d1bc16466c46c3e
CRs-fixed: 2256497
2018-06-08 20:14:15 -07:00
Mohit Khanna
4b3b7e7110 qcacmn: debug prints for monitor mode TLVs
Add prints to track:
* Incoming TLVs in the monitor mode status ring.
* HE, HE-MU and HE-MU-Other values being passed to the
  stack.

Change-Id: Ib23336353dc4a2253a62444b767d2a706ce372ea
CRs-Fixed: 2242514
2018-05-22 13:00:04 -07:00
Mohit Khanna
6c22db3b45 qcacmn: process PHYRX_OTHER_RECEIVE_INFO_OTHER TLV
Process WIFIPHYRX_OTHER_RECEIVE_INFO_E and
WIFIPHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_E TLVs in monitor mode.

Change-Id: I9cea6cee0499fd9ae9e07d4479c7010e35f3e5a5
CRs-Fixed: 2242514
2018-05-22 13:00:02 -07:00
Jeff Johnson
f7aed493b1 qcacmn: hal: Fix misspellings
Address the following issues in the hal folder:
CHECK: 'completly' may be misspelled - perhaps 'completely'?
CHECK: 'Initalize' may be misspelled - perhaps 'Initialize'?
CHECK: 'refered' may be misspelled - perhaps 'referred'?
CHECK: 'Retreive' may be misspelled - perhaps 'Retrieve'?
CHECK: 'settting' may be misspelled - perhaps 'setting'?

Change-Id: I98368830eeef7942c20380dbe6c638319a9860d9
CRs-Fixed: 2241575
2018-05-19 19:40:27 -07:00
Jeff Johnson
dc9c55962d qcacmn: Fix typo "lenght"
Replace typo "lenght" with correct spelling "length".

Change-Id: Ieea0c547c61248e510835d16a9fa55ace486df23
CRs-Fixed: 2238309
2018-05-17 00:47:02 -07:00
Jeff Johnson
9f2d54f039 qcacmn: Fix typo "accross"
Replace typo "accross" with correct spelling "across"

Change-Id: Ifec1b81cbc6c808784d86afe055468ff42674a57
CRs-Fixed: 2238309
2018-05-17 00:46:41 -07:00
Kai Chen
783e038223 qcacmn: Add monitor mode ppdu and mpdu stats
Add monitor mode status ring ppdu stats and destination
ring ppdu/mpdu stats

Change-Id: I702172f40ffc0915b630dd3781a697199bdd20fd
2018-05-14 21:54:53 -07:00
Pramod Simha
848fc04585 qcacmn: Fix DSCP-TID mapping configuration recipe
Enable/Disable the DSCP TID map program bit before
writing the mapping configuration into HW registers.
This is a new recipe for NPR AX & HK 2.0

Change-Id: I0af968dab507b32167909dbfa8ecc7a946e4af84
CRs-Fixed: 2221226
2018-05-04 20:43:07 -07:00
nobelj
d803959826 qcacmn: Populate BeamFormed info from VHT_SIG_A and HE_SIG_A
Populate Beamformed information from VHT_SIG_A and HE_SIG_A

Change-Id: Iba108f6f9905ed02490936c5ca2f00e0e94b318f
CRs-Fixed: 2185151
2018-05-02 03:19:25 -07:00
Tallapragada Kalyan
70539512de qcacmn: chain nbufs using phy_ppdu_id for peer invalid case
nbufs received on wbm_release ring were chained based on
first_msdu and last_msdu bits if the peer is invalid for these
frames, but these fields in the rx tlv header were in-correct as
hardware does not decap these msdu's.
Based on inputs from firmware we now changed this logic to
using phy_ppdu_id field from the rx_mpdu_start tlv & rx_attention tlv.

Change-Id: Ifc7faa2d1b0585bcc226e5cb2045fcb29d152273
2018-05-01 21:37:40 -07:00
Mohit Khanna
1fe9fd414a qcacmn: add HE radiotap flags for MU cases
HE field in radiotap header are not being updated for MU frames.
Add support for MU-MIMO and MU-OFDMA frames.

Change-Id: If33e9f9039c8df6e1bb8f591879d4defed184ac8
CRs-Fixed: 2191215
2018-04-20 12:09:02 -07:00
Rhythm Patwa
f6862a6527 qcacmn: Add HE MU and HE MU Other support
Populate HE-MU and HE-MU-Other fields in the radiotap header.

Change-Id: Iab9b9c47e076007b43b7abeb296ea15f0ec2a2cb
CRs-Fixed: 2191215
2018-04-20 12:09:00 -07:00
Rhythm Patwa
fef604ff99 qcacmn: Fix issue to correctly populate HT MCS rates
Fix the issue where the MCS rates for HT were repopulated
causing the MCS rates to be decoded incorrectly.

Change-Id: I73efac79d853b6f8af966aec57e70ad645418528
CRs-fixed: 2206784
2018-04-17 02:29:34 -07:00
Soumya Bhat
35fc699c0f qcacmn: Populate RX PPDU length
Add change to compute and populate RX ppdu length
from RX ampdu length.

Change-Id: I0e60764be1d3b0a0e69a8dc52cfb094a5df0f596
2018-04-11 09:15:12 -07:00
Soumya Bhat
dc8aca8501 qcacmn: Strip additional bytes from skb containing Rx payload
In existing code, the RX payload buffer for M-copy mode contained
RX MSDU payload followed by additional TLV data.

Add change to strip the skb and only provide MSDU payload

Change-Id: I9834fabfb0e26404a620d8419e7c570fff68f182
2018-03-30 06:31:18 -07:00