Support wpa_cli driver GET_MAX_BW with link_id and bandwidth.
Support get all MLO 2links link id and bandwidth.
Change-Id: I304b581fa06db23281422cafeecd0f6a868eee14
CRs-Fixed: 3544825
Currently host driver is using roam_sync state to update the
roam count in connection info structure. Connection manager
clears this roam sync state before it host invokes the save
bss info API where it actually updates the roam count in
connection info structure, this leads to the incorrect information
update in connection info structure.
To address the above issue, use the is_reassoc state from connect
response structure in save bss info API.
Change-Id: I0d35f04b7e2492fe96a23edefc0caf002acb6537
CRs-Fixed: 3591711
Currently, CONFIG_TSPEC_TSID is used as handle to
add and delete TSPEC requests. The tsid sent by
upper layer is same as handle because there is
no separate param for handle, so host always rejects
to add new TSPEC request because already one request
is registered with same handle.
To avoid the issue host can internally modify
handle and can add request with modified handler.
During DEL TSPEC Provided ts_id can be used to
delete the entry.
Change-Id: I6d1231bc6516d2642739d5d1011c847b32472160
CRs-Fixed: 3580003
Currently, log is added when any frequency is populated
as usable channel frequency along with mode, band and other
params which could lead to multiple log addition if Band set
is ALL bands.
The change is to remove unwanted logging.
Change-Id: I02221df6a43aa0de8d79cb973adf124a5c52f89b
CRs-Fixed: 3579443
Currently the station stats cached timestamp is updated
in the adapter, even when vdev station stats are not
requested as part of unified_ll_stats_get_sta command.
When userspace requests vdev station stats, based on
timestamp value host either returns cached stats or sends
a new WMI request to firmware. In case of timestamp updated
when vdev station stats are not cached, it results in
sending inaccurate station stats to userspace.
To avoid this issue, update cached timestamp in the adapter
only when station stats are requested as part of
unified_ll_stats_get_sta command.
Change-Id: I8cdbd120afdf1f6334d7ac3fa150fc853f550a09
CRs-Fixed: 3598671
Currently, for mlo link layer stats, vdev object is used
to get link_id and channel frequency. Instead of vdev object,
hdd station context can also be used to obtain those values.
Hence, refactor the code.
Change-Id: I90110ed0250f1d71539b44813ecb5d94c731039d
CRs-Fixed: 3595398
currenyly, hdd_medium_assess_stop_timer is invoked during stop_ap
and congestion report disabled. but init is done during congestion
report enable and based on timer flag. So, Assert will be caused
if timer is destroyed due to congestion report disable then stop
AP comes.
Fix is to add timer enable check and based on it call the stop
timer API.
Change-Id: I192b94a08cd07b2be14b2c75b44b3c6a7634b91a
CRs-Fixed: 3589172
Reject MLO station stats and Link Layer stats request from
userspace when link switch is in progress.
Change-Id: I755dcf3da69f5378cba0602ed085981af35fe38b
CRs-Fixed: 3594723
Enforce the chip to complete steps of unloading driver
instead of ASSERTION in the case of powered off.
Enforce the chip to complete pld_pcie_remove to
avoid memory leak.
Change-Id: Iaaadde91dd6329990d28659b283b1be8216a970f
CRs-Fixed: 3590444
Fix output of tsf sysfs node by adding space
between peer mac address and timestamp.
Change-Id: Id871ad70888d0d49218d1eb294f985386867059d
CRs-Fixed: 3587641
Currently, host driver defines all concurrency with iface
combination structure and updates it by wiphy to userspace.
But non DBS target does not support the 3 port concurrencies.
So, to fix this, add the check for DBS target and for non DBS
targets filter out 2 port concurrencies from iface combinations
and update it to userspace.
Change-Id: I2bbe44f6cdfa1b49e3dbd9efe8b9bc45ddbed0ab
CRs-Fixed: 3583702
Dump the CE event history and hp/tp values for CE2 and CE3
when FW hang event received.
Change-Id: I79dd857878a43dedc104cbd3b10578041ce3fb1a
CRs-Fixed: 3587934
Add enum for max test command and replace the check for
WFDS_GET_STATS cmd with WFDS_CMD_MAX.
Also, put end of struct at the end of the structure in
struct wfds_ut_cmd_req_msg_v01_ei.
Change-Id: Icc1075fb10d92fba17ffbd71a97904c6c8d866d0
CRs-Fixed: 3591854
VDEV is moved to INIT state as part of link switch disconnect,
before set MAC address response is received, north bound
disconnect is received which also increment pending OSIF
ops.
MLO manager is notified about this userspace disconnect to
terminate link switch and in this process, OSIF/HDD is notified
to change back deflink by waiting for OSIF ops to complete on
that adapter. Deadlock situation araises as the same thread
that initiated ops is waiting for completion.
Don't wait for ops in OSIF as part of link switch notification.
Change-Id: I53ce3da7e9cfbc1dea9422766f81c33254b357a0
CRs-Fixed: 3591342
If wifi turn/off and suspend command come simultaneously, idle shutdown
timer will delay long time to go into suspend mode. The time is
(gInterfaceChangeWait + HDD_PSOC_IDLE_SHUTDOWN_SUSPEND_DELAY)ms.
The delay is ensuring idle shutdown can be called and completed before
suspending. Otherwise wifi chip is not in power off state even all
adapters stopped.
Change c797c6e is ensuring that we can go into idle shutdown case when
system suspend is happening and all interfaces are down.
So, we can remove the delay and restore gInterfaceChangeWait default
value to 10s. No delay and no current leakage in FW.
Change-Id: I04cc6f2dd9720105e0302874022603eeb4fccfe5
CRs-Fixed: 3513404
Change ec797c6e shutdown WLAN in suspend prepare if shutdown_suspend mode.
For WoW_suspend mode, we need to do this too if all adapters stopped. And
do nothing if has adapter open.
Change-Id: I551354d4a906799c6279c10f05be799459110a45
CRs-Fixed: 3549654
Currently PM_LL_LT_SAP_MODE is not handled in policy manager.
With this change add support for PM_LL_LT_SAP_MODE in the policy
manager.
Change-Id: Icfbb3a95dc65225fc7dad5df7dca9306a5029402
CRs-Fixed: 3536491
Changes to set SAR safety index at the driver init time.
Enhance gEnableSarSafety ini to enable timer / init
based SAR index configuration.
Change-Id: Ie50a887d566427fe4e4ff589bf3594c6b78e8c00
CRs-Fixed: 3576752
Add a sysfs replacement for the deprecated WEXT commands
set11NRates, set11ACRates and set_11ax_rate.
Change-Id: I7823660f377d4d4aeb8df2d88b6a871b9ec33ec2
CRs-Fixed: 3588225
The reverts commit 35160f2ec7 ("qcacld-3.0: Signal value on
p2p-go mode error").
Since vendor command attribute already submit to open source,
we can't change the QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_MGMT
and QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_DATA and
QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_ACK to signed 32 bit.
So, revert the api of nla_put_s32 to nla_put_u32.
Change-Id: I70514c4edfd12a401a3549839075b657ed5e6a5a
CRs-Fixed: 3566162
IPA APIs currently depend on the net_dev value to distinguish
between the IPA iface_contexts, during setup and cleanup calls.
Due to single net_dev multi vdev change, this check is not
valid anymore and causes overwrite of the IPA iface contexts.
This change adds a check to also compare the vdev_id along with
net_dev to properly distinguish between the iface contexts.
Change-Id: I9cbd827f0d6393a83a9aedb17d68c5f8fe143e05
CRs-Fixed: 3585635
Currently in the function wlan_hdd_send_ll_stats_req, we send
mlo_ll_stats to userspace without checking the response for
ll_stats request. This causes an issue, when we the ll_stats
request is unsuccessful and host tries to send the stats to
userspace. So, to avoid this issue, add a sanity check before
sending mlo_ll_stats to userspace.
Change-Id: I71ad4938551dc7be49c15f95b81ea37cf0c9c731
CRs-Fixed: 3587011
Host driver log of the TX rate bandwidth is not
correct in wlan_hdd_update_rate_info.
Change-Id: I2d27090d4108c905c997f872fa428df1df556fac
CRs-Fixed: 3586147
Currently enable_rpm is being set in hif_rtpm_start
which is called later in hdd_wlan_start_modules,
this can result in race between hif_rtpm_start
and hif_rtpm_put.
To fix the issue set enable_rpm earlier to avoid
race condition.
Change-Id: Id33888d7df570dd68657a780fc636203e4b84b90
CRs-Fixed: 3585156
Flush TWT commands when cfg80211 suspend is in progress
and schedule them for execution when cfg80211 resumes.
This prevents WMI from crashing due to concurrent
WMI_WOW_ENABLE_CMDID and twt requester enable commands
during suspend.
Change-Id: I505b789805d8a83564bf25d3f6c5c28d6d390966
CRs-Fixed: 3567817
Currently the medium assess timer is initialized and destroyed
when SAP start or stop. Since the timer is shared by SAPs, it
causes timer leak issue with the complexity of SAP + SAP
concurrency.
To resolve this issue, initialize and destroy the timer when
vendor command is issued.
Change-Id: I2e6a7e92e5d7053712c1825669d002982e2051d6
CRs-Fixed: 3584388
In function wlan_hdd_check_is_acs_request_same(),
tb[QCA_WLAN_VENDOR_ATTR_ACS_LAST_SCAN_AGEOUT_TIME] is not checked
before dereference, it is optional if refer to this IE in function
__wlan_hdd_cfg80211_do_acs, correct this coding error.
Change-Id: I87262bd071d4dec9e6795bdf32ff7007cd2254d9
CRs-Fixed: 3585225
Allow userspace to configure power save inactivity timeout and
opm speculative wake interval through vendor NL interface.
STA enters into power save mode(PM=1) after TX/RX inactivity of
time duration specified by QCA_WLAN_VENDOR_ATTR_CONFIG_PS_ITO
in milliseconds.
STA speculatively wakes up to look for buffered data by AP at
QCA_WLAN_VENDOR_ATTR_CONFIG_SPEC_WAKE_INTERVAL interval after
entering into power save. If configured zero, STA wakes up at
upcoming DTIM beacon.
Change-Id: I86cbd35d6f61ae600b4784bd95209fac62021941
CRs-Fixed: 3567042
Pass g_wow_spec_wake_interval along with g_wow_data_inactivity_timeout
to firmware through WMI which are used in WOW mode. These configs are
honored by firmware when User defined OPM is set.
Change-Id: I24306e8aa0b7b3f7fce9453f6a98d4922b7c3f62
CRs-Fixed: 3567042
Trying to get the pre_cac adapter by iface before its created,
which will return NULL always, leads to pre_cac open failure.
Remove accessing the pre_cac adapter before create.
Change-Id: I31363d0ff8eb39fb1b16d3be20743d26fc7469a2
CRs-Fixed: 3586239
In case of mlo connection, when get_station stats is queried on
STA mld_mac address, driver sends aggregated mlo vdev station
stats to the framework. But framework expects driver to fetch
aggregated stats when queried on AP mld_mac address.
So, to satisfy framework's expectation, send mlo aggregated stats
when queried on AP mld_mac address.
Change-Id: I59b93c32939fddb56492a475d3f55b67f8eeab4b
CRs-Fixed: 3585276
In hdd_adapter_get_link_mac_addr() API return netdev addr
if the connection is not ML-type as netdev addr is used for
connection.
Change-Id: Id32694c645c27c8a7d7d738d0f980054f85e5b94
CRs-Fixed: 3585513
If GO is MCC with STA on 2.4 GHz, move GO to STA channel for
SCC before 2.4 GHz preferred SAP start. This is to avoid SAP
start failure because we don't support 3 Home channel MCC in
same mac.
Change-Id: I507fe8d9d283c54524ea647d8b74c7e167a031d0
CRs-Fixed: 3562893
If INI is enabled don't derive first link's MAC address
and directly use MLD address in that place and derive
next link addresses.
Change-Id: I3c2b9f64df3f75799adf8718ee83d157f6dd9097
CRs-Fixed: 3584062
Currently, kernel invoke the regdomain notifier to host driver
using registered callback. If kernel call this callback after
cfg80211 aka system suspend, Then because of race condition host
might send the PDEV SET REGDOMAIN/PARAM to fwr after WOW ENABLE
cmd which is not correct cmd sequence.
Change-Id: I3a5ebcbedc529b188e43e4d0ae60510fff8a703d
CRs-Fixed: 3583337
Currently, wakelock with timeout is acquired when psoc idle timer is
started to prevent suspend but it is not released when psoc idle timer
is stopped. So, in scenarios where wlan is turned off/on frequently,
psoc idle timer will be started and wakelock with timeout will be
acquired as part of wlan off but after wlan is turned on suspend will
not be allowed until wakelock timeout occurs as wakelock is not released
when psoc idle timer is stopped.
To allow suspend after wlan is turned on, release wakelock which was
acquired as part of wlan off in psoc idle timer start.
Change-Id: I85ad9ce4ae9618a88601295d2194b4033be88c2d
CRs-Fixed: 3578872