Add new ini to configure required parameters to trigger
disconnect/idle roam scan:
1.enable_disconnect_roam_offload
When this ini is enabled firmware will trigger roam scan
and roam to a new ap if candidate is found and it will
not forward the deauth frame to the host driver. If
roaming fails after this deauth, then firmware will
forward the deauth frame to the host. If roaming is
successful, we will follow the normal roam synch event
path.
2.enable_idle_roam
When this ini is enabled firmware will trigger roam scan
and roam to a new ap if current connected AP rssi falls
below the threshold. To consider the connection as idle,
the following conditions should be met:
1. When user space sends "SET SUSPENDMODE"
command with value 0.
2. No TX/RX data for idle time configured
3. Connected AP rssi change doesn't exceed the
threshold
4. Connected AP rssi false below minimum rssi.
3. idle_roam_rssi_delta
RSSI change in current connected AP above/below which
idle roam scan will be triggered if other criteria is
met.
4. idle_roam_inactive_time
Time duration in milliseconds for which the connection is
to be considered idle.
5. idle_data_packet_count
number of tx/rx packets below which the connection is
idle.
Change-Id: Ibd1c91656ecd681f8dc83bc77197668a7f3bfa3f
CRs-Fixed: 2427132
During LFR3 driver post the message to add the scan entry in
scheduler to scan module and continue with roaming and send roam
event to CFG layer. Also it set the new AP' scan entry in scan
module as associated, to avoid age out of the entry.
Now as the message posted to scan module will get schedule after
roaming is complete, if new AP's entry is not present in CFG scan
cache the roam indication to CFG may fail. Also if it's not present
in the driver cache the new AP's entry may AGE out and channel will
not be added in occupied list, used for roaming.
Thus update the scan entry in scan module and CFG in same context.
Change-Id: I2c5f165b43d48a0b0b54fdf08a0e53b31fac07aa
CRs-Fixed: 2435410
Currently, while processing the beacon report req and response the
measurement duration units changed from MS to TU and TU to MS
respectively.
Avoid this conversion as both are close units.
Change-Id: I663b7c8969904a373461fb80c7d505c96e74b48f
CRs-Fixed: 2431912
In SAP if a peer is disconnecting, so CSR roamstate is set to
eCSR_ROAMING_STATE_JOINING. Now if at the same time another peer
is trying to connect, eWNI_SME_UPPER_LAYER_ASSOC_CNF will be dropped
in eCSR_ROAMING_STATE_JOINING state.
Fix this by processing eWNI_SME_UPPER_LAYER_ASSOC_CNF in
eCSR_ROAMING_STATE_JOINING state.
Change-Id: I7d4347013eca494e537aaeb4468814238cb3fca6
CRs-Fixed: 2430840
Memory optimize for QCS403 platform, 1x1 chip. Reduce CE1 htt data
dest ring buffer from 512 to 256, reduce CE2 wmi dest ring buffer from
128 to 64, reduce CE9 & CE10 desg ring buffer from 512 to 64, disable
CE11 pktlog. Note: this change only affect specific WLAN build config for
extremely saving memory, for debug purose, there is another build
selecting default WLAN config for reference HW.
Change-Id: I868e74b09cdb11df3dccaa3f9e051da55724983d
CRs-Fixed: 2432631
Add update_status callback to pld usb which will be called by
CNSS to update WLAN FW status(FW-DOWN, RECOVERY)
Change-Id: I159e09eac8bdb75525c64e7b42c3315141ec1f8d
CRs-Fixed: 2430265
Since os_if_psoc_trans_wait may sleep on a wait event if there is any
active ongoing transition on driver, psoc or vdevs. Hence move the
os_if_psoc_sync_lock(a spin lock bh) inside sync calback API for psoc
look up such that spin lock is not held before starting the wait on
event. os_if_psoc_sync lock is for psoc look up and not for wait
and hence this fix makes locking fine granular as well.
Change-Id: I0537604337a6b594be3e7dc34dc97b79d5987ad4
CRs-Fixed: 2433409
Enable CONFIG_HOST_OPCLASS to include supported
operating class feature in host driver for genoa.
Change-Id: I44d6a3aa7c1c3372186532f7ff1f4353aba41350
CRs-Fixed: 2429681
Define PLD APIs for idle shutdown and restart such that platform
driver can serialize PSOC idle shutdown and restart with driver
load/unload and SSR shutdown/reinit.
Change-Id: I4e772343fbccb099b9af104ac978dcdb650a567a
CRs-Fixed: 2431405
Validate cfgLength to the upper bound before using it in copy
inside csr_get_cfg_max_tx_power()/lim_get_dot11d_transmit_power.
Change-Id: Ibcc1f145db9b902a29a0332553323d0a3ac6b2ff
CRs-Fixed: 2423707
Since os_if_vdev_trans_wait may sleep on a wait event if there is any
active ongoing transition on driver, psoc or vdevs. Hence move the
os_if_vdev_sync_lock(a spin lock bh) inside sync calback API for vdev
look up such that spin lock is not held before starting the wait on
event. os_if_vdev_sync lock is for vdev look up and not for wait
and hence this fix makes locking fine granular as well.
Change-Id: I2cca560aeed9b79648168a09f596dbaa374ecbb5
CRs-Fixed: 2433829
Since os_if_driver_trans_wait may sleep on a wait event if there is any
active ongoing transition on driver, psoc or vdevs. Hence move the
os_if_driver_sync_lock(a spin lock bh) inside sync calback API for driver
look up such that spin lock is not held before starting the wait on
event. os_if_driver_sync lock is for driver look up and not for wait
and hence this fix makes locking fine granular as well.
Change-Id: I32c582bedbbee81d3a5b171666fc3009c3dc7e5a
CRs-Fixed: 2433825
wma_motion_det_host_event_handler() get called when FW sent
WMI_MOTION_DET_HOST_EVENTID message.
After the initial processing, pmac->sme.md_host_evt_cb() is
called to send the relevant data back up to the upper layers
of WLAN.
Since this callback function is dynamically registered there
are cases where it might not be registered before this FW event
is received, resulting in a NULL pointer dereference.
Change-Id: I06b7907b39f4da0837196ccf377ecc2da325be8c
CRs-Fixed: 2428803
The field bssid in cfg80211_update_owe_info is renamed to peer
in kernel. Change it accordingly in WLAN driver.
Change-Id: Idf6e051d875c2a9dbe10c49eab7aa02536e5bdc4
CRs-Fixed: 2433437
If the first DFS AP is in CAC progress and second
AP starts on DFS chan, move the second AP to CAC
wait state as well.
Otherwise, when CAC end, the second AP will always
stay in "WLAN_VDEV_S_START" state and can not
handle CAC end event.
Change-Id: I440ce3339dd2afb62bdb574f2f785d733a980933
CRs-Fixed: 2426714
Delayed work leak is observed when hdd_wlan_startup failed in
__hdd_soc_probe. It will call hdd_context_destroy for cleanup, but
the delayed work created in hdd_context_create is destroyed in
hdd_wlan_exit.
To fix this leak, move this from hdd_wlan_exit to hdd_context_destroy
Change-Id: I237de3695e8915dee9ba085c5d3679a3b438d323
CRs-Fixed: 2432748
Add NAN+SAP concurrency related changes to NAN component. This
handles NAN discovery and SAP SCC design constraint.
Change-Id: Ief0d6735d9f011eb3bac22d813b2d2ef41f3fe7c
CRs-fixed: 2431539
Add policy manager changes for NAN discovery interface and SAP
mode concurrency setup related constraints. This handles NAN enable,
disable, SAP bringup and PCL related configuration for NAN+SAP
concurrency.
Change-Id: I04564e80e62189e2e6c0f810856b961b61ef70b4
CRs-fixed: 2431539
With kernel version before 4.10, and no CFG8011_UPDATE_CONNECT_PARAM
defined, compiler throw failure -
wlan_hdd_cfg80211.c:21402:1:
error: ‘hdd_update_connect_params_fils_info’
defined but not used [-Werror=unused-function]
Change-Id: I0b15e5822b36d881d484c241064f533f26f77b6d
CRs-Fixed: 2429665
Disconnect STA/SAP when disable channel list is provided by user
which contains the current STA/SAP operating channel.
Also add an ini parameter to use as featurization flag for this feature.
Change-Id: Ibe6c18ee7f6ed007794853293a0bde4999611167
CRs-Fixed: 2280989
Currently for SAP mode, issue is only first valid sta is
requested to print REO stats where sta_info pointer does
not move along with the loop.
Fix is to print REO stats for both vdev peer and sta peers
in SAP mode.
Change-Id: I4864dbecace091fd086f184599e108ad3f2e3d37
CRs-Fixed: 2423173
Implement NON-QC platform TSF and TSF PLUS.
Implement gettime of PTP.
Implement TSF PLUS for SAP/GO
CRs-Fixed: 2399624
Change-Id: Id4f41a94256a8f035ae408c168c246569185c534
Scan queue isn't unregistered, lead to scheduler queue leakage,
after driver module start/stop several times, scheduler queues
are used out, can't register any more.
Change-Id: I98d81591aee25a5e18e560766fb077733eb1b671
CRs-Fixed: 2431696
If the FW doesn't send the ext service ready event, and
thus the host does not get the max chainmask that both
the macs can support, the host still updates the ini
with the minimum of the host, and FW config, which can
lead to functional issues in connection, and scan.
Fix is to honour the setting only if the FW sends a non
zero positive chainmask for both macs.
Change-Id: I2a321923a2f995cca20cef3980acb1bf41ca0db0
CRs-Fixed: 2429584
It will access pointer to session entry before NULL pointer check. So,
fix it and avoid to possible NULL pointer dereference.
Change-Id: I4a62b4600053ccc1eb4b63c3fbce9ebcfe0656ee
CRs-Fixed: 2423715
Presently for SAP and p2p go a session is created in the firmware
and umac once the add virtual interface is received. It was
added previously when the session is not supported from the interface
up.
Now driver supports creation of the session from the interface up
for the beaconing entities the legacy code is removed.
Change-Id: Icf6aaac3722cf9292fb1519ba5e0aed74834895f
CRs-Fixed: 2368329
The only function called through this pointer type doesn't return
a value and the caller doesn't check for a return value. Change
the function pointer type to return void to fix a CFI failure due
to a type mismatch:
CFI failure (target: [<ffffff853ba7cee8>]
hdd_ipa_send_skb_to_network+0x0/0x4 [wlan]):
...
Call trace:
__ubsan_handle_cfi_check_fail+0x50/0x58
__cfi_check+0x31fa0/0x3d5a4 [wlan]
wlan_ipa_w2i_cb+0x5fc/0x8fc [wlan]
...
Change-Id: I94f6bb0fc06acebde12cf80294999d9419296c4a
CRs-Fixed: 2431600
Fast path is not supported in ROME, remove CONFIG_WLAN_FASTPATH
from qca6174_defconfig
Change-Id: I3606abfc6f375852159a9d94345e165fbe4d06c6
CRs-Fixed: 2428550