NLA_UNSPEC usage is restricted from kernel version 5.4 by adding
a strict check while validating the nla_policy. The advantage
of this is that types not specified in the policy will be
rejected.
Driver can give exception to NLA_UNSPEC by setting
strict_start_type in the policy of a vendor command to NLA_U8
or some greater value. But it's better to set the type to a
valid type so that kernel can validate.
So, use NLA_BINARY with valid length instead of NLA_UNSPEC.
Change-Id: If6d559a3aa7b8719a515e00e271e313c02f8135f
CRs-Fixed: 2692293
In case if the EXTERNAL_AUTH_SUPPORT is present natively
in kernel, then the backport flag CFG80211_EXTERNAL_AUTH_SUPPORT
will not be present.
Currently host checks for defined(CFG80211_EXTERNAL_AUTH_SUPPORT)
flag to register ops for external_auth. This results in external
auth fail in the above case.
In the driver all instances of
“defined(CFG80211_EXTERNAL_AUTH_SUPPORT)” should be paired with
|| (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0))
where 4.17.0 is the kernel version where the external auth support
gets added to the upstream kernel.
Change-Id: I67b687b37ab60b581e97ea81243c0d30bbb17acd
CRs-Fixed: 2692697
Add the sysfs entry for set_he_bss_clr.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 set_he_bss_clr [value]
it is now changed to support via sysfs:
--> echo [value] > /sys/class/net/wlanxx/he_bss_color
Change-Id: I4700414469be018de9758277c4e095e64cabb376
CRs-Fixed: 2692916
Currently when rrm measurement is completed for a particular
index, the rrm_cleanup() is called which clears the measurement
data for all the index. This can cause failure with multiple
measurement request where on completion of the first request,
second request data structure will also be made null.
Pass the measurement index to rrm_cleanup() and clear only
that index data.
Change-Id: Ib712c2da3ddfea374d60b250dd474b08093b24c7
CRs-Fixed: 2695836
Introduce an INI "oce_subnet_id_weightage" to indicate firmware
about oce subnet id weightage so that firmware can use subnet id
weightage to calculate candidate AP's score.
Change-Id: Iaf3be1947f8966a2e2c34162d251a31950058231
CRs-Fixed: 2674596
During the interface UP the driver will take rtnl lock and if the
recovery is going on at the same time it will wait for the recovery
to complete.
If its a modem ssr, the IPA related module would register all the
netdevices which need the rtnl_lock held by the driver.
Reject the interface up when the SSR is inprogress.
Change-Id: I7b2451f16c86cbe86a7c377d112bec12f7eb0252
CRs-Fixed: 2693540
sta_info ref is wrongly put in function
hdd_get_cached_station_remote. Modify the typo code
to correct the issue.
Change-Id: Ia0de774603c1570598848f7d699a128a5da6d8f0
CRs-Fixed: 2692694
Update return type of wma_discard_fw_event to return QDF_STATUS
to match scheduler_msg_process_fn_t.
Change-Id: I1746b170318be30810ddf7cc6be8156a3940b595
CRs-fixed: 2698308
wlan_hdd_sysfs_set_fw_mode_cfg.c is derived from wlan_hdd_wext.c and hence
maintain original copyright year in wlan_hdd_sysfs_set_fw_mode_cfg.c.
Change-Id: I034fbb2bc9ea205ca92ee017c3e9111405306bd7
CRs-fixed: 2698256
Currently, host consider self NSS capability while sending
link rates statistics to userspace for "iw wlan0/1 link" command.
This results host sends incorrect link rates in case of STA and
AP has different NSS capabilities.
Fix is to send intersection of Self and AP's NSS capability
to userspace.
Change-Id: I7a31998ccb6988aa95de9fa25f49dda20f9f8b96
CRs-Fixed: 2686251
Update the return type of
lim_send_action_frm_tb_ppdu_cfg_flush_cb to return QDF_STATUS
to match with scheduler_msg_process_fn_t.
Change-Id: I48e382422f2c970f2f347f1fe716ca974efdd5fb
CRs-fixed: 2698312
Currently frequency attributes mhz_freq_seg1 and mhz_freq_seg0
are not getting updated in start ap before calling set channel
params api of regulatory component from start bss,
regulatory component uses these attributes to set the correct
channel params.
Since these frequencies params are not correct, regulatory
component is returning invalid ch_params for 80+80Mhz operation
which is resulting in failure of start bss for 80+80Mhz.
To address above issue, update the frequency attributes correctly
in start ap.
Change-Id: If0a8e0ed121b2167ff0226d2bd0048a1fa120f31
CRs-Fixed: 2697754
For Voice and Music (V&M) products, extreme latency optimization is
needed while playing music and discovery, higher power consumption
in this mode could be accepted. With CONFIG_WLAN_LL_MODE enabled,
when latency_level is set to ultra low via cfg80211 vendor command,
update request pm qos type PM_QOS_CPU_DMA_LATENCY to level
DISABLE_KRAIT_IDLE_PS_VAL to speed up CPU efficiency and irq response.
Change-Id: Ifb5bc8169f1cd08500c4b4bc0dd65dd0b3667ab6
CRs-Fixed: 2685074
Update hdd_data_stall_process_event to match scheduler_msg_process_fn_t.
Change the argument to scheduler_msg struct and add return status
to match function type.
Change-Id: Id4d2eaaa2262d7fe2dd6241ae4581a3d0cb09805
CRs-fixed: 2697445
Do not define WLAN_AKM_SUITE_OWE if it is defined.
Do not define WLAN_AKM_SUITE_EAP_SHA256 if it is defined.
Do not define WLAN_AKM_SUITE_EAP_SHA384 if it is defined.
Change-Id: Id06961a4c0d03f97279e2b45f9bfc5befb943e66
CRs-Fixed: 2666448
One parameter of proc_create_data is changed from struct
file_operations to struct proc_ops.
Add support for it under the kernel version compilation flag.
Change-Id: Ic87222f9c267debef56dcc66fc629854058ffabd
CRs-Fixed: 2666490
New parameter txqueue is added for callback ndo_tx_timeout.
Add support for it under the kernel version compilation flag.
Change-Id: I0234dade56f65d15a4370404e17ff51a8a73ee4e
CRs-Fixed: 2666436
Fix insmod failure in perf build which is caused by undefined
symbol when MPC_UT_FRAMEWORK is not defined.
Change-Id: I1a1ae76af596a3d219a7367d45a2fb38a08107a4
CRs-Fixed: 2696540
In cds_trigger_recovery_handler, Host driver first set flag recovering
before cds_force_assert_target. For Rome, ol_target_failure run when
FW crash, Self-Recovery stop when detect flag recoverying be set
Add CDS_DRIVER_STATE_ASSERTING_TARGET to record Host asserting in
cds_force_assert_target. Skip recovering check in ol_target_failure
if detect this flag.
Change-Id: I290e2f21bd0bca6dc6d76de43de4f8dd801d7ff5
In wma_vdev_pre_start() freq is already available with des_chan->ch_freq
so no need to get the freq again from using wlan_reg_legacy_chan_to_freq.
In hdd_cfg80211_update_channel_info() use wlan_reg_chan_band_to_freq
to get the freq from channel.
Change-Id: I179907c9f5a80f355b44aa9c9509d8d12d8825f8
CRs-Fixed: 2696687
Supplicant disables fast roaming (by making isFastRoamEnabled = 0)
before sending ROAM_INVOKE_CMD to host. This results roaming state
of host changes to ROAM_RSO_STOPPED before start processing
ROAM_INVOKE_CMD command.
Due to commit : Id0ea18a33dfef3d4e9a4003da33fc7172cf58e85, Host
unable to process roam sync indication event if supplicant disable
fast roaming before sending ROAM INVOKE command. This leads to
roaming failure.
Fix is to allow driver to process roam sync indication even in
RSO stopped state, if roaming triggered by userspace.
Change-Id: Ia5f5c7b078d457280bce8c24110f01a3be26c3d6
CRs-Fixed: 2670060
Implemented driver interface for NL command for setting
and getting TX and RX chains. The chains can be set to
either chain 0(1) or chain 1(2) or both(3). This is only valid if
antenna mode is set to 2X2.
Below command can be used to set the chainmask:
iw phy <phyname> set antenna <bitmap> | all | <tx bitmap> <rx bitmap>
Example:
iw phy0 set antenna 1 -- to set both Tx and Rx chain 0.
iw phy0 set antenna all -- to set all/both chains for rx/tx
iw phy0 set antenna 1 2 -- to set chain 0 for tx and chain 1 for rx
Below command can be used to get the chainmask after set:
iw phy <phyname> info
check for "Configured Antennas: TX 0x1 RX 0x1"
Below conditions should be met for setting chainmask:
1. Antenna sharing should be disabled.
2. gEnable2x2 in ini file should be 0
3. enableBTChainSeparation in ini file should be 1
4. DBS should be disabled (gDualMacFeatureDisable = 1)
or HW should be DBS 2x2 capable
5. set TX/RX chainmask 3 in ini (gSetTxChainmask1x1/gSetRxChainmask1x1)
6. HW should support TX/RX chainmask as 3
Change-Id: I04f6667398eac405a6be61bc039e048090578abf
CRs-Fixed: 2693370
chan_freq and mhz variable represent the same thing so use chan_freq
instead of mhz.
Change-Id: I4162504562c30ece71f5ebc465b1af3a048b01b2
CRs-Fixed: 2696795
As part of this change I2e7caec268776a79d7166020c64af93fee2f8aec,
the feature flag was not properly defined and there were some compilation
issues. Hence, this change is fixing these issues. Also, add unit test
ini check in fw unit test command.
Change-Id: Ia8dfedec19d4d97c8c100321a0a012ee1a1b6a00
CRs-Fixed: 2695208
Bandwidth level was set correctly to PLD_BUS_WIDTH_VERY_HIGH
but current vote level was not updated for monitor mode.
Due to this during PCI link down the reg writes for SW2WBM
release ring were enqueued in delayed register write work
queue instead of being written directly.
Delay in scheduling the workqueue results in SW2WBM release
ring getting full which results in invoking panic.
Hence update the current vote level along with the bus
bandwidth in HDD open function for monitor mode.
Change-Id: Ib9861a038afa6ca7758ea35afcae2bcfe9e69b60
CRs-Fixed: 2690247
This change is to set txpower to specific interface
from iw.
Ex:
"iw dev <interface name> set txpower fixed <value>"
Change-Id: I5a3195a36cd2d7252eb3ef0312545d338b4000ec
CRs-Fixed: 2677223
Rx mpdu count received as part of peer link stats
event from firmware does not have the proper values.
Fix is to fetch the rx mpdu count from dp layer and
update the rx mpdu count before sending the stats to
HDD.
Change-Id: I945d32c7701f5f5c9bfbbaa6ab4576b94389c84c
CRs-Fixed: 2691648
Currently host driver sends the data rate of connected
peer in the units of kbps whereas user space expects the
data rate to be in the units of mbps.
To address above issue, add a change in the host driver
to send the data rate in the units of mbps.
Change-Id: I022659f1cd16ff62dc5b9379405c35c651381e4f
CRs-Fixed: 2688150
The current bss color value is 0 in color
detection config which is not valid. Set
it accordingly in lim to share the correct
bss color config to FW.
Change-Id: I4387c7eb661846d70b62cde41b64b9c174e2f48c
CRs-Fixed: 2689632
When kernel panic, irq will be disabled, when dump Rome
firmware, dma buffer is malloced and freed every time
hif_diag_read_mem is called to dump 20K mem, dma_free_attrs is
called 100 times for 2M mem dump, WARN_ON(irqs_disabled())
will printk stack about 100 times in short time, watchdog bite.
Fix: Change dma mem malloc size from 20KB to 256KB, then only
malloc/free less than 10 times totally when dump Rome firmware.
Change-Id: I803b2cd30a1c6cdc1ce8f8f1073cdb6c17b650af
CRs-Fixed: 2693690
Kernel 5.4 has applied batched GRO_NORMAL packets processing
for all napi_gro_receive() users. this requires NAPI users to
call napi_complete_done() or napi_complete() at the end of every
polling to flush batched GRO_NORMAL packets.
However, by current wlan driver design, napi_gro_recevie()
is not happened in same NAPI polling context and done in another
thread context, it likely packets which have not been flushed from
napi->rx_list will get stall until next RX cycle.
Fix this by adding a manual flushing of the list right after
napi_gro_flush() call to mimic napi_complete() logics.
Change-Id: Ib3e851c0822a85c4712a1b817cc19dfecf6d0e7a
CRs-Fixed: 2673959
Previously pm_dbs would be queried via iwpriv
--> iwpriv wlan0 pm_dbs [dbs] [system_pref]
it is now changed to support via sysfs:
--> echo [dbs] [system_pref] > /sys/kernel/wifi/pm_dbs
Change-Id: I3f6b153a58be6932cafbc1df15ef4a62971ba954
CRs-Fixed: 2692150
Previously pm_cinfo,pm_pcl would be queried via iwpriv
--> iwpriv wlan0 pm_cinfo
it is now changed to support via sysfs:
--> cat /sys/class/net/wifi/pm_cinfo
--> echo 1 > /sys/kernel/wifi/pm_pcl
Change-Id: I437eb6d4e9424f3aed9d1cf218333371c9a9f93b
CRs-Fixed: 2684258
Add the sysfs entry for the pktlog.
Previously get_ampdu,get_amsdu would be queried via iwpriv
--> iwpriv wlan0 1 1 pktlog
it is now changed to support via sysfs:
--> echo 1 1 > /sys/class/net/wifi/pktlog
Change-Id: Id5461c86bb1369a04bc68514e874df6df1230b85
CRs-Fixed: 2684106
Add the sysfs entry for the ipaucstat.
Previously ipaucstat would be queried via iwpriv
--> iwpriv wlan0 ipaucstat 1
it is now changed to support via sysfs:
--> echo "1" > /sys/class/net/wlanxx/ipaucstat
Change-Id: I5a3195a36cd2d7252eb3ef0312545d338b40d3ec
CRs-Fixed: 2676440
Add the sysfs entry for dumpStats and clearStats.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 dumpStats [stats_id]
--> iwpriv wlan0 clearStats [stats_id]
it is now changed to support via sysfs:
--> echo [stats_id] > /sys/class/net/wlanxx/dump_stats
--> cat /sys/class/net/wlanxx/dump_stats
--> echo [stats_id] > /sys/class/net/wlanxx/clear_stats
Change-Id: If8e4d997bc621df98732461802fdd9cea89bd1ce
CRs-Fixed: 2685995
If the STA-KICKOUT event comes too frequently for
a certain AP, then the AP might have some genuine
issue and should not be tried again and again in
intial connection and roaming case scenarios.
So it is better to avoid this AP and if the AP
still faces a kickout then after 3 attempts which
is ini configurable the driver would blacklist
it to avoid ping pong.
Change-Id: I8221cca9adc777ca275fdd76c2f8ba17cd12c14f
CRs-Fixed: 2683615
Add connection check in set_power_mgmt() before enabling dhcp
protection since set_power_mgmt() can be called in disconnected
state as well for enabling power save.
Change-Id: I4b1796ba45ebf0561f4b58b066bfa63c0ca697ea
CRs-Fixed: 2690325
Add the sysfs entry for dumpStats and clearStats.
Previously these commands would be queried via iwpriv
enable / disable --> iwpriv wlan0 dump_dp_trace [1/3]
show --> iwpriv wlan0 dump_dp_trace 0
clear --> iwpriv wlan0 dump_dp_trace 2
it is now changed to support via sysfs:
enable / disable --> echo [1/0] > /sys/kernel/wifi/dump_dp_trace
show --> echo 2 [count] > /sys/kernel/wifi/dump_dp_trace
cat /sys/kernel/wifi/dump_dp_trace
clear --> echo 1 > /sys/kernel/wifi/clear_dp_trace
Change-Id: I2e7caec268776a79d7166020c64af93fee2f8aec
CRs-Fixed: 2691705
As part of WEXT replacement, replace range_ext with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SET_RANGE_EXT
file path: /sys/class/net/wlanxx/range_ext
where wlanxx is adapter name
example command: echo 1 > /sys/class/net/wlan1/range_ext
Change-Id: I389da429e1a0cd3a2ed1efede6cb958628eb7e6e
CRs-Fixed: 2689879
Issue: Host is sending VDEV_INSTALL_KEY command without validating vdev
state. If there is channel change request, in function lim_change_channel
on WLAN_VDEV_SM_EV_CSA_COMPLETE, WLAN_VDEV_SM_EV_RESTART_REQ i.e vdev
restart request is triggred to fw and if there is any ongoing sta
connection parallely, then it may send vdev install without validating vdev
state. If firmware receives VDEV_INSTALL_KEY, it stops critical channel
request. Firmware sends VDEV_START_RESPONSE/VDEV_RESTART_RESPONSE once it
gets channel grant. If host sends VDEV_INSTALL_KEY to fw before it gets
channel grant then fw stops channel request and does not send
VDEV_RESTART_RESPONSE.
Fix: Valdiate vdev state before sending VDEV_INSTALL_KEY command.
In function wlan_hdd_add_key_sap validate the state of vdev and send
command only if vdev is in between restarting state.
Change-Id: I427ab9bfab499818290dc36b6b4b3a4974b7d3a2
CRs-Fixed: 2605369
hdd_bus_bw_work_handler API is stuck waiting on mutex
sme_global_lock acquired by scheduler thread.
WIFI logger start request API doesn't need to acquire
sme global lock because the request is posted to scheudler
thread and the request is processed in schduler thread context.
Change-Id: I34522abdc54d1a7d6b5acb546179194b4ee869d8
CRs-Fixed: 2690483
get_sta_info sysfs interface is required only for SAP mode.
Remove interface creation and deletion in sta mode.
Change-Id: I4ab2beb9200d3834f9c37600ed7c5960f21c9700
CRs-Fixed: 2686964
On non-DRV platform, host will be waked when page fault occurs
in firmware side.
Need to dump event buffer which contains more debug info regarding
current page fault.
Change-Id: I46d724c58000b3faafc0f5eead550acb37eafe3a
CRs-Fixed: 2690966
Add the sysfs entry for enablertscts.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 enablertscts [0/1/2]
it is now changed to support via sysfs:
--> echo [0/1/2] > /sys/class/net/wlanxx/rts_cts
Change-Id: I9df4e0c678cc9221b3cc95c4d2058a4516438bc3
CRs-Fixed: 2689897
Add the sysfs entry for enable_dcm and get_dcm.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 enable_dcm [0/1]
--> iwpriv wlan0 get_dcm
it is now changed to support via sysfs:
--> echo [0/1] > /sys/class/net/wlanxx/dcm
--> cat /sys/class/net/wlanxx/dcm
Change-Id: I6f7d2e93c362b4d3018d7f5698dd1bba01123600
CRs-Fixed: 2685960
Return type of umac_stop_complete_cb is QDF_STATUS when
QDF_ENABLE_TRACING feature is disabled. It not matching with the same
API defined when QDF_ENABLE_TRACING is enabled.
To resolve this, update return type of umac_stop_complete_cb to void
when QDF_ENABLE_TRACING feature is disabled.
Change-Id: I59783520a7fdf8bef4424fed649898b5547da280
CRs-Fixed: 2686544
As part of WEXT replacement, replace gtx_bw_mask with a sysfs file.
file path: /sys/class/net/wlanxx/gtx_bw_mask
wlanxx is adapter name
example: echo 1 > gtx_bw_mask
Change-Id: I40c0f611ca221c91c59d9a3f60927f841385c469
CRs-Fixed: 2686762
As part of WEXT replacement, replace txrx_fw_st_rst with a sysfs file.
file path: /sys/class/net/wlanxx/txrx_fw_st_rst
wlanxx is adapter name
example: echo 1 > txrx_fw_st_rst
Change-Id: I654ea8b66e7067f0e1d23ff053fa4b8d163d878c
CRs-Fixed: 2686665
As part of WEXT replacement, replace setwlandbg with a sysfs file.
file path: /sys/kernel/wifi/set_wlan_dbg
example: echo 1 1 1 > /sys/kernel/wifi/set_wlan_dbg
Change-Id: I886bcd0ed89460e20db1ea809fa48e3a279bb39b
CRs-Fixed: 2686081
As part of WEXT replacement, replace getStats with a sysfs file.
file path: /sys/class/net/wlanxx/get_stats
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_stats
Change-Id: I762f61304407876b61b6970688e3715612c60d35
CRs-Fixed: 2685602
As part of WEXT replacement, replace get_tx_stbc with a sysfs file.
file path: /sys/class/net/wlanxx/get_tx_stbc
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_tx_stbc
Change-Id: I3024a574c7aa35398bd4c8ee30f8235ef2fe3128
CRs-Fixed: 2682374
Ini "gEnableVhtFor24GHzBand" is 0 to disable vendor VHT in HE
mode.
Fix is to disable VHT mode if HE mode in 2.4Ghz if
gEnableVhtFor24GHzBand is set to 0.
Change-Id: Ia4ae31440b5c018e58f9a03eb1e1c85832330431
CRs-Fixed: 2676984
As part of WEXT replacement, replace get_temp with a sysfs file.
file path: /sys/class/net/wlanxx/get_temp
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_temp
Change-Id: I6e530562347c936fb980f4eed4c3a55cb9804bdd
CRs-Fixed: 2684669
The mhz_freq_seg0 & mhz_freq_seg1 fields are not assigned
with values from sap ctx.
Fix by copy the whole the struct of "ch_params" to
csr_roamProfile.ch_params instead of one by one.
Change-Id: I92d7bc6ddeed1038597c7639d41fca059bf13457
CRs-Fixed: 2688693
In lim_check_rsn_ie, driver first upack the RSN IE and then do pack,
During unpack RSN_Cap_present is set to 0, in case pmkid and grp
mgmt cipher is not present. Also if pmkid is not present during pack
mgmt grp cipher is not added.
This lead to RSN caps not filled and thus PMF capability
is not determined leading to PMF cert failures.
So do not reset rsn caps and consider grp mgmt ciper.
Also in lim_check_rsn_ie use the preexisting RSN IE instead
of creating the IEs again.
Change-Id: Icc360b2eed0197fcf1ae27a0ff6ae9879b45cf2b
CRs-Fixed: 2690029
Currently, host driver sends disconnect reason code as
WLAN_REASON_UNSPECIFIED(1) when the station disconnects due to
continuous beacon miss and corresponding vendor specific reason
code is also sent to userspace. This change is introduced with
the commit I99bf4573b59dc810e0a1529fcd48061d10acae4e to
provide vendor specific reason codes for all internal
disconnections.
Driver used to send reason code as 0 for beacon miss before
this change. Few applications might still expect the same
reason code(0) and current behavior causes backward compatibility
issues. So, retain the same reason code 0 for beacon miss failure.
Change-Id: I82f215ba15ff6e215cb14ac08933e1491371dfde
CRs-Fixed: 2689257
Currently the driver votes for IDLE case when no
interface is associated. If the bus bandwidth timer
is stopped when there is no interface, we are not reducing
our votes, thereby causing higher power usage.
Remove our voting for bus bandwidth when the bus
bandwidth timer is stopped.
Also in the wlan resume case, vote for MEDIUM bus
bandwidth only if any interface is associated, else
vote for NONE.
Change-Id: I6cbe7f32036219b3b8914fb096562f44559931ce
CRs-Fixed: 2688853
This commit enables support for SuiteB roaming for SHA384.
Based on the WPA3 SuiteB roam service capability advertisement
received from Firmware, we enable the support in Host.
Change-Id: Iab4e6bfc9c8ba7d604c2720c8cb848fce40dd6b4
CRs-Fixed: 2685975
Because FW don't support idle pdev suspend, and when all interface down
host will not send wow enable command because wakeup is not expected.
The idle shutdown precedure already exist for station mode, apply it to
virtual interface as well.Otherwise, it will cause wlan suspend failed
Change-Id: I5bde36298b1484b09b1bb52cf79841f99d5324be
CRs-Fixed: 2668600
After receiving PEER_ASSOC_CMD from host, FW sends Peer Assoc
Conf event as ACK of PEER_ASSOC_CMD. After that, host sends Mx
(STA:M2/M4) messages.
Currently, FW sends Peer Assoc Conf event to HOST only in
success case and HOT fills event status as success always.
As per requirement, FW now sends Peer Assoc Conf event to HOST
in failure case. So now host should update event status whatever
coming from FW.
Fix is to update proper Peer Assoc Conf event status
Change-Id: I7e1aa808e1beece23a5dfc0c120765e389e3f0f9
CRs-Fixed: 2640242
Current during system suspend/resume, we remove/add votes for DDR/SNOC
during cfg80211 suspend/resume functions. However, check for pending TX
completions and RX softirq processing happens in the bus suspend
functions which get called after cfg80211 suspend/resume functions.
Hence, there is a small time window where there may be DDR transactions
from WLAN SOC with no vote for DDR/SNOC. This can lead to high bus
latency as seen by WLAN SOC. To avoid this, move the bus voting for
system suspend/resume operation in the bus suspend/resume functions.
Change-Id: I9242d438c1fa07cd7a2dec6994f437d07dd9bb68
CRs-Fixed: 2673101
The lmac tx/rx ops are not freed in failure case of start module
which lead to mem leak.
So Free lmac tx/rx ops in start module failure.
Change-Id: Ib222e7e31164488cca7b7cc3d241f895f49daa6d
CRs-Fixed: 2688176
Set PMF enabled bit for Association Frame only when both peer
and self supports it.
Change-Id: I11994da4db87e6a83b7ebe308720c45a9e2f0173
CRs-Fixed: 2686114
Currently, SAP interface is being created when there is an existing
monitor mode interface. This concurrency is not allowed.
To avoid this, Add check for existing monitor mode interface before
creating SAP interface using add virtual interface.
Change-Id: Ia2318b880adaff39b7deb9e223140906e80a91ae
CRs-Fixed: 2680143
If FISA related macro WLAN_SUPPORT_RX_FISA is configured but INI
dp_rx_fisa_enable is not set, fisa related context is not initialed
in dp_soc structure. if do fisa flush when vdev detach, invalid
access to fisa context will happen.
Do fisa flush per vdev only if fisa is enabled in INI.
Change-Id: Id3cecfa24f8ce26465a7809d4d9b2e92ae199c7d
CRs-Fixed: 2687949
Few changes on tip got reverted as part of
I2b91a271d30b1230ef7bb14ee08d0b9da2706db4 so bring them back.
Change-Id: I12dc7304dba220f0d85763b01d4b04dd1540a3bb
CRs-Fixed: 2687980
If device is configured to Only dot11mode profile. Don't
connect to lesser profile the configured.
Change-Id: I7bf5157c0d7324c5ee7c4cdaac7806c0991d5dae
CRs-Fixed: 2683763
As part of WEXT replacement, replace wowlDelPtrn with a sysfs file.
file path: /sys/class/net/wlanxx/wowl_del_ptrn
where wlanxx is adapter name
example: echo 08:01:FFFFFFFFFFFF0000:FC > wowl_del_ptrn
Change-Id: I446456df5bd003b7328ba7afc0a4fb5e60059e11
CRs-Fixed: 2682245
There should only be STA and/or SAP modes for the new sysfs commands.
Remove P2P device mode when creating the store/show files.
Change-Id: Id090dff650466c907468eb530e9e24d96ce4d99d
CRs-Fixed: 2686781
Check AP's HE Rx MCS map to connect in HE mode. If AP has invalid
MCS map connect in HT/VHT mode.
Change-Id: Ia95f08999f0536ac3463e02212f39d4fd09390d4
CRs-Fixed: 2684887
As part of WEXT replacement, replace getChannel with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_GET_CHANNEL
file path: /sys/class/net/wlanxx/get_channel
where wlanxx is adapter name
example command: cat /sys/class/net/wlan1/get_channel
output: Channel number: 1
Change-Id: I3040af3d19eb83a819ca83cdbb74a70acd041698
CRs-Fixed: 2681803
Unloading the driver is a driver transition. As a part of this driver
unload, the PLD calls the pld_remove which is a psoc transition. This is
the reason why the driver unload is currently not being protected as
there is a call to psoc transition within it.
This absence of locking can lead to potential deadlock scenario. Assume the
example of add_virtual_interface and rmmod coming in parallel.
T1: add_virtual_interface (starts a vdev_trans)
T2: rmmod comes in parallel
-> unregister_driver goes to PLD
-> PLD calls pld_remove (psoc_trans waits due to T1)
T1: add_virtual_interface continues
-> Calls idle_restart that goes to PLD
-> PLD waits from pld_remove (T2) to complete first
T1 and T2 are waiting for each other to exit resulting in
deadlock.
To resolve this, add a driver_trans_start_wait to hdd_driver_unload.
This will ensure that either the unload waits for all other trans to be
completed before proceeding or set the driver_load_unload flag which
will result in upcoming trans to get rejected.
Change-Id: I64b03843065e5eef7c2be209c1f8cb936bdd0742
CRs-Fixed: 2683032
Host driver do receives radio tx power level stats as part of
radio stats even though we have different event ID for that.
Handling the tx_power_level as part of radio stats only if
num_tx_power_level is set.
Change-Id: I46aff51c70c444c94c9b10f32b7776ba4a1ca4e8
CRs-Fixed: 2686882