Consider STA+STA case where roaming is enabled on one sta.
There is a case where STA1 is roaming to a bssid and there is a
connect request for same bssid on STA2. Here the firwmare would
have already created peer for STA1 peer and STA2 peer creation
would have failed. But at host, since there is no response for
peer creation, the peer would be created for STA2 vdev.
When roam synch indication is received, then peer create fails
at host for the roaming vdev due to duplicate peer detection
logic. Still roam synch confirm is sent to the firmware.
When disconnection is received for STA1, then del bss is sent
for this vdev and firmware asserts as the peer was not created
for this STA2 vdev.
Defer the connect request processing and return failure when
roaming is in progress.
Change-Id: I0892dc567cd17e335b1de3cd5260050f2c1e6b44
CRs-Fixed: 2538389
The vdev subtype is needed to know if the operating
mode of a particular vdev is P2P or not.
Hence add the vdev subtype information in the
vdev handle.
CRs-Fixed: 2498715
Change-Id: Ia9b86bad389825474a0506804e07b7af555d36cb
In case wmi_service_peer_assoc_conf is not enabled the add bss resp
return failure and thus the STA connection fails.
To fix this send proper status to add bss resp in case
wmi_service_peer_assoc_conf is not enabled.
Change-Id: I0aa1de8cfb739e31fc89265766f67fea070d3b17
CRs-Fixed: 2538753
Change the very high bandwidth threshold to 9000 packets. Thus if the
packet length is 1500 bytes and for 100ms bandwidth interval this is
about 1030Mbps. This makes the high bandwidth range 240Mbps - 1030Mbps.
Change-Id: Ia9d5f9e3547148c5dc378a728514c4020649944e
CRs-Fixed: 2527623
Do not enable power save if the user configures the power save to
be disabled. And set the user power save configuration enabled
by default.
Change-Id: I7be3263888ddbe8302d941444b9751df73a4b165
CRs-Fixed: 2533757
Disable the current TWT session and re-enable the TWT if the
current session in FW trigger mode before changing the TWT mode
to host trigger mode.
Change-Id: I7de2126605685c85a240d38356d439cb4be8cce1
CRs-Fixed: 2539353
Currently during sap virtual interface delete, if FW is down then
sap stop bss fails. If sap stop bss fails there won’t be any IPA
WLAN events and ipa ctx will have the IPA interface. But adapter
and corresponding netdev are freed up for delete virtual interace.
As part of FW down system recovery takes place. So while doing ipa
SSR cleanup, ipa ctx ipa interfaces are freed and here during interface
cleanup host accesses the already freed net dev address. So clean up
wlan ipa sap interface in case of stop bss failure.
Change-Id: Ie1ce376e6811eb3cd55dd8dc7b921f82451cd892
CRs-Fixed: 2539863
6GHz channels that are PSC(preferred scanning channels) need to be
marked. Same information needs to be conveyed to firmware as well.
Change-Id: Ib4a59ae7859896704a06f6622f8f742e060b6ca1
CRs-Fixed: 2526783
Enable pktlog when bandwidth is
less than PLD_BUS_WIDTH_MEDIUM and
disable pktlog when bandwidth is
greater than PLD_BUS_WIDTH_HIGH.
Change-Id: I9ee979b08779397bc6d24aca8e241fd64eb93029
CRs-Fixed: 2525901
System suspend can happen very fast(in order of milliseconds) and if system
suspend is disabled by setting gDisableWow=1 in cfg ini file then excessive
console logging from wifi driver can lead to watchdog bark and hence rate
limit the system suspend not supported console logging.
Change-Id: I16a4a7a3d0b64fc404d881469dadb4cab38ef149
CRs-Fixed: 2540524
HDD runtime pm context is only created when fw wmi ready event is received.
Only deinit when fw wmi ready event is received.
Change-Id: I4dda8a95d8a8089693dcbc4dccefbd2079f558f1
CRs-Fixed: 2540580
During runtime suspend there is no need to run the periodic bus
bandwidth timer as there is no data traffic.
Change-Id: I7b53b773e5f9fa2c803e8f4dbb186a30d1dc696b
CRs-Fixed: 2504215
Identify TCP vs UDP Tx traffic to vote differently for system resource.
Accordingly vote for gold cores only for UDP Tx high TPUT traffic.
Change-Id: I27190b92b1be6ebe1574a9941a5de8c43bb59a0b
CRs-Fixed: 2499147
If 6 GHZ channel are enabled; then frequency range needs to be different.
Add new frequency limit if 6 GHz channels are enabled.
Change-Id: Ic8133468d3d6c6c7f7da2e6efb8662d930f69872
CRs-Fixed: 2520198
Fix a possible null pointer dereference in wlan_hdd_cfg80211_ll_stats_get
and _wlan_hdd_cfg80211_get_station if global qdf device context becomes
null.
Change-Id: I02362ae2c60769a562acc42805bd8c4ccac0e887
CRs-fixed: 2536319
Currently the driver uses a global safe channel
list, and also keeps another safe channel list in
policy mgr which results in duplicate copies
of the same thing.
Also there are many possible issues which are seen
if the global list implementation is used.
Issue 1:-
The global unsafe ch list is maintained for each
channel and is updated as part of ACS scan cb.
So if a user does ACS again and again ( SAP on off)
then the result of unsafe channels of the previous
ACS request would be updated as part of the ACS cb
of the new ACS scan request.
In the function of sap_get_freq_list, the driver
filters out the channels which are unsafe, and the
same channels are not chosen as the best channel for
SAP operation.
Now the filtration of the channels would happen
according to the previous ACS request, and the driver
would remove the channels from the ACS scan list.
But those channels were unsafe when the previous ACS
happened, and may not be unsafe now, and can be used
to turn on the SAP (can be chosen as the best channel)
Issue 2:-
If the channels are truly unsafe, then the driver
filters out the channel in the function sap_get_freq_list,
and do not chose them for the SAP.
It may happen that the channel list that the driver
preferred as part of do acs becomes unsafe, and the
channels that were unsafe at the time of do acs becomes
safe while the driver was scanning the ACS channels to
find other APs.
Now since the channels that were unsafe at the time of
ACS req are safe now, they could have been chosen as the
best channel but they were not scanned, so the ACS channel
weight of these channels would remain maximum, and they
would be sorted at last of the sorted list.
Also the channels that were as part of the ACS channels list
became unsafe, hence the driver would also assign maximum
weight to them, and they would too become unusable channels.
This would result in all channels having the same weight that
is maximum weight, and so the sorting algorithm does not have
to sort any channel now since all of the weights are same.
The first channel in the sorted list would be channel number
1 of 2.4Ghz, and would get chosen, but this may not be
correct if the HW mode is 5ghz only.
Fix:-
Safe and unsafe channels can be checked by using
policy mgr safe channel list too, so it is better
to keep just one unsafe channel list.
The driver would not filter out the unsafe channels
for ACS scan, and would filter out the unsafe channels
as part of the ACS scan done callback.
Change-Id: Ief236db9e73864e5cb2d290a8106799f9e80f82d
CRs-Fixed: 2530241
Add support for WMI over QMI to reduce power consumption for
periodic stats report.
Change-Id: Iec725b357d9bcfa33029aedf7c568814499bc130
CRs-fixed: 2521826
Protect pld_del_dev function as part of psoc transaction
to avoid race condition with pld_deinit.
Change-Id: I3180801308b9a5e85822fb8d8bc04a9ecb42b347
CRs-Fixed: 2530822