Do not set tx beam forming related ie's in ht cap, vht cap,
he cap when set IE command is sent to FW for NDI vdev.
Change-Id: If629eedeab5d35b1799c6eb5ee7d71726ada262a
CRs-Fixed: 2499132
adapter->scan_block_work is workqueue, which may be scheduled after
driver is removed.
To fix this issue, flush the workqueue and clean up blocked scan
request.
Change-Id: I0e9cb1b3f2fdceb25ad3566766000b78e1bf0ca1
CRs-Fixed: 2500369
Featurize DHCP indication for SAP and disable it
for QCN7605 as this feature is broken for HL
Data Path.
Change-Id: If1db649131d887a2aab18461187403b4b9a2c5b4
CRs-Fixed: 2496032
If SAP is not up, it is meaningless to handle assoc req.
If assoc req is handled, ref peer may be created without deleted in
DFS CAC state, which causes FW does not work.
Change-Id: Ia489fa8cfb4406e782fc240c553f5e3074982380
CRs-Fixed: 2487946
wpa_supplicant/framework sends different vendor specific IEs in
connect request. Currently driver is parsing the IEs and appending
specific IEs to the assoc request frame. But all vendor specific
IEs are supposed to be sent in the assoc request. Extract all vendor
specific IEs and append at the end of the frame.
MBO IEs are expected to be present at the end of the frame.
So append rest of the vendor IEs just before MBO IE.
Change-Id: I3d49c72a31d142ef3b14b439af2ae4cd8be059ea
CRs-Fixed: 2498976
Currently lim_strip_ie strips the matched IEs from given buffer
but return only last matched IE. All the previous IEs matched to
the given type are lost. Fix this to strip and extract all IEs
matched to given type.
This is to address the case when multiple vendor specific IEs are
given from userspace. Current implementation returns only
last vendor specific IE. This is to fix the same
Change-Id: I64ca5d2e679b8457dc2cbaf7b4b12dc0a840260d
CRs-Fixed: 2499592
Currently in case of SAP mode, Host gets FILS discovery frame
in every 20TU for the first 3 mins. These frames are not required
in host and will be dropped. But Host has pe_warn print in order
to indicate this action frame is Unhandled.
Fix is to change level of log (warning to debug) in order
to avoid spamming in kernel message buffer.
Change-Id: I3ec585a37b190041ef2f88a03e201aa7a5ff7938
CRs-Fixed: 2499907
Issue is : In case of STA + STA, Host sends BTM config enable on
both STA. This results assert in FW as at a time FW supports BTM
only on one vdev.
Following are the fix:
1. Send 11k offload and BTM config enable to fw irrespective of
roam reason. Enable of both while RSO start and disable of both
while RSO stop should be symmetric.
2. Currently, Host sends RSO_UPDATE_CONFIG for blacklisting case
if the vdev is in connected state irrespective of RSO start is
sent or not. Added check to make sure RSO_UPDATE_CONFIG should
not go if driver_disabled_roaming flag set.
Change-Id: Ib92089906a2e1690ec6181ac184bc008ccfbc928
CRs-Fixed: 2497813
Add separate Coldboot calibration mode (10) for Coldboot Calibration
done during FTM Mode in PLD.
Change-Id: I7e4bb5209d87613bb49a0a958d8e691c73fdcfe1
CRs-Fixed: 2499766
1) freq_list value population:
Allocate memory for freq_list within tagCsrChannelInfo
whenever ChannelList is allocated for the same struct.
Populate channel frequencies into freq_list whenever
ChannelList is populated for the same struct.
Free the memory used by freq_list whenever ChannelList's
memory is to be freed for the same struct.
2) Special treatment for sme_rrm_send_scan_result:
To ease the freq_list population within function
sme_rrm_send_scan_result, a parameter(freq_list) has
been added into the parameter list of it.
Meanwhile, all callers of the same function have been
modified to pass freq_list to it.
3) Fix a number of camel cases detected by checkpatch.
Change-Id: I732b084d3e1edfc4f26e7ed44be1c6e826be8602
CRs-Fixed: 2496716
Remove some unused fields in struct bss_description.
Also remove the unnecessary padding fields within
the same struct, as compiler will do automatic
padding for us.
Change-Id: Id754391e20e4dce6261a8df54b12ccdcf31ba5c9
CRs-Fixed: 2497872
The change 2812433 needs revert it got merged with still some
pending comments.
Change-Id: I4555d60bf0c8cea1b3a812063ee24956b07c0d8b
CRs-Fixed: 2499426
In some platform, it reports error "old_credit is used uninitialized".
Initialize old_credit before using it.
Change-Id: I06351bba0abdfc5efb32406d1d245f8d8c658684
CRs-Fixed: 2495209
The SDIO HIF for QCN7605 requires to use the SDIO Abstraction Layer.
Used the SDIO CNSS2 PLD layer api's to interface with SDIO AL
Change-Id: I839a580941e4651e3dcff4f87cda26cc567687fc
CRs-Fixed: 2275631
This is revert of Change-Id: I9a9554ef0aa9288bf5abe22cd2513d8cc41c29d4
When peer_unmap_timer_handler runs for multiple peers, same work
is INITed for multiple peers as this work is not per peer based.
This will update the work param i.e. peer gets updated each time,
which leads in deletion of wrong peer.
Remove the work INIT and scheduling of "peer_unmap_timer_work_function"
as cds_trigger_recover() has already taken care of atomic context.
Change-Id: Ida0a50f27cfe4c08763b359dab51c82e757ec100
CRs-Fixed: 2498498
NAN config param initialization from CFG component is done
during PSOC object created notification. But as per component
design it must be done at psoc open to avoid CFG component
not initialized case. Thus update nan component to reorganize
NAN cfg params init.
Change-Id: I9636b527b796202e55a57c28d604795a705de026
CRs-fixed: 2489286
Add channel frequency(freq) into struct hdd_mon_set_ch_info and
populate its value where channel in the same structure is
populated.
Remove a few camel cases detected by checkpatch.
Change-Id: I5f0d64a88c054476739bc06887bffd37238b10fc
CRs-Fixed: 2496707
For the latest chipsets because of architecture change the
lim session for monitor mode is not required but for the
older chipsets using the mainline the lim session has to be created.
If the session is not created the channel setting to capture
the packets on the monitor interface fails.
Create the monitor session in lim for older targets.
Change-Id: Ide44201e91c2d92cddff66f563898015f9e28ca7
CRs-Fixed: 2498775
Currently when driver gets a command to dump the
driver info, it allocates the memory and retrieves
the information in that allocated memory. Maximum data
that can be copied to user space buffer is equal to
one PAGE_SIZE. In the command driver gets the size of
the data which user space wants to read, minimum of the
user space requested size or one PAGE_SIZE of the data
is copied to user space buffer and current position of
the driver buffer till which the data is copied is
updated to user space is also updated.
Driver copies the retrieved information to the user
space buffer as explained above and updates the position
pointer to the user space. In the next request driver
expects from user space to request the remaining data
from the updated position in last request, once all the
data is copied to user space, driver frees internally
allocated memory.
In case if driver does not get the request to read
remaining data after first request, it does not free
the memory. Current handling of this memory is done
in init domain after stop modules, but since this
memory is allocated in active domain, driver should free
the memory in active domain.
Since with current implementation memory allocated in
active domain is not freed in active domain, memleak is
getting detected.
To resolve above issue, move mem cleanup logic for
driver dump info command from init domain to active domain in stop
modules.
Change-Id: Idb4f35f0a599ad55eebe13348b68562fa401fd7e
CRs-Fixed: 2489877
Replace operationChannel with op_freq for tagCsrRoamConnectedProfile
in files:
csr_api_roam.c
csr_api_scan.c
csr_neighbor_roam.c
Change-Id: Ibb8df79ed7ed4c837e569a7e320a705bbcf522e4
CRs-Fixed: 2497121
The bExplicitCfg bitmap in struct hdd_config was originally used to
track which INI items had been explicitly configured from the INI
file. But now that the INI processing is distributed this bitmap is no
longer used, so remove it.
Change-Id: I101ffa82b3309209cdc2eea954d1467b68b6138d
CRs-Fixed: 2496393
During con mode change the driver will perform pld idle shutdown
and restart and if the interface change timer is running which
results in duplicate of idle stop queueing.
To resolve this, add psoc idle timer stop during the con mode change.
Change-Id: I7befefd2cb996d6b3e0b4ee92ecb15e615d33e30
CRs-Fixed: 2491208
Currently the driver does not update the ACS primary channel,
and secondary channel (in case of 40, 80MHZ) in scan fail
cases or all the channels in the particular band for which ACS came
were unsafe, SRD, DFS, indoor etc., which leads to
SAP bringup fail.
Fix is to update the primary, secondary channels in case of
scan, or select channel fail.
Change-Id: I66ce390f89bf69ee0695526fccbd2d412e0edf87
CRs-Fixed: 2450028
Add freq_list in tagCsrChannelInfo to replace ChannelList
Add APIs to translate between channel list and freq list
Change-Id: I2f086d9371e2ec928bbb47aa2be91d65a206f4d6
CRs-Fixed: 2492624
Currently, only beacons are transmitted to upper layers
in case of external scan. Allow probe responses as well
in external scan.
Change-Id: I23860c761eab82073821274d2c3125487e3abde4
CRs-Fixed: 2494767
When STA receives DEAUTH ind event from target, vdev_id will be
mis-used as PE session ID when invoking lim_tear_down_link_with_ap.
Also enhanced related log for more useful info.
Change-Id: I755e0e170c36205ef20a21955546cc36437c1be4
CRs-Fixed: 2491669
In hdd_set_reset_apf_offload, vdev_id is not assigned before
sending reset packet filter command.
Change-Id: If8c9297f19e19eba01b4415144304b9f744a5de9
CRs-Fixed: 2496035
As for Rome, currently it usually just only support two
IPA interfaces offload, if use the default value 3, which
will cause the IPA pipe setup failure issue. So export
the max IPA interface numbers, and it's better to set
the appropriate value from build file according to
different requirement for different chipset and platform.
Meanwhile, it support SMMU on the sa415 platform, so
enable SMMU for it.
Change-Id: I2de31bcb4d38f5e7964d2cbdc2fc6f143eef510d
CRs-Fixed: 2480627
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in wlan_hdd_assoc.c wlan_hdd_cfg80211.c wlan_hdd_main.c
lim_assoc_utils.c lim_ft.c lim_process_sme_req_messages.c
lim_sme_req_utils.c rrm_api.c sme_api.c nan_datapath_api.c sme_rrm.c,
use channel frequency instead.
Change-Id: I980f74d77af97df2b2ade61250d44a606c76a7ef
CRs-Fixed: 2491488
Host fill netbuf with qtime instead of tsf. In function
"hdd_get_soctime_from_tsf64time", when Host check RX packet
tsf value less than last_target_global_tsf_time, it will
return error. Then, Host will the default value 0 to
upper layer.Sometimes, User will found some packets FW
recvTime is not increasing compared with last packets.
So modify it to calculate qtime from tsf all the time.
Change-Id: Icc53f22b4213fb46ff3bfc3e3df940cb28c632f5
CRs-Fixed: 2485600
Remove currentOperChannel from pe_session. Use curr_op_freq
instead of currentOperChannel.
Change-Id: Ibfa2abd22d3c70ff86c34dd0f5bc538c5c62a5b2
CRs-Fixed: 2490651
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in csr_api_roam.c, use channel frequency instead.
Change-Id: If584dcbd5a6c1718af1902799e1f679898ef3585
CRs-Fixed: 2491396
Host need to fill netbuf with qtime instead of tsf.
This function already realized in Change-Id
"Ib19ac1411c4e17624c012f188297c9f2122642d2".
But it only support STATION RX mode. add the similar
action for SAP RX mode.
Change-Id: Idb3f9da5488b19db48e96258ecb4539b5af3c9a6
CRs-Fixed: 2483566
As per existing design, dp rx mic error information is
posted to HDD via SME. HDD inturn indicates the mic error
to supplicant.
Define new HDD callback hdd_rx_mic_error_ind for
rx mic error, registered through the CDP API
cdp_register_rx_mic_error_ind_handler. This will
enable datapath to directly post mic error info to HDD,
eliminating processing by corestack.
Change-Id: I6561dc5e66e7059c249c1eeeabdbf754989221d2
CRs-Fixed: 2488455
Post rx mic error information to HDD via new HDD mic
error callback(hdd_rx_mic_error_ind) registered to
.rx_mic_error member in dp_ol_if_ops.
Change-Id: Ia1e2b78a94dddba48937995ecf62fb5a7ae4139d
CRs-Fixed: 2488452
rx mic error information is now posted to new HDD mic
error callback(hdd_rx_mic_error_ind) via .rx_mic_error
member in dp_ol_if_ops.
Cleanup the dead code left behind.
Change-Id: I32fd135506382c085755e25cab5af86824cea511
CRs-Fixed: 2488464
Issue:-
Sap does not restart when unsafe
channel event comes, due to the acs mode
flag not set though acs happened.
Scenario:-
Turn on STA on channel number 1.
Turn on SAP on 2.4ghz band.
Make the channel number unsafe.
Observation:-
Sap fails to restart.
Expectation:
Sap should restart on some other channel.
Fix:-
Set the flag before the driver returns the
best channel as the STA channel.
Change-Id: I2cf2f5d3096da04f3c43969b7405b81c743fe2e2
CRs-Fixed: 2492087
While processing vendor command: GET_PREFERRED_FREQ_LIST respective
handler __wlan_hdd_cfg80211_get_preferred_freq_list() do not validate
pcl_len received from policy_mgr_get_pcl() which can be zero when
current regulatory domain is ETSI13 based, gindoor_channel_support=0
and etsi13_srd_chan_in_master_mode=0.
If pcl_len is zero then invalid index is computed in
wlan_hdd_populate_weigh_pcl() when trying to access
chan_weights->weight_list[pcl_len - 1].
To fix this, add zero length check for pcl_len before accessing
weight_list[plc_len - 1].
Change-Id: Ie8bf52fe289634efc104ca674d70fcd1beb6c304
CRs-Fixed: 2492630
Add op_freq in tagCsrRoamConnectedProfile. Finally remove
operationChannel from tagCsrRoamConnectedProfile in next
few changes.
Change-Id: Ie9be4b59483412866d915448b33f8cb6cc9e2d7c
CRs-Fixed: 2489893
Currently btm offload command is sent to FW as part of RSO Start
for all type of roam req reason and btm offload disable command is
sent to the FW as part of RSO STOP. In case of STA+STA concurrency
case, while btm offload is enabled for the 2nd
STA after UPDATE_CFG sent for STA1, the FW asserts because it has btm
offload enabled for STA 1 while UPDATE_CFG and has not deconfigured
it yet. Send btm offload enable command as part of RSO Start in case
of roam_req->reason == REASON_CTX_INIT only to the FW so that it
configures btm for the currently enabled STA only in case of INIT
and re-configures for the second STA without assertion.
Change-Id: Ib146072c7cd0543ea82122702d6585d1d2a2e2d1
CRs-Fixed: 2493122
Add op_freq in csr_roam_profile. Finally remove
operationChannel from csr_roam_profile in next
few changes.
Change-Id: I7a3d7fe7e77b18424f487429aaa19ca1a97b8aba
CRs-Fixed: 2489914
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in lim_api.c csr_api_scan.c csr_host_scan_roam.c
csr_roam_preauth.c csr_util.c, use channel frequency instead.
Change-Id: I86864c73c429c52399819532cd9b957f66ed94f0
CRs-Fixed: 2491406
Currently, QDF_STATUS_SUCCESS is always sent for MGMT
Tx frames to packetdump.
Send the proper Tx status for MGMT Tx frames which is
mapped to packetdump tx status.
Change-Id: I7a780777910a5b9220ebb77cda1e0c4acd9f45b2
CRs-Fixed: 2490243
When wifi is turned off, system suspend might occur during the timer delay,
which would stop the timer and prevent wifi from being turned off, leading
to battery drain. To fix this issue, prevent the suspend and turn off the
wifi before allowing suspend to happen.
Change-Id: Id4fbb13f3ab350b4e2545f65e38d9baaba5ed7ab
CRs-Fixed: 2493487
Add curr_op_freq in pe_session. And finally remove
currentOperChannel from pe_session in next few changes.
Change-Id: I2529a1637299b8dacf7fa6e2a81db851584453ee
CRs-Fixed: 2489613
Kernel maintains a list of bss and it adds/updates the bss
entries whenever driver informs it. When driver receives
beacon or probe response from any ap it informs kernel to
update the bss list and whenever it disconnects with the
AP driver unlink the bss in the kernel.
If the AP is hidden, when driver gets beacon from this
hidden AP it informs the kernel to update the bss list.
kernel add this entry to it's bss list with NULL SSID.
Now when driver receives probe response from this hidden
AP it again informs the kernel to update the bss list,
as this is probe response and ssid is not hidden,
kernel treats this entry as new entry and adds it to
its bss list and links this entry to the older hidden
AP entry (But still these are two entries for hidden AP).
When driver gets disconnect from the AP it unlink the
bss entry corresponding to this AP from kernel's bss
list, but since there are two entries for the same AP
as the AP is a hidden AP, driver should clear hidden AP
entry (Which was added as part of beacon) which is
not happening currently.
Now when AP moves from hidden to broadcasting SSID
in it's beacon, kernel drops this beacon entry as its
confusing because there is already a beacon entry with
hidden bss for this AP. During connection driver tries
to update the entry in the kernel and it fails as kernel
drops the beacon resulting into the connection failure.
To resolve this issue, whenever driver unlink the bss
entries from the kernel bss list unlink the hidden bss
entries also from the kernel's bss list.
Change-Id: I03a8517878b3db769bf28a157579179e1dd762e2
CRs-Fixed: 2488887
For some branches, we disabled BUILD_DEBUG_VERSION, to avoid compile
issues, add macro for new function which only will be used at
QDF_TRACE().
Change-Id: Idd0bb3a98ef92b837e14bd4e8e3c374b1b6a7e58
CRs-Fixed: 2492501
During idle restart, system suspend is happening, which is leading
to timeout because idle restart task is frozen during system suspend.
To avoid the timeout, add a wakelock for idle restart to prevent
system suspend.
Change-Id: Iffb6151452680df8cb4fb98e8646112e780881f8
CRs-Fixed: 2490321
Currently ASPM is not enabled for FTM mode. Enable it to test low power
mode in FTM.
CRS-Fixed: 2491207
Change-Id: I997225d33c94ed870dda2354bac256d9d1ca855d
Add additional bandwidth level for "very high" bandwidth. As per the
default configuration if the total number of tx/rx packets exceeds
bus_bw_very_high_threshold, the bus bandwidth requirement is designated
as PLD_BUS_WIDTH_VERY_HIGH and PLD API is called with this value.
Default value of 7000 is chosen for bus_bw_very_high_threshold, which
amounts to 820Mbps of throughput considering a 1500 byte packet and
100ms bandwidth timer interval.
Change-Id: I3bd904429a02ec4935ba12da7c2cfd37eec738ed
CRs-Fixed: 2489362
Replace channel ID(rx_channel) with channel frequency(
rx_freq) in struct bss_description.
Remove a few camel cases in function
lim_collect_bss_description.
Change-Id: Ic6051fa62d2fe0aa10a6d2a3568aeff75daa813f
CRs-Fixed: 2492155
As requirement, it's also needed to print country code in iwpriv
getChannelList under hostapd mode, align the output of getChannelList
in sta/hostapd mode. At the same time, in __iw_get_channel_list(),
the wrqu->data.length should be (the actual channel number+1), not
sizeof(struct channel_list_info), otherwise there would be many
zeros if call iw_get_channel_list() directly.
Change-Id: I1e0fc1a026bf6c3fff2947ab4712a1800214ec0c
CRs-Fixed: 2476458
wma_roam_event_callback can get called in atomic context from
wma_wake_event_piggybacked for reason WMI_ROAM_REASON_HO_FAILED
which lead to acquiring of pm_ctx->qdf_conc_list_lock mutex lock
in atomic context.
To fix this post msg to scheduler thread to call the policy mgr
API in scheduler thread context
Change-Id: I6b75de64a33559b73a7edc73e1100cfb3a1f507d
CRs-Fixed: 2491147
2G active dwell time parameter is not updated as per
requested duration value from 11k supported AP.
Updated 2G active dwell time scan request parameter
with the beacon measurement requested duration.
Change-Id: I93ab71aea3317e21dab4eccce8c698a6fe3a366d
CRs-Fixed: 2487725
Replace channel ID(channelId) with channel frequency(
chan_freq) in struct bss_description.
Add code for chan_freq's value population in the same
struct wherever channelId's value population occures.
Remove a few camel cases detected by checkpatch.
Change-Id: I84d193b67f642df310997865ec6e1b62e3518f98
CRs-Fixed: 2488826
Replace channel ID(currentReqChannel) with channel frequency(
curr_req_chan_freq) in struct pe_session.
Remove a few camel cases captured by checkpatch.
Change-Id: I56b5d411632ae3b7069fcfac843626435c5b27a2
CRs-Fixed: 2488084
If stop_ap is given to driver in case of SSR and other FW down cases,
because of invalid vdev id and validate context, failure
status is given to kernel. In such case beacon interval value
is not reset and that will lead to faliure of
subsequent set beacon commands.
In case of validate context failure, return success to upper layer
so that kernel variables like beacon interval can be cleaned up.
Change-Id: I03748a87ffcf38a260134a54fe5dce8f77f08739
CRs-Fixed: 2472089
In the htt_ipa_uc_get_resource, rx2_rdy_ring is from
pdev->ipa_uc_rx_rsc.rx2_ind_ring, rx2_proc_done_idx is
from pdev->ipa_uc_rx_rsc.rx2_ipa_prc_done_idx, but
rx2_ind_ring & rx2_ipa_prc_done_idx are not used for
WDI 1.0, just only used for WDI 2.0, which initialized in
the htt_rx_ipa_uc_alloc_wdi2_rsc. So as for Rome that use
WDI 1.0, these two variables are not initialized and thus
they are NULL pointers. Therefore this change can fix NULL
pointer deference for WDI 1.0 when CONFIG_IPA_WDI_UNIFIED_API
is defined and meanwhile QCA_WIFI_3_0 used to distinguish WDI 2.0
and WDI 1.0 IPA RX params.
Change-Id: I0378753dcedde4f398885d930a4cbbb2c854c110
CRs-Fixed: 2483879
In cds_sched_find_attach_cpu function, change calls to functions
cpumask_clear, cpumask_set_cpu, and cpumask_setall to instead use the
QDF abstraction of these functions qdf_cpumask_clear,
qdf_cpumask_set_cpu, and qdf_cpumask_setall.
Change-Id: Ibd62e4d0f38ad3b8f2483e6cf40d56fcb70cba10
CRs-Fixed: 2486827
Current band value is updated with new setting and the new band
setting is allowed only if the new band setting value is lower
configuration than the current one else it fails the new band
setting. If user configures band setting to lower value and
if later setting value has higher configuration then the current
band check fails the new setting.
Remove the current band check during new band setting by runtime
user configuration.
Change-Id: I3facf99e567e34de3eb675f29962bf809040244e
CRs-Fixed: 2486679
Some of softap APIs like hdd_softap_register_sta() contain sta_id
validation check against maximum value of HDD_MAX_ADAPTERS before
accessing adapter->sta_info[sta_id].
Since the maximum size of adapter->sta_info[] is WLAN_MAX_STA_COUNT
and less than HDD_MAX_ADAPTERS (used in sta_id index validation)
array out of bounds access is possible.
To fix this, validate sta_id index against maximum value of
WLAN_MAX_STA_COUNT instead of HDD_MAX_ADAPTERS.
Change-Id: I18390a76a3bee852a9d6ca3dde4382fa94387594
CRs-Fixed: 2486518