Add feature to trigger host crash when firmware
fails to send the response and host timesout.
Change-Id: I47f23e03f2729981a346e2a9e8c8541ba9119af4
CRs-Fixed: 1078192
With AUTO ROAM issue, Supplicant disables roaming to other BSS
and expects driver/firmware to re-associate to a specific BSS.
Currently, host driver sets RSO to STOP[disable LFR3] completely
when supplicant invokes disable roaming and when subsequent connect
comes from supplicant, host is doing disconnect and connect.
This fix adds provision to invoke LFR3 reassociation even when
RSO Stop is issued previously to firmware. It is achieved by setting
WMI_ROAM_SCAN_MODE_ROAMOFFLOAD along with WMI_ROAM_SCAN_MODE_NONE
in mode of RSO Stop command.
Change-Id: Iaa8bb455b3b61adac725beca4494ed792ca00fe0
CRs-Fixed: 1078139
Propagation from qcacld-2.0 to qcacld-3.0.
It is the regression issue caused by ChangeId
I6223ab27c2285c53c45fd388bd56cadc6d348324. When changing
the TX_WAKE_THRESHOLD to TX_WAKE_THRESHOLD_NEVER, the
function wmi_unified_set_sta_ps_param will set
iface->ps_enabled to FALSE. Because of this in function
wma_set_vdev_resume_dtim, "iface->ps_enabled == TRUE"
check fails which is not expected.
To mitigate this issue, remove the unnecessary code
related to iface->ps_enabled.
Change-Id: I59a8b150cf8383bf265c048c9fa1b26646e68dc0
CRs-Fixed: 1039904
qcacld-2.0 to qcacld-3.0 propagation
If SAP interface is up then STA interface can't find
the AP most of the time as a result of SCAN parameters
are getting set to 28ms active dwell time and 0
repeated probe (which means only 1 probe for 28ms of
active dwell time).
Test results suggest that 1 Probe request through out
the active dwell time in noisy environment is not good
enough, so sending two probe requests with each 11ms
apart would make the scan results little better.
Implement above suggested solution by changing
probe_time_dwell_time_map's repeated probe time to
11ms so that n_probes (number of probes) becomes 2
by n_probes = (dwell_time_active/repeat_probe_time)
= (28/11) = 2.
Change-Id: I8a3f3dbaf70c666973454e3266e0dabe0df1c9ea
CRs-Fixed: 992655
When firmware sends WMI_ROAM_REASON_HO_FAILED event to host,
it has already deleted the peer. Host should not send peer
and vdev cleanup commands to firmware.
Add disassoc_reason field to roamCmd to indicate that CSR wants to
disconnect because of ROAM_HO_FAIL. Copy that information to PE
session, send it to WMA using WMA_DELETE_BSS_HO_FAIL_REQ.
Add wma_delete_bss_ho_fail() to take care of driver state cleanup
without sending commands to firmware.
CRs-Fixed: 1083649
Change-Id: Icdd7571214ea5510c0cdbc44c69d6b5060f5892c
Platform driver flags should be hiden behind PLD layer only. Hence
remove them in WMA layer.
Change-Id: Icee457715bd26e23c489dfefd35999b278ff68c0
CRs-fixed: 1082183
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in core/wma.
Change-Id: I1f270e6b0ba4666d1640b1bf1d1c8e5dbc51e968
CRs-Fixed: 1081656
qcacld-2.0 to qcacld-3.0 propagation
If a station does not send anything in sta_inactivity_timeout, an
empty data frame is sent to it in order to verify whether it is
still in range. If this frame is not ACKed, the station will be
disassociated and then deauthenticated.
Change-Id: Ib86c9aacdb52141890b224262d55abbe58b1604d
CRs-Fixed: 1020078
qcacld-2.0 to qcacld-3.0 propagation
Add data structures to save short_retry_limit and long_retry_limit.
long_retry_limit is count to retry frame at current rate.
short_retry_limit is count to retry frame on lower rate.
Add changes to pass these params to firmware as well.
Change-Id: Icb45c37358dcfacbea8e3b3f40b93189d62e1be4
CRs-Fixed: 1020078
qcacld-2.0 to qcacld-3.0 propagation
Add data structures to save tx_pkt_fail_cnt_threshold and changes
to pass the same to FW.
Change-Id: I46dc401c26c3eeeb41b345d0fe1b4406394971fb
CRs-Fixed: 1020078
unlock chan_lock before return in wma_dfs_indicate_radar function
in failure case.
Change-Id: I389d6479d2cd048b636230b38f135471acd38d00
CRs-Fixed: 1082162
(cherry picked from commit 41e358802ddc6722e4f1bf37b8c68ceab5e5fee5)
In wma_mgmt_tx_bundle_completion_handler function fix validation code from
logical AND to OR, to fail validation if any of the two input variable are
invalid.
Change-Id: I835b4d4bfb966e313c9ab05fb9fd57b10925d506
CRs-Fixed: 1082162
(cherry picked from commit d1c9e067b250fe75257164e1db7e363db583d49b)
If WLAN FW crashes while in suspend mode then kernel tries to
resume the driver and WMA sends resume indication to WLAN FW and
waits for the response from WLAN FW. Since FW is already crashed,
there will not be any response from WLAN FW and wait logic waits
for the timeout before bailing out. This may cause delay in
completing the recovery and may cause other race conditions
becuase of that.
Register for shutdown notification so that call back would be
called during recovery and resume event can be set to make sure
resume thread doesn't just wait for the FW response.
Change-Id: Icdd78479dd4072eabf29e7b0664d328553bfa1ad
CRs-fixed: 1079299
(cherry picked from commit 9e493ade1c08204fcfff51c66d135803d830fa60)
Add feature flags for DISA functionality in SME and WMA layers
Change-Id: I9fe33083469a2169cd06206e85d7965405d4a728
CRs-Fixed: 1076941
(cherry picked from commit 3c85d965eec08da145a26fc2ceefdaf8dcfb4df0)
Propagation from qcacld-2.0 to qcacld-3.0.
Add changes to send 32 tx/rx packets to HAL layer during connection.
This can help in debugging connection related issues.
Change-Id: Icd08475c3f81aa182c902b8e8defbdb904c5509d
CRs-Fixed: 959645
(cherry picked from commit 45416eeee7dde24f1456e0c2b667e8147742f054)
qcacld-2.0 to qcacld-3.0 propagation
Currently tx_frm_download_comp_event is used in Mcthread and destroyed
in wma_stop, when wma_stop is called, Mcthread has not exited yet.
In stress test, this event is destoryed but Mcthread is still using,
so crash occurs.
Solution is that destroy event in wma_close to avoid the case that after
destroy this event is still used.
Change-Id: I7d4e97ab261f586edfb90268544a2cda4e90a0b2
CRs-Fixed: 958906
qcacld-2.0 to qcacld-3.0 propagation
This change fixes the connection issue in ap+ap mode.
One peer may connect to the second ap while another ap
still has the connection with this peer, so the same
peer may be created twice.
Change-Id: I898ec326fb8cf080e8fa0b4737c897fc790633a0
CRs-Fixed: 955241
Propagation from qcacld-2.0 to qcacld-3.0.
Error level logs should be used only for error conditions.
Add changes to move unwanted logs to info level.
Change-Id: Ib5b3e1235ad36cf0594291f33e84758261e4d422
CRs-Fixed: 1049765
Implement iwpriv pktlog command to change the pktlog buffer size.
This command is effective only if pktlog disable is issued previously.
This command needs two argument. First argument should be "3" which
denotes to set the pktlog buff size. Second argument should be the
pktlog size which user wants to change.
For eg, "iwpriv wlan0 pktlog 3 2" will change the buffer size to 2 MB.
Change-Id: Ifa27916667198c3fdc1c51d0e38564869405e041
CRs-Fixed: 1072584
Changed the API to support per vdev firmware statistics.
This API change is needed by the WIN team.
Change-Id: If50a767e031e6f203abc01e3dfa26dc59249bb95
CRs-Fixed: 1057751
Remove redundant request get_rssi and get_snr from function
__wlan_hdd_cfg80211_get_station. Get Stats request being sent
to firmware in same function is super set of these two request.
Change-Id: I3b478db41da10d9112437415be4775d07decb550
CRs-Fixed: 1078877
Enabling flow steering may send the peer map/unmap events
from the target to the host in a random order.When host
does not receive them in expected sequence, there is an
issue with peer management.Fix the issue by making the
firmware send the events through a single copy engine in
the same order they were generated and thus host can handle
the events properly
Change-Id: If2396a0bf943f2833e1e3a44d778054a76c65ada
CRs-Fixed: 1078976
This is a qcacld-2.0 to qcacld-3.0 propagation.
The issue is when host re-enables QPower after resume, it is setting
WMI_STA_PS_ENABLE_QPOWER to 1 (which is for QPower = 2) always and never
WMI_STA_PS_ENABLE_QPOWER to 2 (which is for QPower = 5).
This means one suspend/resume is enough to disable QPower = 5 and
change to QPower = 2.
Fix this by removing the hardcoded value of 1 and use qpower_config instead.
Change-Id: I553c1691d5d7e98c2db8c9e56e2ba68ae27af506
CRs-Fixed: 1040737
When both host and FW support a new partition, FW uses host use
the new parition HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN.
If FW doesn't support a new partition, host falls back to use old
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN.
Handshaking is done through WMI_READY and WMI_INIT.
Change-Id: I974c931e1b4b2d84e809ec19537a09b679932568
CRs-Fixed: 1072812
Add support to log firmware version sub id
in the logs and iwpriv command 'version'
Change-Id: I1eaad763da55007d34e243509204acf12ec79955
CRs-Fixed: 1077115
In case of scan abort FW does not send WMI_SCAN_EVENT_COMPLETED
event and directly sends WMI_SCAN_EVENT_DEQUEUED or
WMI_SCAN_EVENT_START_FAILED. In this case the scan id does not
get clear and hence block Host from power collapsing.
Include WMI_SCAN_EVENT_DEQUEUED and WMI_SCAN_EVENT_START_FAILED when
accounting for completed scans, and change to tracking pending scans
with a counter instead of individual Ids.
Change-Id: Iaa2977dd5899d214251cbf4f1f8caf768725f538
CRs-Fixed: 1077518
qcacld-2.0 to qcacld-3.0 propagation
Lot of stats related info logs are periodic and cause log spam.
Add changes to remove excessive logs.
CRs-Fixed: 1066273
Change-Id: I7064630c9ee4e01eafe0b5f00626aa6f20c0403d
Fix various compilation issues coming when LFR3.0 is
disabled by undefining WLAN_FEATURE_ROAM_OFFLOAD macro
in Kbuild.
Change-Id: Id483dc9fcc57d359f13b385dd655e34c1823a77f
CRs-fixed: 1071087
SME is calling wma_set_cts2self_for_p2p_go directly.
No need to post message to MC Thread.
Change-Id: I335b1c8a6289560dbe6c0a3ccce60695922ff3ed
CRs-Fixed: 1075981
qcacld-2.0 to qcacld-3.0 propagation
Make the following enhancements to the EPNO feature:
1) Implement the reset EPNO command handler
2) Add new parameters for candidate score calculation.
Change-Id: Iad1ff9c2b003c9e3ddbc3373366686040ccb55ca
CRs-Fixed: 956649
Add RA Match and Magic Packet to the list of wakeup reasons that cause
packet contents to be dumped to the log durring wow wakeup.
Change-Id: Id7d5474b0d288ebaae3666e8da0dacc6eda4dc69
CRs-Fixed: 1076574
This is a qcacld-2.0 to qcacld-3.0 propagation.
Remove unnecessary logs and merge some of the logs together.
Change-Id: Ibf9fdf0a92cc71644f02d6890574eeed0d175d6f
CRs-Fixed: 1023849
The original qpower vendor command implementation incorrectly configured
the qpower setting in firmware. Cleanup the implementation.
Change-Id: Id84eb7cf579a29da30f3366edef24821fcd5be55
CRs-Fixed: 1075582
Change ASSERT to BUG_ON when wait for WMI_SERVICE_READY_EXT_EVENT times
out in insmod thread.
Change-Id: Ie666fd0881969a503e6b3635cdc5bb7f223776ec
CRs-Fixed: 1075166
The enhancement is to add SBS (Single Band Simultaneous)
support in hw_mode_list.
The WMI HW Mode definitions are redefined to use only
for host purpose.
Change-Id: I8b8c966b0130964c8e7de7967766629c955209d3
CRs-Fixed: 1072234
Roam_synch indication processing in host performs peer detach/attach
operations after firmware has already moved to the new peer. Out of
sequence peer unmap and map events can mess up the reference count
for reused peer_id values, which can lead to crash.
Solution:
While detaching a peer during roam sync indication processing,
copy its peer_id_ref_cnt in peer_id_to_obj array to new variable
in the same peer map for that peer id. Peer is deleted at that point.
When the unmap events come in, decrement the old ref_cnt and
map events increment the real ref_cnt.
Once the old ref_cnt goes to 0, subsequent unmap operations apply to
the real peer.
CRs-Fixed: 1063177
Change-Id: I9b20f28f17dea1647a213b9f36060109264addf0
WMA qpower API wma_set_qpower_force_sleep is obsolete and is no longer
used. Clean up unused API wma_set_qpower_force_sleep.
Change-Id: Iad32be5e11c345a542b8f8f6660987a4aff837c7
CRs-Fixed: 1075289
qcacld-2.0 to qcacld-3.0 propagation
Dump state information of HDD, SME, PE and WMA layers
into a buffer. Contents of this buffer will be copied
into user space using proc entry /proc/debugdriver/
driverdump.
Change-Id: Ifbb102e440d7df20defa1a397964cb9b55082bf9
CRs-Fixed: 955357
qcacld-2.0 to qcacld-3.0 propagation
Add changes to set Tx/Rx aggregation size. Also, add ini parameters
for Tx/Rx aggregation sizes.
Change-Id: Ia5811bf7cf7081989fde5c8cdcca84b42120b90c
CRs-Fixed: 990161
qcacld-2.0 to qcacld-3.0 propagation
If SME posts message to WMI after vdev_detach happens,
there can be a race condition.
In this case VDEV_SET_PARAM will be called after VDEV_DELETE.
Fix this with introduction of new Boolean flag "is_vdev_valid" which
will be true after VDEV_CREATE is done. This flag will be false
when deletion of vdev happens.
WMI will do VDEV_SET_PARAM only if "is_vdev_valid" true.
Change-Id: Idffd0979bd9bdefa1225d2ea6a24180d81000f48
CRs-Fixed: 964146
Driver updates its hw_mode_list entries as per hw_mode_list
given by firmware during WMI_SERVICE_READY_EVENT.
The enhancement is to update hw_mode_list entries in the driver
using the values received in WMI_SERVICE_READY_EXT_EVENT from
the firmware.
Change-Id: I5e4d97523cb7fd018767d5d2fda841f03b2406f6
CRs-Fixed: 1070005
qcacld-2.0 to qcacld-3.0 propagation
In this feature,
1) When a legacy client connects to P2P GO, Host will indicate FW
to stop NOA and start CTS2SELF.
2) Ini Support for this feature.
Change-Id: If76d8ef454633d9a02dd6057b5d6ca3e9e639ea4
CRs-Fixed: 932264
qcacld-2.0 to qcacld-3.0 propagation
Presently, in BPF set_offload structure and the filter program are
allocated separately. In certain error paths the program is not
freed correctly because of which there can be memory leaks.
Have a single allocation for the set_offload and program to avoid any
memory leaks.
Change-Id: I097d3408cc89c26e015fd6aee8668f53e8f64cf7
CRs-Fixed: 1006522
qcacld-2.0 to qcacld-3.0 propagation
If P2P-GO stop comes during ROC, it may cause WLANSAP_StopBss
API to fail. ROC is stuck as firmware is running Gscan which
is higher priority than p2p ROC scan prioirty.
This causes ROC command to be stuck in the active list for 10
seconds and will eventually cause a crash in FW when host will
try to add self peer since older peer is still present in the
FW with same mac address
Add change to increase the priority of P2P scan and cancel ROC
before calling stop AP API.
CRs-Fixed: 1065161
Change-Id: I3a62234596c8c2acc0155b483847b9adc159d757
qcacld-2.0 to qcacld-3.0 propagation
IE's numbers are not set correctly in beacon filter API.
Add changes to correct this.
Change-Id: Ib489b0fc7bc1f0a2b7414f59ed325deecb65bb8e
CRs-Fixed: 1030084
qcacld-2.0 to qcacld-3.0 propagation
TDLS connection will teardown in host on receiving teardown
event from Firmware. But if host is in WOW mode then host will
not receive teardown event from FW.
To fix this issue add TDLS connection tracker event changes in WMA.
Change-Id: I3a305e95410d2884b41e9e4183ed4eeabd733f9d
CRs-Fixed: 991993
Null pointer dereference due to duplicate vdev
detach call.
Vdev detach is triggered as part of the delete
self sta but in failure scenario del bss request
timeout handler also called the vdev detach
which triggered NULL pointer dereference in OL layer.
-Fix the del bss request timeout handler by adding
more condition checks specific to P2P as the changes
are related to P2P.
-Remove vdev stop from the vdev start timeout
handler.
Change-Id: Ibe848c89823efbb10f7dcc193157189106ba238b
CRs-Fixed: 1070817