Currently driver passes sta_id through out the call for getting the SNR
stats. Although passed, the sta_id is not used anywhere in the call
stack. As part of removing the sta_id usage, this sta_id can also be
removed safely.
Remove the usage of sta_id in get SNR stats path.
Change-Id: I39482d8f6d8e3bd32e940a85d5592dada8f0460b
CRs-Fixed: 2503956
Currently the function hdd_get_peer_idx is not being called from
anywhere. As the use of sta_id is being depreceted, the function can be
safely removed.
Clean up the unused function.
Change-Id: I6896d03ad2e8b427147e2259b737836cd3f44ca0
CRs-Fixed: 2484699
When FEATURE_WLAN_AP_AP_ACS_OPTIMIZE enabled, it will allocate
memory in INIT domain (wlan_hdd_startup), and free in ACTIVE
domain (hdd_wlan_exit).
Move to wlan_hdd_start_modules/wlan_hdd_stop_modules to avoid.
Change-Id: I0fd93baa306a136af2faa7af9dcccfb709984ef9
CRs-Fixed: 2505462
If firmware doesn't support 5GHz band then ieee80211_supported_band
structure for HDD_NL80211_BAND_5GHZ is not allocated in wiphy and in
wlan_hdd_update_ht_cap() trying to derefer member-fields of
ieee80211_supported_band[HDD_NL80211_BAND_5GHZ] without NULL check is
causing NULL pointer exception.
To address this, add NULL check for 2GHz and 5GHz band pointers.
Change-Id: I8aa93b9cbe26ce674563505e222f5cb2aa970051
CRs-Fixed: 2503133
Remove operationChannel from structure csr_roam_profile, remove
the code where value assigning to operationChannel take place.
Change-Id: If7cd64d4d7513000181f92faabd6c863341c71f9
CRs-Fixed: 2503043
1) Remove channel from struct hdd_mon_set_ch_info. All client
code will use freq within the same struct from now on.
2) Replace the usage of channel ID(op_chan) with channel
frequency(op_freq) in function hdd_mon_select_cbmode's
parameter list.
3) Fix a number of camel cases detected in function
hdd_select_cbmode.
Change-Id: Ib7c1ee453b34647e983749a713b33017b92103ac
CRs-Fixed: 2504779
After got restart channel rsp from fw, vdev state will change
as: ST-RESTART_PROG->ST-CONN_PROG.
In lim_send_sme_ap_channel_switch_resp, if channel is non-dfs,
vdev state will change to up; if dfs channel, later it will
change to DFS CAC when starting cac timer.
Current issue is if there is ap stop after restart channel rsp,
while processing WLAN_VDEV_SM_EV_DOWN, there is no hanler in
ST-CONN_PROG > ST-DISCONN_PROG.
From design perspective, In SAP, ST_CONN_PROG is a dummy state,
ideally, SAP state should change as below without preemption :
RESTART_PROGRESS->CONN_PROGRESS->UP
RESTART_PROGRESS->CONN_PROGRESS->DFS_CAC_WAIT
To fix issue, change vdev state to DFS_CAC_WAIT in
lim_send_sme_ap_channel_switch_resp; So WLAN_VDEV_SM_EV_DOWN will
be handled in DFS_CAC_WAIT state.
At the same time, set DFS_CAC_WAIT when starting SAP, and clear
sap_move_to_cac_wait_state in sap state machine.
Change-Id: Iee89521471e456a553f40577da6d1e69aef3b803
CRs-Fixed: 2501339
Currently the driver choses a default channel for SAP
in case of failures, logic of which is incorrect as
it does not take into account the hw mode, and all
other checks such as SRD, unsafe, DFS etc.
The channel chosen after this maybe not as per
expectation.
Fix is to chose a default channel from the acs channel
list itslef so that the checks of SRD etc. ae honored.
Change-Id: Ife8a6b88938fd566bed92a5bde1cb0fe34a45462
CRs-Fixed: 2476351
Currently the driver sends the CSA IEs in the
beacon every beacon interval, and updates the
CSA IE count in every beacon.
If the wlan gets suspended in between the
updation of CSA IEs, the CSA is delayed
till the next resume, which could lead to
STA kickout event, if there is delay between
the CSA period, and the channel switch time.
Fix is to take a wakelock till CSA is completed
in order to avoid the STA kickout.
Change-Id: Iff03476433c755cbddc7568ffbd24ddb81fd1c90
CRs-Fixed: 2504039
Currently the driver checks whether the device
supports antenna sharing, and if the AP is added
in the OUI framework, then the driver modifies the
nss value to 1 to avoid sending SMPS to the peer AP.
Now suppose the device does not support Antenna sharing,
but supports DBS and is helium HW, then going to DBS HW
mode would result in peer sending a SMPS frame to the peer
as the helium HW only has two antennas, and one is needed
by each MAC now.
Fix is to add a third param in force 1x1 ini which would
decide the driver should consider the antenna sharing as
mandatory or not.
Change-Id: I3ae00fcbd642c7780952d66ccbf1208335fcb077
CRs-Fixed: 2496831
After sending the wmi_peer_delete command to FW. If there
is a change in channel info of HT cap from connected AP.
Then TDLS peers in lim will be deleted and dph entry will be
freed.
While processing the tdls del sta response from FW
if dph entry is NULL then WLAN_SER_CMD_TDLS_DEL_PEER is
not released and that can lead to active command timeout.
Release the serialization command in case of NULL dph entry.
Change-Id: Ib56806875cc84a0ecb9bcab16e9e0bb9d118efbb
CRs-Fixed: 2503993
Check if the configured tdls offchannel through IOCTL
is supported or not. This is required if firmware
does not support 5G channels or any invalid channels
Change-Id: I49e3b7b758fddf22fbfe1b64dda2e4f47a27cf3b
CRs-Fixed: 2503913
On wlan suspend, kck sent as part of gtk offload request
is not populated properly since the kck_len is not
updated when caching the gtk request resulting in all
zeroes kck.
Fix is to update kck_len when saving gtk offload
request.
Change-Id: I9e4430565a04cff6da7f06d23a9542a2f53568b0
CRs-Fixed: 2502131
Currently the driver sends a unicast probe request
to the BSSID which is blacklisted, which in turns
violate the SPEC, as the BSSID maybe rejected as
part of OCE assoc reject.
Fix is to check if the BSSID is blacklisted, don't
go for unicast probes.
Change-Id: I14f283d7425d40706cef29db38b48333ee9a7fff
CRs-Fixed: 2500273
If no channel is found suitable for ACS, don't scan
all the channels as done currently by the driver, and
send ACS fail code to the userspace as SAP cannot be
started on the band specified by the use.
Change-Id: I18edff6aaf384384841487d06474fd5fba28fc2f
CRs-Fixed: 2476347
Currently for NDI interface bus bandwidth timer is not
started. As part of this change start the timer when new
ndp peer is created and stop the timer when last ndp peer
connected is deleted.
Change-Id: Ia710ec9872636ee3cefa30815692c2f8c9816687
CRs-Fixed: 2499548
Fix the compilation issues passing proper parameter to the function
wmi_unified_thermal_mitigation_param_cmd_send.
CRs-Fixed: 2501080
Change-Id: I9ce0038ef2844536612f0bf71314dbc214f354d9
Currently, get_tx_power is given for all interfaces but FW may
not respond for interfaces like p2p device mode or NAN.
Allow cfg80211_get_tx_power only for STA/P2P_client associated
state and SAP/GO started cases. In rest all cases do not give
this command to FW.
Change-Id: I01ff4f11c35ca00183002d2d1c2c481f3bea77c6
CRs-Fixed: 2502905
Get station stats API will be periodically called from upper layer so
in order to save power, instead of waiting for inactive timer to fire,
suspend right after everything is done.
Change-Id: I452ac3631d6799ffdcb1d09ff71afb2730b92b59
CRs-fixed: 2502391
Modify the nud tracking ini so that the driver
does a disconnection/roaming after NUD failure
is detected.
According to the ini specified, the driver would
either disconnect or do roaming.
Change-Id: I6af1c819322a702605d92ada735298a124127533
CRs-Fixed: 2497153
Associating peer's phymode is not allowed to be highter
then sap's. If it is, set the peer phymode equal to sap
phymode.
Change-Id: Ia8152ce27fb8ddf2bbff5139d3b8d89c811d7ed0
CRs-Fixed: 2500383
Do more frequency list population in a number of functions
to make sure the resulting tCsrChannelInfo structures
have the right channel frequency info.
Meanwhile, enlarge the buffer allocated for freq_list in
csr_roam_copy_profile to make sure all channel frequencies
can be replicated.
Change-Id: Ia8b90581211d657851e1d8fc2556dcb633c8001a
CRs-Fixed: 2500236
In case bss peer add failure vdev state machine is in
substate WLAN_VDEV_SS_START_START_PROGRESS and thus
WLAN_VDEV_SM_EV_CONNECTION_FAIL will not be handled and thus vdev
SM will not move to init state and pe session is not deleted.
This lead to vdev ref leak for the ref taken by pe create session.
Fix this by sending WLAN_VDEV_SM_EV_START_REQ_FAIL event when
vdev SM is in WLAN_VDEV_SS_START_START_PROGRESS state and continue
cleanup.
Change-Id: I4c559333a6bd018e3382f9781883acf314434cf2
CRs-Fixed: 2502817
FW sends vdev stats on vdev down, current host
implementation does not process this event as host is
only processing the stats events for which stats are
requested.
On vdev down FW sends the last available vdev stats and
based on that host updates it's RSSI on disconnect.
With CP stats infrastructure host is not processing
this event and is not updating rssi on disconnect.
To resolve this issue, add support to get last available
vdev stats from cp stats component with the help of a
callback registration.
Change-Id: If0741281140509624f6fdda4a270d99e2f58b61a
CRs-Fixed: 2493965
As part of 6GHz regulatory update, channel numbers are
getting updated to corresponding frequencies, in this
update add frequency element in struct sSirMacChanInfo.
Change-Id: I1a18111a2b073164677b32fb6febc947df043bf2
CRs-Fixed: 2500361
Because newest firmware codes already been changed, the previous
coex configure command are invalid. Firmware need host driver
to enable WMI_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY service during
wlan init. Add a new parameter "gThreeWayCoexConfigLegacyEnable" to
initial config file. If this parameter value is zero,set coex
priorities command will return error.
Change-Id: Ief1617e2ba5363e276c55135198613a0e54b71d5
CRs-Fixed: 2482734
In case of failure in vdev stop response from FW, Along with
triggering SSR call the del_bss_response so that FW can clear
the bss peer.
Change-Id: Ibbf43f15796a9a13f922091d49fa6a22838aeaaf
CRs-Fixed: 2498497
Remove channelId from struct bss_description, and remove the
code where value assignment to channelId take place.
Change-Id: If37aca5f3e2211a73d546444aad2e5f9a4bada0a
CRs-Fixed: 2497438
Replace pre_cac_chan with pre_cac_freq and mon_chan
with mon_chan_freq in struct hdd_adapter.
Change-Id: I413ff83c244e1ebb7deaa2dec52df76b4b957f53
CRs-Fixed: 2496812
Remove operationChannel from structure tagCsrRoamConnectedProfile,
remove the code where value assigning to operationChannel take place.
Change-Id: If6c034e39c63fd78e6f08ff3daa85e0432438cff
CRs-Fixed: 2499775
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