In the driver, if CLUB_LL_STATS_AND_GET_STATION feature is
enabled, host requests Link Layer stats and station stats
from firmware periodically using a single WMI command.
Host then sends LL_STATS to userspace and caches station stats
in the adapter. Whenever userspace queries station stats, based
on the sta_stats_cached_timestamp, host returns cached stats
from adapter instead of sending a new WMI request.
The current issue, as part of station stats firmware also sends
connection_tx_power stats, which aren't cached into the adapter.
So, whenever userspace queries get_tx_power via nl commands,
host sends a WMI request to firmware for tx_power leading to
platform wakeups and power impacts.
To resolve this issue, cache the tx_power sent by firmware into
the adapter during station stats and return the cached value to
the user space.
Change-Id: Iaefc5629872431cbc6c24090b1edb6cebdad995a
CRs-Fixed: 3439323
Refactor the hdd_vdev_destroy() code to move deinit of various
components to new API.
Change-Id: I705c328e4296fa4bc939d5d8a6174a709ee751b1
CRs-Fixed: 3306914
Remove the INIT_TX_RX_SUCCESS adapter flag as its
functionality is insignificant after DP componentization.
Change-Id: Ief86ab81c42b767113bde46252246fa8677588ce
CRs-Fixed: 3399329
Refactor the hdd_vdev_create() API to move device mode
based VDEV config to a new API.
The new API calls required configuration functions
based on the device mode.
Change-Id: I54c5412577b70d92652cb16fcfb10e4d69e6f6fd
CRs-Fixed: 3445149
Currently, rssi, rssi_send, rssi_on_disconnect and snr members
are part of hdd_adapter.
Move following fields to link info
1) rssi
2) snr
3) rssi_on_disconnect
4) rssi_send
Change-Id: Iec76cdf51ed72adefacc4b77a6a2d1d8a28e96b6
CRs-Fixed: 3294941
To support multiple VDEVs in single adapter, the VDEV
specific fields in hdd_adapter needs to be moved to
link specific data structure.
Move the following fields from hdd_adapter structure to
wlan_hdd_link_info structure.
1) vdev_id
2) vdev_lock
3) vdev
4) vdev_destroy_event
Change-Id: I80d0ed167ca31bff7445b9c7788c86ef6f776018
CRs-Fixed: 3291070
To support multiple links in single adapter, create a new
structure to hold per link info inside the hdd_adapter.
Create a new member in hdd_adapter to point to link zero
of this array of link info.
Move STA and AP context fields into per link info.
Change-Id: Ia1f01865277c3e08254f44a39ba6675a9fea6c65
CRs-Fixed: 3354572
Current code has hdd_dump_log_buffer and hdd_ioctl_log_buffer in
wlan_hdd_wext.c. This will not be included in build if wext is not
enabled. Fix this by moving the functions to wlan_hdd_ioctl.[ch].
Change-Id: Idb4824815890c605961e802e0d5a43ca2181a13d
CRs-Fixed: 3436349
Current code doesn't allow for custom print output for
hdd_dump_log_buffer.
Fix this by adding ability to pass custom print function.
Change-Id: I6a32008d8c18dbe02aada520d0e0bb168949ba80
CRs-Fixed: 3426192
Current code does not have a way to abstract printing to sysfs file
resulting in duplicate code when wanting to add sysfs output to
existing functionalities.
Fix this by creating API which allows for easy printing to a sysfs
file and is compatible with qdf_abstract_print.
Change-Id: Ide71dc1e5f869f03ce66500eed50bb55781dc228
CRs-Fixed: 3426189
In some race-condition, the adapter entry in the
adapter list gets deleted midway between an iteration
over the same list via another thread. Accessing this
stale entry leads to watchdog timeout due to infinite
loop.
Fix this by breaking out the iterator if the next iterator
entry is same as the current adapter entry being held.
Change-Id: Id91cbc43474927faec72a9e0dcaa56e935ccf63d
CRs-Fixed: 3390966
The following patch removed the last use of the g_event_flags
member of struct hdd_context:
qcacld-3.0: Remove the logic to move ACS to pending
Change-Id I439398b406e9371a8e443f5409bd3f25b3062501
Since g_event_flags is now unused, remove it.
Change-Id: Ib81827dd9bd97950051084208a9d910620b8813d
CRs-Fixed: 3428706
The following patch added get_roam_chan_from_fw to struct hdd_config:
qcacld-3.0: Add support to get roam scan channels from fw
Change-Id I690aca6c3f1e3aa7ae1fe54aadc839ea19446079
However, that member isn't actually used, so remove it.
Change-Id: Icc490935c82396f5469be14812bb66dbb5299312
CRs-Fixed: 3424940
All usage of hdd_is_sta_authenticated() was removed by the patch:
qcacld-3.0: Code cleanup from HDD module
Change-Id If5f1cf432b5c02848202debee7de696b2f20be9a
Since hdd_is_sta_authenticated() is unused, remove it.
Change-Id: I777b8bb1ecda596d71744aa62be4b14dba71fe0e
CRs-Fixed: 3428727
A prototype for hdd_update_eht_cap_in_cfg() was added as part of:
qcacld-3.0: Add APIs to update 11be target capabilities
Change-Id Ib3baa41ea3d8ef2ce49b88e4b48d8bc29556cd66
But no actual function was added, so remove the unused prototype.
Change-Id: Ie96c86f9028f39438e6a135c9733465aaf52c12b
CRs-Fixed: 3428468
Function hdd_sme_open_session_callback() was removed by:
qcacld-3.0: Send the vdev create to firmware in the caller thread
Change-Id Iafb186b13d948e421d152c3142cb8614fdbbffa6
However, the prototype was not removed, so remove it now.
Change-Id: Iffa96f51b2e274ba3540dbeac3011819285f50a0
CRs-Fixed: 3428757
The function hdd_max_sta_vdev_count_reached() was removed by:
qcacld-3.0: Check for max allowed STA vdevs in hdd_start_adapter()
Change-Id I5b2dd09fb58aa3135743a029889e689729bd05a7
However, the prototype was not removed, so remove it now.
Change-Id: I3ca75963bb69f0d2fc5a27687566e70b11f02058
CRs-Fixed: 3428740
The enum oem_capability_mask was introduced by:
qcacld-3.0: Add support for get and set OEM capability
Change-Id I8c4a8c19633845750ec9d2492632471c68ba410d
However, the enum wasn't actually used by that patch, and instead
struct sme_oem_capability represents that information, so remove the
enum.
Change-Id: Ie52fa8d69c95c1021bf94b052f373e3e75da6f80
CRs-Fixed: 3425038
The functions hdd_sysfs_create_adapter_root_obj() and
hdd_sysfs_destroy_adapter_root_obj() were removed in the
following patch, replaced with mode-specific APIs:
qcacld-3.0: Add a sysfs replacement for reassoc
Change-Id Ib4f3582bb8c164dd4f3ab739367520b9aeb0f5b9
However the stubs for when WLAN_SYSFS is not defined were
not removed, so remove them now.
Change-Id: I8c82b410d2891cbf8f3d619fcb6c1c60a5a0a9ca
CRs-Fixed: 3425058
Usage of the enable_pkt_capture_support and val_pkt_capture_mode
members of struct hdd_context was removed by the following patch as
part of packet capture componentization:
qcacld-3.0: Remove packet capture ini's in cds
Change-Id Ice4765c7eb697743b1dccc8a70be1b7ce766e037
Since these are obsolete, remove them
Change-Id: I28ffd0fe209b1d663046e8dec96d18ef5e269755
CRs-Fixed: 3424981
The following patch removed all usage of the defer_key_complete member
in struct hdd_roaming_info:
qcacld-3.0: Remove unused code for defer key
Change-Id I8afcebf00b00bcf39ba7da999c55e5eacdf26aaa
Since it is obsolete, remove it.
Change-Id: I4ed0eeba29ed74ddc82bf2a6723d73b49a9b907f
CRs-Fixed: 3424957
The following patch added logic to HDD to read the value of the
CFG_DP_RX_FISA_LRU_DEL_ENABLE configuration item and store it in
struct hdd_config:
qcacld-3.0: Add ini to enable FISA LRU eviction
Change-Id I9930ec260bcab5ba8c8f1e594dbfde35965dff2e
However, the datapath maintains this configuration item on its own, and
the copy maintained by HDD is not used, so remove that logic.
Change-Id: I970195cf199c33802db5f84eeea4f622306703cd
CRs-Fixed: 3424797
The functionality that called hdd_txrx_get_tx_ack_count() was remove by:
qcacld-3.0: Code cleanup from HDD module
Change-Id If5f1cf432b5c02848202debee7de696b2f20be9a
Since datapath componentization made hdd_txrx_get_tx_ack_count()
obsolete, remove it.
Change-Id: I86cb82794f6ae324034d8a4fb76ac5084aced3aa
CRs-Fixed: 3424800
The logic that used struct hdd_context::disconnect_for_sta_mon_conc
was removed with:
qcacld-3.0: Code cleanup for connection manager in HDD
Change-Id I2934e4a867458561c50170b0e786e63f20f1af4a
This member is now only written and never read, hence it is obsolete,
so remove it.
Change-Id: Iff1b4a1e508bc193c9d40c11f31317f353874b52
CRs-Fixed: 3424792
The following patch removed the use of hdd_wait_for_dp_tx():
qcacld-3.0: Update HDD to use DP component APIs
Change-Id I377aecc4343e75dd17d279a2eb84fc49e737e784
Since the function is obsolete, remove it.
Note that this removes the only code that depends upon the
dp_protect_entry_count atomic variable, which means that is also
obsolete, as are the hdd_dp_ssr_protect() and hdd_dp_ssr_unprotect()
functions that increment and decrement it.
Change-Id: I02621dabf2e67a39259c4a51a604312f1927f72d
CRs-Fixed: 3424826
The last usage of enum hdd_auth_key_mgmt was removed with the patch:
Change-Id I2934e4a867458561c50170b0e786e63f20f1af4a
qcacld-3.0: Code cleanup for connection manager in HDD
Since this is unused, remove it.
Change-Id: I96a2f82e229ca73061da3ed781518d43c940cfa7
CRs-Fixed: 3422049
DEBUGFS_LLSTATS_BUF_SIZE is defined for both ML and non-ML
cases separately under WLAN_FEATURE_11BE_MLO & CFG80211_11BE_BASIC
feature flags. CFG80211_11BE_BASIC is set to 1 based on 11BE
supported kernel versions in wlan_osif_features.h and it's included
in wlan_hdd_main header file.So, this header file should be included
before its usage for above length calculations.
Otherwise, it results DEBUGFS_LLSTATS_BUF_SIZE as 16384 instead
of 32768 as CFG80211_11BE_BASIC becomes 0.
When ll_stats requested for station connected with ML-AP
because of insuffient buffer size stats are getting truncated.
from hdd_debugfs_process_radio_stats.
To fix this issue move header file inclusion to beginning
of header file.
Change-Id: I962d81057680dab07b6569fff49a8711c0c628e8
CRs-Fixed: 3387517
According to new requirement, use INIs
max_pagefault_wakeups_for_ssr,
interval_for_pagefault_wakeup_counts and
ssr_frequency_on_pagefault
to trigger SSR if host wakes up because of pagefault.
For ex: If max_pagefault_wakeups_for_ssr = 30,
interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
ssr_frequency_on_pagefault = 3600000 (1hr), in this case host
will trigger the SSR if it receives 30 wakeups because of
pagefaults in 3 mins, host will trigger SSR only once in 1 hr.
Once the SSR is triggered, host will not trigger next SSR for
next 1 hr even if it receives 30 wakeups from fw because of
pagefaults. This 1 hr time is getting monitored from last SSR.
Change-Id: Ia06f87aff6d1552e37c582e7464f1b2451543502
CRs-Fixed: 3378502
Use mac_addr pointer as constant in wlan_hdd_ml_sap_get_peer,
hdd_set_mld_address and use the same for consecutive APIs.
Change-Id: Ie1b959b14d42b4040b7f960ee3a13b355210e6fd
CRs-Fixed: 3331292
wowl_add_ptrn sysfs interface can't accept the full length of
pattern command. This change fixes the problem through dynamic
memory allocation.
Change-Id: Iddeee56cf4ed675bc7578dd9ce976028fae77b3c
CRs-Fixed: 3358847
As part of Spatial Reuse, host has to send SR Suspend and resume
events based on concurrency which is not sent in case of NAN
concurrency.
Fix is to send SR Suspend in case NAN comes up and any STA that
supports SR is already present because SR is not supported in
case of NAN concurrency. Similarly during NAN disable check
if any other vdev apart from NAN is sharing mac with STA that
supports SR and SR support on same mac is disabled then don't
send SR resume event as there is already a concurrent vdev that
will take care of SR Suspend event otherwise send SR Resume event.
Change-Id: I56a9b455dd0166bc3997f8306992e46da759e992
CRs-Fixed: 3339713
In hdd_adapter structure, the qdf_session_open_event is
a declared as event type which is initialized but not used.
Remove this unused event variable and all its references.
Change-Id: Iec1ece36153a3c9986195bbc2cc19bf8a469f2ee
CRs-Fixed: 3354149
In the current driver implementation, host honors LL_STATS request
even in disconnected state. But in disconnected state, the ll_stats
request pending flag is not updated properly, which results in allowing
multiple LL_STATS requests being sent to FW. So, to avoid this issue,
update the flag properly.
Change-Id: I318455492dc69bd540044b593a405eacdf185ff1
CRs-Fixed: 3339867
Add resume and suspend support for rx thread, rx refill threads
in HDD module through DP componentization.
Change-Id: I0cdd0d43ac742ef55fad2155bc8df063c5bb8657
CRs-Fixed: 3316821
Refine the TX flow info setting independent on the IPA module to enable
the TX flow control feature for the TCP/UDP when IPA module is disabled.
Change-Id: Ib5d708e405dc93f410f100a5c335875b30601981
CRs-Fixed: 3346767
Move Action OUI INI config to component.
Add ucfg API to load/parse the configuration.
Change-Id: Ibaab5428bc575394b9a5b464639d24f80f042e93
CRs-Fixed: 3310697
The kernel-doc script identified documentation issues in the hdd
layer, so fix the ones in the "inc" folder.
Change-Id: I0fda8ea1ce929ad5e0cc54f86a9de5a46b3f7d38
CRs-Fixed: 3346527
Rename wlan_hdd_cfg80211_spectral_scam_get_config() to replace
incorrect term "scam" with "scan". In addition, clean up existing
documentation issues.
Change-Id: I1d7f11e274bcb0e1e09e8292b75554d256a5c6fd
CRs-Fixed: 3344908
Fix 'defined but not used' compile issue for some
sysfs functions if CONFIG_WLAN_SYSFS not set.
Change-Id: If067afe95ae98355e92a5b914bdce34b3c7c2342
CRs-Fixed: 3345060
Introduce a new attribute to configure access category override
for UDP frames of BE/BK category. Unlike, the earlier attribute
QCA_WLAN_VENDOR_ATTR_CONFIG_UDP_QOS_UPGRADE which will override
for all UDP frames, this attribute is for overriding only for
BE/BK based UDP frames.
CRs-Fixed: 3169564
Change-Id: I7c345c3dc7912dbfb68407e654c2c2b79bc20964
When STA is connected to an 11ax AP, driver issues a scan request(OBSS)
to firmware with certain periodicity(it's 120 seconds currently).
Firmware shall do a scan for every 120 seconds irrespective of the
device activity. This causes data glitches throughout the scan duration
when data is going on a concurrent interface.
It's observed that the OBSS scan interrupts NDP data traffic from NDP
applications and causes glitches in file sharing/music sharing use cases.
Configure the OBSS scan periodicity with a larger value(1200 seconds) to
mitigate the glitches when first NDP forms. Reconfigure the original
scan duration(120 seconds) once all NDPs tear down.
Change-Id: Ie0c8228ff3b26f8d9a091909c710928e7ae2a787
CRs-Fixed: 3323193
Currently, if fw sends any SAR version that is not having mapping
in host, host advertises SAR version unspecified to userspace.
And if userspace sends set SAR V1 to host, host converts it
to SAR V2 only if fw is configured to SAR V2 or Sar V3.
Instead of SAR version unspecified advertise SAR V1 to userspace
and add changes in host to convert SAR V1 to SAR V2 if fw is not
configured to SAR V1.
Change-Id: Ifd862cf9107ae3bbac9a4336b5c2a03c1bd5bb98
CRs-Fixed: 3326711
The update MAC address WMI command response is not WOW event.
If there is suspend before the response comes back, the
response will be delayed to host and host may wait timeout.
Fix by acquire the wake lock and runtime pm lock for set
MAC address command.
Change-Id: Id6090a589b0bbf5e67f934ecc28270d76186b88a
CRs-Fixed: 3326753
For virtual interface, add support to create the interface
as ML capable.
Currently implementation will create a single link ML interface.
This ML capability will only be enabled for STA/SAP type mode.
Change-Id: I11263460ee8404c8ea319cd139d92b080035b416
CRs-Fixed: 3315353
Current implementation for MAC address update for SAP
doesn't check if the adapter is ML capable or not.
Add the logic to check if the adapter is ML capable
in SAP mode and update MLD address if it is true.
Change-Id: I06ce99e53439904acbc1f96f3aedba816d58f0da
CRs-Fixed: 3323654
The feature raises a pulses at specified interval in TSF time domain.
The pulses can be used to determine driver level latency between hosts
as they are operating in same TSF time domain.
Add ini "g_tsf_accuracy_configs" to configure parameters for TSF accuracy
feature to customize GPIO pins and interval.
Change-Id: I49609d5beba8043ac2ecc086e97b01d1e0b2d3f6
CRs-Fixed: 3277992
When wlan0 connect, connect info as bssid are saved to both ML adapter and
assoc link adapter.
When wlan0 disconnect, connect info as bssid isn't cleared in both adapter.
When 2nd sta connected same bssid, in __wlan_hdd_cfg80211_get_station old
wlan0 adapter is got by hdd_get_adapter_by_bssid, but it is disconnected,
so no right rssi reported.
Change-Id: I5dd2b6dcdd063509ee42088270cc85f2466e3b67
CRs-Fixed: 3317428
Host driver does not use wifi kobject lock.
With this change remove this unused kobject lock.
Change-Id: I40a6bb026a4c766c13a2a4f76a2e6ac9ce14ec1c
CRs-Fixed: 3310777