Commit graph

7,572 commits

Author SHA1 Message Date
Venkata Sharath Chandra Manchala
2a52d3426c qcacmn: Add hal_rx_get_mpdu_mac_ad4_valid API
Implement hal_rx_get_mpdu_mac_ad4_valid API
based on the chipset as the macro to retrieve
mac_ad4 value is chipset dependent.

Change-Id: I9d7cc90e798d4f0775e915fe6edcb1a1f5129490
CRs-Fixed: 2522133
2019-10-17 15:07:45 -07:00
Venkata Sharath Chandra Manchala
55f2d92e61 qcacmn: Add hal_rx_msdu_end_last_msdu_get API
Implement hal_rx_msdu_end_last_msdu_get API
based on the chipset as the macro to retrieve
last_msdu value is chipset dependent.

Change-Id: I561c28a49062d7b650e68c5a4ce4da0183be34d6
CRs-Fixed: 2522133
2019-10-17 15:07:40 -07:00
Venkata Sharath Chandra Manchala
79055387d9 qcacmn: Add hal_rx_msdu_end_da_is_valid_get API
Implement hal_rx_msdu_end_dat API based on
the chipset as the macro to retrieve da_is_valid
value is chipset dependent.

Change-Id: I79f06eaa2576e7516c21f963b2c149aac7f62c64
CRs-Fixed: 2522133
2019-10-17 15:07:33 -07:00
Venkata Sharath Chandra Manchala
cb255b4834 qcacmn: Add hal_rx_msdu_end_first_msdu_get API
Implement hal_rx_msdu_end_first_msdu_get API
based on the chipset as the macro to retrieve
first_msdu value is chipset dependent.

Change-Id: Iea325159a0349c45a249c1ae113664c41a54b0f1
CRs-Fixed: 2522133
2019-10-17 15:07:28 -07:00
Venkata Sharath Chandra Manchala
a2d7497e1c qcacmn: Add hal_rx_print_pn API
Implement hal_rx_print_pn API based on the
chipset as the macro to retrieve
pn value is chipset dependent.

Change-Id: Id9d0d3b34a5f6a09fe5903e1d24bb0a59205174b
CRs-Fixed: 2522133
2019-10-17 15:07:23 -07:00
Venkata Sharath Chandra Manchala
c1a4c8b4fc qcacmn: Add hal_rx_encryption_info_valid API
Implement hal_rx_encryption_info API based
on the chipset as the macro to retrieve
sa_idx value is chipset dependent.

Change-Id: I0c48800dfa5628898c53f7a9271e517b6bfa3da7
CRs-Fixed: 2522133
2019-10-17 15:07:18 -07:00
Venkata Sharath Chandra Manchala
f05b2ae5c2 qcacmn: Add hal_rx_msdu_end_l3_hdr_padding_get API
Implement hal_rx_msdu_end_l3_hdr_padding_get API
based on the chipset as the macro to retrieve
sa_idx value is chipset dependent.

Change-Id: Ice1fc2d70e339dc1d80fa6f34f37c5a7aa074be5
CRs-Fixed: 2522133
2019-10-17 15:07:13 -07:00
Venkata Sharath Chandra Manchala
43d563277d qcacmn: Add hal_rx_desc_is_first_msdu API
Implement hal_rx_desc_is_first_msdu API
based on the chipset as the macro to
retrieve first_msdu bit value is chipset
dependent.

Change-Id: I8e8a3aceb225b591b96e6f8453ffbebf1f78e529
CRs-Fixed: 2522133
2019-10-17 15:07:09 -07:00
Venkata Sharath Chandra Manchala
5bf1e5a1da qcacmn: Add hal_rx_msdu_end_sa_idx_get API
Implement hal_rx_msdu_end_sa_idx API
based on the chipset as the macro to
retrieve sa_idx value is chipset
dependent.

Change-Id: Ib874520be9e7ad778c2a9a3c415e5c3047450b31
CRs-Fixed: 2522133
2019-10-17 15:07:02 -07:00
Venkata Sharath Chandra Manchala
59ebd5ee0c qcacmn: Add hal_rx_msdu_end_sa_is_valid_get API
Implement hal_rx_msdu_end_sa_is_valid_get API
based on the chipset as the macro to retrieve
sa_idx valid bit is chipset dependent.

Change-Id: I8bcb7030554331922ed12ea9da3ef51cd64b5c40
CRs-Fixed: 2522133
2019-10-17 15:06:56 -07:00
Venkata Sharath Chandra Manchala
ee90938f62 qcacmn: Add hal_rx_msdu_end_da_is_mcbc_get API
Implement hal_rx_msdu_end_da_is_mcbc_get based
on the chipset as the macro to retrieve
mcbc value is chipset dependent.

Change-Id: I860d259515c31345501080577d7a34beb97e5f60
CRs-Fixed: 2522133
2019-10-17 15:06:48 -07:00
Venkata Sharath Chandra Manchala
d1b7e4c326 qcacmn: Add hal_rx_get_rx_fragment_number API
Implement hal_rx_get_rx_fragment_number
based on the chipset as the macro
HAL_RX_MPDU_GET_SEQUENCE_NUMBER is
chipset specific.

Change-Id: I967190fa3a55d45f46760f58eab5007bf5fa908f
CRs-Fixed: 2522133
2019-10-17 15:06:42 -07:00
Rhythm Patwa
c5068e341f qcacmn: Add support to offload FILS Discovery to FW
Construct the FILS Discovery frame template and send
template to FW.

Change-Id: I1052b9b8240ea9461e19bb70887b49aabffc4e05
2019-10-16 21:54:34 -07:00
Rhythm Patwa
7232cb187e qcacmn: Add support to parse 6GHz specific IEs
Add support to scan for the 6GHz band capabilities
IE and parse the IE. Added peer assoc param for updating
the minimum data rate advertised by the peer in 6GHz
Opration information.

Change-Id: Iebb4379d321832f3ed2bcd3174a54843fa2d497c
2019-10-16 21:54:30 -07:00
Ankit Kumar
f3557ff4d1 qcacmn: Increase fw_txrx rem stats counter size
rem_stats keeps counter of remaining stats to be processed.
At present this counter is of type uint8_t and hence can
accumulate till 256 counter but num_stats is of type uint32_t.
Hence if remainting stats to be precessed is 256 then rem_stats
value will be 0 as it will only consider LSB 8 BITS and it will
result in stats mismatch and hence memory leak.

Increasing size to uint64_t to accumulate more counter size.

Change-Id: Ifa86c7e4a73a5a700e9033c8756e986d86025cf9
2019-10-16 11:18:32 -07:00
Saket Jha
ce8c3108d5 qcacmn: Clear defrag waitlist in all cases
Rx defrag waitlist was not getting cleared during dp_peer_rx_cleanup in
the case of STA mode even though the tid was getting deleted. This
created a scenario where the next time dp_rx_defrag_waitlist_remove was
called, it was trying to access now invalid memory. If a vdev was
disconnected in the middle of receiving traffic, then the tid would be
deleted but the rx frag waitlist would not. Upon reconnecting, the
reception of the next frag would cause a crash due to the now invalid
memory in the waitlist.

Change-Id: I5bb1a31f38fa45128d0f35fafaddaf729c99489d
CRs-Fixed: 2538879
2019-10-15 22:58:32 -07:00
Ashish Kumar Dhanotiya
cd4d6c1d0b qcacmn: Add debug logs to the stats request
Currently there are no debug logs for station stats
request because of which it is difficult to debug
stats related issues.

Add debug logs in stats request and response callbacks.

Change-Id: I4071628ee988ef2e88624740d7e2113610464033
CRs-Fixed: 2541225
2019-10-15 22:58:28 -07:00
Shaakir Mohamed
af7c6e0445 qcacmn: Support pdevid conversion map for wmi_handle
Support pdevid conversion map for dynamic mode switch

Change-Id: I350d66b142c7206f87e4182abfbe990bdc0faa7d
CRs-Fixed: 2509336
2019-10-15 14:49:23 -07:00
Ajit Pal Singh
0bd6d0366c qcacmn: usb: Make HTC_MAX_MSG_PER_BUNDLE_TX configurable
Make HTC_MAX_MSG_PER_BUNDLE_TX configurable through config files.

Change-Id: I259c4b202d4fc9e44ef3f5edf8454372a9a086d4
CRs-Fixed: 2534002
2019-10-15 13:28:16 -07:00
Bala Venkatesh
00a0c37e87 qcacmn: Update the vdev_id in the vdev_chain_rssi stats
In tgt layer, rssi_stats are copied by comparing the vdev id
filled in the target layer and last reqested stats vdev id.
But in target layer api, target_if_cp_stats_extract_vdev_chain_rssi_stats
vdev id is not filled and that can lead to wrong stats in the upper
layers.

Update vdev id in the rssi stats.

Change-Id: I6a8bd032152b43b90ffd4acfc760e218bf4bba5b
CRs-Fixed: 2530148
2019-10-15 06:45:06 -07:00
Sourav Mohapatra
20bc724ca1 qcacmn: Add qdf wrapper for hash_for_each_safe
Add qdf wrapper API for hash_for_each_safe which iterates over a
hashtable safe against removal of hash entry

Change-Id: I89d8b6520a4bee583d44a771b4359ed287d0c2fa
CRs-Fixed: 2528484
2019-10-15 00:49:24 -07:00
Vivek
4ad877f928 qcacmn: Print vdev, pdev and psoc info before being destroyed
Add debug code to print the vdev, pdev and psoc info before getting
destroyed. This will help in cases where we dont get crash dumps
for panics and we need to look up few important data, which
can be done by enable object manager debug.

Change-Id: Iab1895d348ccf225ee6390abef26b76936fbe560
CRs-Fixed: 2528290
2019-10-14 20:39:24 -07:00
Tushnim Bhattacharyya
d0221258e5 qcacmn: Reduce log level in 6Ghz regulatory API
Reduce log level in reg_is_6ghz_psc_chan_freq.

Change-Id: If451c702cbbf7ef559bd486ac8dbd6095a74ea58
CRs-Fixed: 2544230
2019-10-14 15:56:22 -07:00
Jinwei Chen
a3e587120b qcacmn: flush pending vdevs and peers when do pdev deinit
Flush all the pending vdevs and peers when do pdev deinit

Change-Id: Id99ca5394bc96a07b75a44847dbc1c7681355265
CRs-Fixed: 2532199
2019-10-14 05:47:56 -07:00
Rakesh Pillai
ec9faaa73e qcacmn: Set interrupt mode during soc attach
Currently the interrupt mode is set as a part of
interrupt attach. The interrupt mode is needed for
pdev attach and hence it is decoupled from the interrupt
attach, setting the interrupt mode during soc attach.

Set the correct interrupt mode during soc attach.

CRs-Fixed: 2500015
Change-Id: I68496bed68cac5a2a2bd19adf2377bae7eb8783c
2019-10-14 05:47:50 -07:00
Sravan Kumar Kairam
aedfbffdfd qcacmn: Add qdf abstraction for ipa uc bw monitor
Add qdf abstraction for ipa uc bandwidth monitor for
wlan client.

Change-Id: I64718f118dd4982b060c72e2a2e7bd3e317bdb73
CRs-Fixed: 2526548
2019-10-14 05:47:45 -07:00
Sravan Kumar Kairam
3a37692ec1 qcacmn: Add qdf abstraction for ipa wdi stats api
Add qdf abstraction for ipa wlan wdi stats api.

Change-Id: If325950f7151199cf1f720ac0da05274bb307786
CRs-Fixed: 2517709
2019-10-14 05:47:41 -07:00
Sravan Kumar Kairam
78b01a1e1b qcacmn: Flush srng tp and hp only for flush event
Currently after runtime resume all SW2TCL data and reo cmd
srng rings hp and tp value are flushed. In case of IPA
offload case SW2TCL3 righ hp value will be updated by IPA
and not by host. In case of runtime pm enable host is
setting the value to zero as part of runtime resume which
results in incorrect hp value of SW2TCL3. As part of this
change set flush event for rings which are accessed by host
during link down state and after runtime resume flush the
rings for which flush event is set.

Change-Id: I5c9afa708277cf3a6e6d5ef99447bc21f88cfdcf
CRs-Fixed: 2514621
2019-10-12 22:16:04 -07:00
Rajeev Kumar Sirasanagandla
816b503c44 qcacmn: Ignore regulatory offload indication from FW
Based on the ini "ignore_fw_reg_offload_ind" ignore regulatory
offload indicatin from fw.

Change-Id: Ia95b5bdda6ee1fcc2b07f28f997a7c80afcbc32b
CRs-Fixed: 2533001
2019-10-12 19:03:56 -07:00
Abhishek Singh
f3f9797014 qcacmn: Fix enum wlan_phymode to include proper phymode value
Few phymode are missing from enum wlan_phymode and many are not
valid phymode, e.g for 5ghz 40minus and 40plus are not valid.

So add the missing enums and remove invalid enums from enum
wlan_phymode.

Change-Id: Id6a1fb4cf0d629cc410bd262a048b5050d05ed5d
CRs-fixed: 2505422
2019-10-12 13:10:32 -07:00
Aditya Sathish
fbf9ece75d qcacmn: Rename TX_DECAP_TYPE to TX_ENCAP_TYPE
The macros attributing the Tx encap type have been erroneously
named as TX decap.

Rename all occurences of TX_DECAP_* to TX_ENCAP_*. Also add support
to send WMI vdev params for tx_encap and rx_decap values.

CRs-Fixed: 2533710
Change-Id: Id6ef2955868010b264e76d2a416d22d30d2acedc
2019-10-10 22:59:18 -07:00
Venkata Sharath Chandra Manchala
34a2ef695d qcacmn: Add support to copy buffers posted to CE SRC
Enable data field in hif_ce_desc_event structure
and copy the buffer posted to CE SRC ring. This is
done to validate the contents of the buffer.

Change-Id: I6745422f6c3a8ac013bb35032056f041d2216d89
CRs-Fixed: 2540707
2019-10-10 18:04:39 -07:00
Rakesh Pillai
01b9b680fc qcacmn: Avoid REO destination change when IPA enabled in P2P mode
In cases where one of the interfaces is a P2P-GO and
IPA has been enabled, the P2P connection establishment
fails.

When IPA is enabled, the REO destination is changed to REO4
which can be reaped only by IPA module. But in case of P2P-GO
interface in operation, this change in configuration causes
all the RX packets to be stalled due to incorrect REO configuration.

Hence, to avoid this case, do not change the REO dest config
when the interface subtype is P2P.

CRs-Fixed: 2498315
Change-Id: Ie9f01c3b353c7c0503e1541d6c79c2f47c9782f3
2019-10-10 13:43:37 -07:00
Jinwei Chen
1c76e897e3 qcacmn: refine dp_vdev_flush_peers logic
Refine dp_vdev_flush_peers,
a. wrap ast entry flushing into dp_peer_flush_ast_entry()
b. if unmap_only is true, logic keep same.
c. if unmap_only is false, also use __dp_peer_find_by_id
instead of dp_peer_find_by_id to get peer object.
only if peer flag valid is true, then call dp_peer_delete_wifi3
to avoid peer member invalid accessing.

Change-Id: I7a6d53e124ff369305b91050731901ff0a43d6af
CRs-Fixed: 2534274
2019-10-10 03:17:47 -07:00
Vignesh Mohan
b07c34cc2d qcacmn: Remove redundant ETSI preCAC APIs
As part of the ETSI preCAC feature, every 20MHz channel that is CACed
and not in NOL is maintained in a list which is then checked during every
channel switch for CAC reuse (avoiding CAC).

With the introduction of preCAC list(Binary Search Forest) for
20, 40 and 80MHz channels which also includes the current channel CAC
information, the ETSI preCAC list has become redundant.

Remove all APIs and changes that support the redundant ETSI preCAC list.

Change-Id: Ie71e2fda3f6f62ec6ea312c3bf0bdfc53a7df003
CRs-Fixed: 2484864
2019-10-10 00:51:50 -07:00
Venkata Sharath Chandra Manchala
6f852506bf qcacmn: Use PKTLOG_TYPE_RX_STATBUF macro
Use macro PKTLOG_TYPE_RX_STATBUF for indicating
received Rx Full pktlog messages.

Change-Id: Ia7e69bc385fd7b1367c191f657ace8327388cf03
CRs-Fixed: 2529520
2019-10-09 19:10:57 -07:00
Nirav Shah
c806725022 qcacmn: Do not print periodic flow control stats
Do not print periodic flow control stats for lithium
data path.

Change-Id: Idc05417c23b4c5a3916a2a9fc433960e48d469fe
CRs-Fixed: 2535644
2019-10-09 19:10:53 -07:00
Amir Patel
318bcb8ec3 qcacmn: Fix tx retries and tx failed stats
Update tx retries count even when ACK_BA_STATUS
tlv is not received

CRs-Fixed: 2533830
Change-Id: I99ea57852ae45a349ee088a13d35f62ef6091971
2019-10-09 16:17:10 -07:00
Karunakar Dasineni
fc8fac5233 qcacmn: Fix non-QOS seq number in PPDU stats
Sequence number should be obtained from user_compln_ack_ba_stats_tlv
in HTT PPDU stats messages since enq_bitmap TLVs are not sent for
non-QOS frames.

Change-Id: I2d5ddb8c7397953081df94f77f0bd8a30a581b11
2019-10-09 16:17:05 -07:00
Liangwei Dong
dcab2f8924 qcacmn: Set DFS channel to radar component
vdev_mgr_start_param_update will handle STA and
AP mode in vdev start. So, we need to check and
only set DFS AP's channel to Radar component by
tgt_dfs_set_current_channel. Thist will avoid
seting incorrect channel to Radar component
in STA+AP(DFS) or AP(2.4G)+AP(5G DFS) concurrency
case.

Change-Id: If60e1630c5288884d01242a20d68b2cd315942ca
CRs-Fixed: 2531766
2019-10-09 14:45:20 -07:00
Linux Build Service Account
e78475c89f Merge "qcacmn: CDP interface to deliver Tx mgmt frames" 2019-10-08 12:37:25 -07:00
Linux Build Service Account
340a69cc06 Merge "qcacmn: Initialize __log_window_end_ticks variable explicitly" 2019-10-08 00:38:54 -07:00
Karunakar Dasineni
13abde98f1 qcacmn: CDP interface to deliver Tx mgmt frames
Add CDP interface to pass on host generated mgmt
frames to DP, to be included in Tx capture.

Change-Id: Ic1a63c137ca546b0ad2b94d92fd5d489e9512a6f
2019-10-07 16:38:23 -07:00
Amar Singhal
db7271fbd4 qcacmn: Remove default pdev id from regulatory component
Default pdev id is redundant now. Therefore remove def_pdev_id from
the regulatory component.

Change-Id: I383f904e373df0e7d02fb0e2d00141fcacebe82a
CRs-Fixed: 2505161
2019-10-07 14:02:23 -07:00
Amar Singhal
28374e3ff1 qcacmn: Mark SRD channels conditionally passive
--Treat SRD channels as PASSIVE if INI enable_srd_chan_in_master_mode
is 0. Add API reg_modify_chan_list_for_srd_channels for this purpose.
Mark channels as PASSIVE in both driver and kernel. Do not add this API
for WIN use-cases.
--Make default value of enable_srd_chan_in_master_mode as 1. WIN needs
default value as 1. MCC can over-ride with INI.
--When pdev is added, compute pdev current channel list only after pdev
private object is attached to the pdev. Computation of current channel
list accesses the private object via the pdev.
--When a pdev is added and deleted, set and reset def_pdev_id
correctly. Currently reset is not being done when pdev is destroyed.
--When programming current country to the firmware, do not use
def_pdev_id, since def_pdev_id can be -1. Ask for response for all phys.
Program pending reply for every phy, since the reg-domain for all phys
need to be re-programmed.
--Remove reg_reset_reg_rules when pdev is processed, after addition of
master channel list. The psoc copy of master reg rules need not be
cleaned up.

Change-Id: I5eaa457b8819d7a22d2e592d1b79fff15b364f40
CRs-Fixed: 2491045
2019-10-07 12:37:18 -07:00
Edayilliam Jayadev
454c6d7be3 qcacmn: Restrict Agile Spectral start scan in SBS mode
Ensure that at a time only one Agile Spectral scan is
happening across all the 5G pdevs in SBS mode.

CRs-Fixed: 2517522
Change-Id: If31a4451b82ce1d7d8a46bc604ca91bf4b6dac29
2019-10-06 23:54:53 -07:00
Prathyusha Guduri
bd4fd7a5d2 qcacmn: Fix duplicate AST creation
Only when pdev_id matches, duplicate ast_entry creation is rejected

Change-Id: If29835a4babd4be26a0fdafbef047a79255b2e25
2019-10-06 19:30:26 -07:00
Amar Singhal
56246e9faa qcacmn: Send multiple WMI_SCAN_CHAN_LIST_CMDID messages if required
If more than MAX_NUM_CHAN_PER_WMI_CMD are present, wmi buffer size can
exceed the maximum allocated buffer size. So iterate over the channel
list, and send multiple messages till channel list is empty. Also check
if 6 ghz channel is a PSC channel and mark channel flag accordingly.

Change-Id: I977a2d220c750cec1f261377b3838360bd8c0df3
CRs-Fixed: 2522763
2019-10-06 18:13:07 -07:00
Chaithanya Garrepalli
d3c58a3d99 qcacmn: flush the invalid peer nbuf list in case list length is > 10
In invalid peer path if the ppdu nbuf has more than 10 nbufs
flush the list

Change-Id: I285cc9f78cafe669661860f7aa2f4542526bc412
CRs-fixed: 2453326
2019-10-06 13:46:55 -07:00
Hariharan Basuthkar
868bcbec0c qcacmn: Rectify APIs within the Regulatory component
Rectify three issues in the Regulatory APIs as follows:

1) Within the API reg_update_nol_ch_for_freq, replace the call of
reg_get_chan_enum with reg_get_chan_enum_for_freq, as
reg_update_nol_ch_for_freq is a frequency based API.

2) Change the return type of wlan_reg_get_channel_reg_power_for_freq
to uint8_t and change the datatype of its parameter, freq, from uint32_t
to uint16_t.

3) Place the API wlan_reg_chan_to_freq, under the macro
CONFIG_CHAN_NUM_API, as it uses IEEE channel number as a parameter.

Change-Id: I1bc1d767d34cd97ca971bd7e12b685a55fb9a494
CRs-Fixed: 2531183
2019-10-05 19:10:52 -07:00