커밋 그래프

7372 커밋

작성자 SHA1 메시지 날짜
Pragaspathi Thilagaraj
63eb9e48dd qcacmn: Set WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL only for pmksa_flush
The supplicant sends del_pmksa command to delete the pmk,pmkid
for a particular bssid. In this command pmk_len will be 0.
In send_set_del_pmkid_cache_cmd_tlv() the host driver currently
checks the pmk_len to set WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL.
If pmk_len is 0 WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL is set, which
is not correct. pmk_len will be zero in both the flush and delete
cases.

So add a new flag is_flush_all which will be set to true when the
supplicant sends pmksa flush command.
At WMI based on this flag set the flush flag to the wmi cmd.

Change-Id: I7626c500721a4b8cccbb21a08d4235c041456d1b
CRs-Fixed: 2502478
2019-08-20 05:19:43 -07:00
Hariharan Basuthkar
43168e82c6 qcacmn: Dynamically allocate ch_list in wifi_pos_pdev_iterator()
Dynamically allocate ch_list in wifi_pos_pdev_iterator(), to avoid
exceeding the stack frame limit with the introduction of new channels.

Change-Id: I41aaa3ad0405a3023768e5278dacf7475524c4e0
CRs-Fixed: 2463009
2019-08-19 23:56:03 -07:00
Srinivas Dasari
5276ece978 qcacmn: Configure full scan period to firmware along with scan period
Full scan period is the idle period in seconds between two
successive full channel roam scans. Configure this to firmware
along with scan period as part of roam_scan_offload request

Change-Id: I3d629f0735b50a5b8116b422779ae423c15cae1d
CRs-Fixed: 2507604
2019-08-19 08:20:55 -07:00
Srinivas Dasari
a75e44c100 qcacmn: Add QCA vendor attributes to enhance roaming configuration
This enhances the existing vendor command QCA_NL80211_VENDOR_SUBCMD_ROAM
with the following configurations:
1. Set/get/clear roam control
2. Set/get the channels on which the roaming has to be triggered
3. Set/get the roam scan period
4. Configure the triggers for roaming
5. Configure the candidate selection criteria

Change-Id: I75bad835c501d86fa4b2f0e8fcadf8af5b17daca
CRs-Fixed: 2508279
2019-08-19 08:20:53 -07:00
Disha Das
07721fc036 qcacmn: Add wlan_crypto_is_key_valid check
Add wlan_crypto_is_key_valid to check if key
is valid.

Change-Id: Ica71f56f1739261fff425e793ec8c15d2523e8e7
2019-08-19 06:19:30 -07:00
Arun Kumar Khandavalli
9447e47cbb qcacmn: For pdev stats return last event as true for older firmware
In case of latest firmware, there can be multiple pdev stats events
received and last_bit is set in the pdev stats to indicate this
is a last pdev stats event to be sent from the firmware to host.
In case of older firmware the last bit will not be set and host waits
for the peer stats event to be the last event, generally for pdev
specific stats request the peer stats will not be sent resulting in
the timeout for the pdev specific stats.

So, if the last_bit in the stats is not present return true when
queried for last event.

Change-Id: I264428edba01285fdab4c109a9051b350063d74f
CRs-Fixed: 2509093
2019-08-19 03:57:19 -07:00
Akshay Kosigi
07df14c270 qcacmn: Move config files out of cmn dev
Move AP specific CONFIG files out of cmn dev

Change-Id: I53adb20ea910c0bc8842daa85cb762d4d3968e45
CRs-Fixed: 2506563
2019-08-19 02:10:57 -07:00
Jingxiang Ge
5dab0d80c8 qcacmn: Cancel sleep_timer completely in pcie bus suspend
There is possibility that sleep_timer is in running state,
so even in hif_pci_cancel_deferred_target_sleep timer has
been stopped, it runs later.

Use fake_sleep in hif_sleep_entry to check if timer has been
stopped, if yes, without action in hif_sleep_entry.

Change-Id: I46f28f8d856b51792e27a1f80f763830956b2868
CRs-Fixed: 2482547
2019-08-18 21:17:28 -07:00
Srinivas Dasari
30c93402ec qcacmn: Rename qca_wlan_vendor_attr_roam_subcmd to represent subcmds
qca_wlan_vendor_attr_roam_subcmd is an enum associated with the
attribute QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD. It represents
different sub command values and these are not the attributes.
Hence, rename the enum to qca_wlan_vendor_roaming_subcmd.
Accordingly, the members of this enum are also renamed to
suite the usage.

Change-Id: Idbc80bf084ff293402fa2de368bc91b4fc659f01
CRs-Fixed: 2508204
2019-08-17 20:31:17 -07:00
Srinivas Dasari
b72b2d7e7a qcacmn: Document the attributes used by QCA_NL80211_VENDOR_SUBCMD_ROAM
This commit documents the attributes used by
QCA_NL80211_VENDOR_SUBCMD_ROAM

Change-Id: Iee7a3df28b9ebcfe6e9f318353582e7d22c1a0c4
CRs-Fixed: 2508202
2019-08-17 12:22:12 -07:00
Rakshith Suresh Patkar
8a0b6e961c qcacmn: Cleanup cdp_fc_get_tx_resource [PEER_ID_PHASE1]
Cleanup cdp_fc_get_tx_resource to be peer mac address based
from local peer id based.

Change-Id: I241377c75f09e9f0e177a167905cd9461ffcd088
CRs-Fixed: 2508146
2019-08-17 10:53:50 -07:00
Yue Ma
ad85368f00 qcacmn: Add suspending and resuming states for runtime PM
Currently runtime PM only has inprogress state which means either
suspend or resume is in progress. Add suspending and resuming states
so that proper handling can be done for each state.

Change-Id: I9d92a8719d659b9ea271c46f8ce6bc912edc0863
CRs-fixed: 2507953
2019-08-16 18:32:56 -07:00
Sumeet Rao
3953e0ad69 qcacmn: Check nss enabled config before programming flow search table
In cases where NSS offload is enabled, we currently do not support
flow-based search (flow tagging). Check for NSS offload enabled flag
prior to configuring the flow search table in target/hardware.

CRs-Fixed: 2502311
Change-Id: I291c610fe568ac36bacb3c21fd14feb544332b20
2019-08-16 12:44:37 -07:00
Abhishek Ambure
47e709a62b qcacmn: Move vdev resp timer to scheduler context for MCL
For MCL, vdev manager resp timer callback should be called in scheduler
context. Hence vdev manager response timer callback code is refactored.

To handle vdev response timer, MCL specific change is to post message to
scheduler thread and handle timer callback in scheduler thread. This MCL
specific change is protected using "SERIALIZE_VDEV_RESP_TIMER" macro.

Change-Id: I4c5a24cd4c8afba92e407fc229a9d2c295cecb57
CRs-Fixed: 2507577
2019-08-16 10:48:43 -07:00
Mohit Khanna
c42d8036c9 qcacmn: Donot forward MDNS packets for NAN vdev
MDNS packets if forwarded for a NAN vdev can lead to potential flooding
of the air interface. Hence donot forward them.

Change-Id: Idfdedfb0b5b553745440587448230013f3b56a7d
CRs-Fixed: 2503360
2019-08-16 08:23:00 -07:00
Kai Chen
4b4e8b48cf qcacmn: change debug print and add ring stuck count
change debug print and add counter for monitor destination
ring stuck

Change-Id: I79b4d3b957303334717fd04bfddf754e303e69db
2019-08-16 08:22:57 -07:00
phadiman
baaa7b98ce qcacmn: Replace %p with %pK format specifier
Replace %p with %pK specifier in dp_main
module

Change-Id: I637f5a4ddc827011aa48295ea50544632d1a9a76
2019-08-16 08:22:53 -07:00
Amir Patel
44bd807fa7 qcacmn: Fix memleak in m_copy mode
1. Assign correct first msdu payload
2. Reset mpdu fcs ok bitmap upon reception of next ppdu
3. Free rx_ppdu_buf_q in error cases

Change-Id: I4f2e687d51d1e10693adc9cfcdee49190ba6815c
CRs-Fixed: 2502889
2019-08-16 02:58:08 -07:00
Jinwei Chen
0f015f2b53 qcacmn: support changing driver mode to monitor
support monitor mode enablement by changing driver mode.

Change-Id: I5436b21f4f554101e74590757ed2ac05d2d84fa0
CRs-Fixed: 2491560
2019-08-16 02:58:05 -07:00
bings
208ab01f20 qcacmn: Trigger eWNI_SME_DFS_RADAR_FOUND once for one radar
Currently eWNI_SME_DFS_RADAR_FOUND is triggered for every vdev
attached to the pdev in which radar is found. It is incorrect
because when handling one eWNI_SME_DFS_RADAR_FOUND event, every
sap in the DFS channel processes the event.

Trigger eWNI_SME_DFS_RADAR_FOUND once for one radar detection.

Change-Id: I72f8a2a34b670bd86f07d0caabf2ee8f96c962be
CRs-Fixed: 2504793
2019-08-16 02:58:00 -07:00
bings
b2e00f901f qcacmn: Add new obj mgr api wlan_pdev_peek_active_first_vdev
wlan_pdev_vdev_list_peek_active_head can't be used out of object
manager, because object manager structures can't be referenced
outside object manager.

Add wlan_pdev_peek_active_first_vdev which can be used out of
object manager, because it only needs pdev parameters.

Change-Id: I1d32ec2b5342dbdcbbb817d80623f802011892b0
CRs-Fixed: 2507969
2019-08-15 23:31:24 -07:00
Rakshith Suresh Patkar
fb42ec3909 qcacmn: Cleanup dp_get_vdev_by_sta_id [PEER_ID_PHASE1]
Cleanup dp_get_vdev_by_sta_id to be peer mac address based
from local peer id based.

Also, modify the API cdp_peer_get_vdev_by_sta_id with additional
argument for peer mac address.
Rename cdp_peer_get_vdev_by_sta_id to cdp_peer_get_vdev_by_peer_addr.

Change-Id: I889538b5ea7ebac8973dcaaa5ebdad1ac495e791
CRs-Fixed: 2504569
2019-08-15 20:38:29 -07:00
Jianmin Zhu
1af0d55f56 qcacmn: Add items for vdev start
Add hidden ssid flag and cac duration in vdev mlme obj, populate
vdev start param.
Register wmi ops extract_vdev_start_resp for target_if converge.

Change-Id: Iaebd49049fb791aaee39ef67611f96eed37d3605
CRs-Fixed: 2506245
2019-08-15 12:28:47 -07:00
Ankit Kumar
cd66fff1ce qcacmn: Process smart antenna fields from tlv
Process smart antenna fields from tlv
HTT_PPDU_STATS_USR_COMPLTN_COMMON_TLV in tx
completion path and export it to tx_completion.

Change-Id: If14e711b0aee8e583fd329f3c3915904649ffe47
CRs-Fixed: 2491429
2019-08-15 01:28:21 -07:00
Abhishek Ambure
9377b064a6 qcacmn: Rename WLAN_SER_CMD_DEL_STA_SESSION macro
As a part of vdev manager conversion, vdev delete code is
refactored. Legacy code and naming is removed. In vdev manager
operations, STA_SESSION is addressed as VDEV.

Hence WLAN_SER_CMD_DEL_STA_SESSION macro is renamed to
WLAN_SER_CMD_VDEV_DELETE.

Change-Id: I08bf6b2e69f5635d5ebc2548c18991bbb12b3985
CRs-Fixed: 2508147
2019-08-14 15:43:23 -07:00
Shiva Krishna Pittala
71bc664165 qcacmn: Add a callback to the FW assert function in Spectral module
As Spectral module is loaded before qca_ol module and the FW assert
function is compiled in qca_ol module, FW assert function will be an
unknown symbol when used inside Spectral module.
To fix this, register a callback to the FW assert function and
use that callback in Spectral module.

Change-Id: I6ca18b151e86b93de9988bc6026894617f2168a2
CRs-Fixed: 2507522
2019-08-14 14:30:26 -07:00
Sumeet Rao
511db296dd qcacmn: Add CDP api to set rx_pkt_enable,tx_pkt_enable for a peer
Since tx_monitor mode and rx_monitor mode consume signficant MIPS
when enabled on a per-peer basis, new requirement is to enable such
functionality on a per-peer basis. New CDP APIs are added to set these
per-peer parameters.

CRs-Fixed: 2494471
Change-Id: Ib44845ec98481cc4df36c30f47335522e5274568
2019-08-14 14:30:23 -07:00
Rakesh Pillai
9d28e0e462 qcacmn: Make num_int_grp consistent with hif_num_grp
The HIF_MAX_GROUP value is not consistent with the
HIF_NUM_INT_CONTEXTS which can cause out of bound access.

Fix this issue by making both these values same.

CRs-Fixed: 2505220
Change-Id: Ia79d9c03de82a73662c189e61e83e43e71d2ef3f
2019-08-14 14:30:16 -07:00
hangtian
871207dc66 qcacmn: Set ssid and ssid_len when restart sap vdev
Set ssid and ssid_len when restart sap vdev. When hostapd set
ignore_broadcast_ssid to 1(zero-len) or 2(zero-content), when we force-scc
or setChanChange to restart sap vdev, if not set ssid and
ssid_len(default 0) in vdev start wmi, then firmware will reply
broadcast probe request since the ssid_len in broadcast probe req is 0
which matches the condition that firmware send probe response, however,
we should not reply with probe response.

Change-Id: I56580529e2b0db673c6b28c75094a7fd225cba77
CRs-Fixed: 2506391
2019-08-14 03:45:04 -07:00
Mohit Khanna
664e64c199 qcacmn: Use 512us REO Interrupt threshold timer
Increase the REO Threshold interrupt timer from 256 to 512us. This
provides additional savings in number of interrupts in low throughput
scnearios.

CRs-Fixed: 2500152
Change-Id: I0b21a0425018d5db068016222378d16f394dc347
2019-08-13 20:26:10 -07:00
Sravan Kumar Kairam
afd707dd48 qcacmn: Do vdev null check sanity before gro flush
In dp_rx_process there are two cases in which vdev will be
null. One is when peer is invalid case which happens when
packets comes on reo with out any valid peer and vdev set.
Second case is fetching more data in case of napi no yield
condition and there are no buffers to fetch. In current
dp_rx_process gro flush is called at the end of nbuff process
and with out checking for vdev sanity it is referenced. So
add vdev null sanity check to prevent NULL pointer dereference.

Change-Id: Ie2d480108118d9b83373a450aecabee57675c41d
CRs-Fixed: 2507067
2019-08-13 16:23:39 -07:00
Mohit Khanna
698987c896 qcacmn: Send GRO flush indication at end of dp_rx_process
In case of TCP packets being processed by dp_rx_process, send out GRO
flush indication to the thread.

CRs-Fixed: 2500152
Change-Id: I4f464456d423e4680955992c0acf0ed5f4e618b8
2019-08-13 16:23:36 -07:00
Abhiram Jogadenu
9fb7c768c3 qcacmn: Add flag to enable CFR capture in Probe response
Add cfr_enable flag in Probe response, so that FW can start CFR
capture for particular client.

Change-Id: Id38b61317384a069308de4931463f1aef4f65f38
CRs-Fixed: 2502030
2019-08-13 12:09:32 -07:00
Ashish Kumar Dhanotiya
0cf77a56ea qcacmn: Process All the pdev stats events
There are 2 issues in the driver:
1. Currently host incorrectly fills the pdev id value as 0
   in stats request, If host sends the pdev id as 0 for
   stats request then FW sends the stats for all the pdevs.
2. If host requests pdev stats with pdev id as 0,
   FW can send multiple events for each pdev stats
   if one event buffer is not sufficient to fill the stats
   for all the pdevs. Curent host logic doesn't process
   multiple pdev stats events.

Address above 2 issues with below fixes:
1. Send correct pdev id to FW in the stats command.
2. Add a logic in host to process all the pdev stats events
   received as part of the pdev stats request.

Change-Id: I5b5bfcda2f30fb32749c653c6524ecbd2edc44a4
CRs-Fixed: 2503273
2019-08-13 07:33:27 -07:00
Rajeev Kumar
0391a23ca3 qcacmn: Add pdev_id for stats request command
Currently CP stats component does not fill the proper pdev_id
in the command for the stats request. This causes the value
sent to firmware to be 0 bydeafult. As per the logic in firmware,
if the value is zero then the stats for all the pdevs are sent.
To get only stats for a single pdev, send the pdev_id along with
the vdev_id in the stats request command.

Change-Id: Ic4ecad132c8764196b9f5ed6af76fe4f2778d8d1
CRs-Fixed: 2502459
2019-08-13 07:33:22 -07:00
Rakshith Suresh Patkar
0375108ffa qcacmn: Cleanup dp_clear_peer [PEER_ID_PHASE1]
Cleanup dp_clear_peer to be peer mac address based
from local peer id based.

Also, modify the API cdp_clear_peer with addition argument
for peer mac address.

Change-Id: I1bd3fab1b9510b5f1d4476e11b617fcb6417f2c4
CRs-Fixed: 2503774
2019-08-13 04:17:32 -07:00
Subrat Mishra
4946004e75 qcacmn: Smart Antenna 11-bit ratecode support
Add Smart Antenna support to accommodate 11-bit ratecode
per Bandwidth.

CRs-Fixed: 2506480
Change-Id: Id8b58cf0466739a886ba4f37bc6adcb7f96fa0ea
2019-08-13 02:29:09 -07:00
Jayachandran Sreekumaran
f24399cc78 qcacmn: Enable mission mode through qmi signalling
Enable mission mode in fw through qmi signalling.

Change-Id: I539d7b8bb1f38b2cb526704c225bf4535fcc8543
CRs-Fixed: 2504541
2019-08-12 22:19:16 -07:00
nobelj
a310bf4609 qcacmn: Moved Rx mpdu byte count as they are not supported in HKV1
mpdu byte count is not supported in HKV1.

Change-Id: I23f0608d44958159abffc3b5b3eccde29d9cf07f
2019-08-12 16:18:28 -07:00
Ruben Columbus
4319493562 qcacmn: ring backpressure handler
rxhost ring backpressure:
identifying rings causing rx backpressure after being notified
by FW message. Adding logs to be able to see at what state
the ap was after a backpressure event was triggered.
Adding radio stats (261) as well as napi stats for better
state description.
Change-Id: I395450be6faaf959f91729516a7b229c5b3396ce
2019-08-12 16:18:24 -07:00
Rajeev Kumar
d736cdf95e qcacmn: Add auto pm tag to WMI_HW_DATA_FILTER_CMDID
Add auto PM tag for WMI_HW_DATA_FILTER_CMDID command such
that CCE HW fiter feature can be enabled for runtime pm
as well.

Change-Id: Iec1495ebecb0aab0e695fb5e656ac13a22bba338
CRs-Fixed: 2505994
2019-08-12 12:24:21 -07:00
Shreedhar Parande
45d12fa2de qcacmn: Separate GET APIs for precac and agile precac flags
Currently a single API(dfs_get_precac_enable) is used to get
dfs_precac_enable and dfs_agile_precac_enable. This API is
wrongly returning value for dfs_precac_enable since agile
capability is set even for Cascade.

Separate out the GET APIs for getting dfs_precac_enable and
dfs_agile_precac_enable so that getting these flags becomes
independent of each other.

Change-Id: I08b0cbcd29c320a345865e3e9456ce3e809e26a6
CRs-fixed: 2501266
2019-08-12 12:24:17 -07:00
Pragaspathi Thilagaraj
fc54cc76a4 qcacmn: Read OWE and SAE roam target capability
Add support for OWE and SAE roam target capability.
Add event mapping for the tgt event
WMI_ROAM_PREAUTH_START_EVENTID.

Add changes to send WMI_ROAM_PREAUTH_STATUS_CMDID after
the SAE external authentication event is received.

Also for SAE/OWE/802.1x, the key management offload
needs to be enabled by default as PMKSA caching if
set_pmksa is received from the supplicant. So remove
the additional key management offload check so that
OKC and PMKSA is enabled by default for SAE and OWE.

Change-Id: I01d3a07e2ce60e25ea8624c030c6a5802205566d
CRs-Fixed: 2491042
2019-08-12 02:45:23 -07:00
Abhishek Ambure
c367e06da5 qcacmn: Enable target_if common code for vdev stop
As vdev conversion is done in phases, so vdev stop response
handler for target_if is made global. To process vdev stop
response tlv extraction API is registered to WMI tlv_ops.

Change-Id: Ib00f7339330e69d6103a175611df7b59c01faad0
CRs-Fixed: 2506500
2019-08-12 02:45:19 -07:00
Varuneshwar Petlozu
21a557f273 qcacmn: Add null check for event fields in extract_ndp_ind_tlv
In the function extract_ndp_ind_tlv the data from FW is assigned
to the event.The event fields ndp_cfg, ndp_app_info and ndp_scid
are used as source in the memcpy without null check which can cause
undefined behaviour.

To solve this, add null check for ndp_cfg, ndp_app_info and ndp_scid
before memcpy use.

Change-Id: I4bf592e6977c50518e53ece268c34450d9684304
CRs-Fixed: 2476173
2019-08-12 01:27:48 -07:00
Abhishek Singh
22e58ce9f1 qcacmn: Consider BAND and OCE WAN scores only if congestion is < 75%
Optimize BSS score to consider OCE WAN and Band score only if
congestion is less than 75% (CONGESTION_THRSHOLD_FOR_BAND_OCE_SCORE)

Change-Id: I114032db59be162cad62dfa4cdcd52983f5eec9b
CRs-Fixed: 2505430
2019-08-12 01:27:45 -07:00
Varsha Mishra
06b91d3db8 qcacmn: Make send_msdu_single a non-static function
send_msdu_single is required in other files, hence making it
non-static.

Change-Id: I7cf876fe7a940c90aeafce15b0112bbe93a8760b
2019-08-11 14:09:34 -07:00
Abhishek Ambure
c76db37021 qcacmn: Clean up CMN_VDEV_MGR_TGT_IF_ENABLE
WIN and MCL both uses common targer_if code for vdev manager.
So legacy code and "CMN_VDEV_MGR_TGT_IF_ENABLE" macro is removed.

Change-Id: I2984ae44f3a7cfa01b8f1455353d09deb4db5759
CRs-Fixed: 2503804
2019-08-11 10:38:20 -07:00
Edayilliam Jayadev
151c4bb3d6 qcacmn: Extend timestamp WAR for agile mode
Target will be sharing the time taken for reset in the
first Spectral report after reset. The reset delay value
is common for all the Spectral modes. Host updates
the timestamp WAR offset variable for all the Spectral modes.

CRs-Fixed: 2504798
Change-Id: If7d47a434054f220b0717f7d8939f9f8922af30f
2019-08-11 02:11:44 -07:00
Nandha Kishore Easwaran
5d3475b985 qcacmn: Initial changes for pine
Add device ID change and target type checks for pine.
Also remove memory war added for Hk emulation.

Change-Id: Idf531a48a03202d4fb241a92a1d671ee2b94cfbd
CRs-fixed: 2453899
2019-08-11 02:11:41 -07:00