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