Commit Graph

1908 Commits

Author SHA1 Message Date
Rakesh Pillai
523a702050 qcacld-3.0: Remove bus bw vote when bus bw timer is stopped
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
2020-05-19 14:47:09 -07:00
Bapiraju Alla
367572ad55 qcacld-3.0: Add a sysfs replacement for getChannel
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
2020-05-15 20:14:43 -07:00
Bapiraju Alla
6b2b3ea7c8 qcacld-3.0: Add a sysfs replacement for getTdlsPeers
As part of WEXT replacement, replace getTdlsPeers with a sysfs file.

This feature can be controlled using configuration flag
CONFIG_WLAN_GET_TDLS_PEERS

file path: /sys/class/net/wlanxx/get_tdls_peers
	where wlanxx is adapter name

example command: cat /sys/class/net/wlanxx/get_tdls_peers

Change-Id: I66123266d6a3bf4c5c82f70186e35aa9942533b1
CRs-Fixed: 2681810
2020-05-15 16:37:56 -07:00
Jinwei Chen
6409e4a8c5 qcacld-3.0: add FISA flush when vdev detach
In some case, FISA flush for one FISA entry is missed which
lead to some RX frames stay at FISA entry forever, this will
cause skb leak.
  Do FISA flush per vdev when vdev detach to avoid skb leak.

Change-Id: Ie6bdf885c740a99b089290257ea6936d5804d142
CRs-Fixed: 2679221
2020-05-15 05:24:30 -07:00
Bapiraju Alla
ba6b3520d3 qcacld-3.0: Add a sysfs replacement for get_sta_info
As part of WEXT replacement, replace get_sta_info with a sysfs file.

This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_GET_STA_INFO

file path: /sys/class/net/wlanxx/get_sta_info
	where wlanxx is adapter name

example command: cat /sys/class/net/wlanxx/get_tdls_peers

Change-Id: Iac23cdc92a860279480ec9703697f22b2f0b5223
CRs-Fixed: 2682163
2020-05-14 11:20:42 -07:00
Bapiraju Alla
9171aece4a qcacld-3.0: Add a sysfs replacement for connect info
Add sysfs entry to get connection info instead of debugfs.

This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_CONNECT_INFO

file path: /sys/class/net/wlanxx/connect_info
	where wlanxx is adapter name

example command: cat /sys/class/net/wlanxx/connect_info

Change-Id: Ibe183e4665cdbea66b83abd4732e7ef33843612d
CRs-Fixed: 2682856
2020-05-13 12:39:41 -07:00
gaurank kathpalia
f47d2eb63f qcacld-3.0: Remove IBSS support from HDD
Remove IBSS support from HDD layer.

Change-Id: Ie581faa15317b8523b36507bb1662246b95c2e47
CRs-Fixed: 2684352
2020-05-13 04:57:07 -07:00
Jingxiang Ge
9ff73b6c5b qcacld-3.0: Add a sysfs replacement for unit_test_target
As part of WEXT replacement, replace unit_test_target with
a sysfs file.
file path: /sys/class/net/wlanxx/unit_test_target
        wlanxx is adapter name
        example: echo 5 2 2 1 > unit_test_target

Change-Id: I7815a4238dc39e468ae8e43d26405dc72a0a84df
CRs-Fixed: 2681473
2020-05-11 11:44:01 -07:00
Jingxiang Ge
02938bab2b qcacld-3.0: Add a sysfs replacement for suspend/resume
As part of WEXT replacement, replace wlan_suspend/wlan_resume
with a sysfs file.
file path: /sys/class/net/wlanxx/wlan_suspend
           /sys/class/net/wlanxx/wlan_resume
                wlanxx is adapter name
example:
         echo 0 0 > wlan_suspend
         echo > wlan_resume

Change-Id: I378afaa5f0ee00d893f4f9eb3e6ce2e80062b43f
CRs-Fixed: 2680776
2020-05-11 11:43:57 -07:00
Pankaj Singh
beccafae0d qcacld-3.0: Add support for thermal mitigation after SSR
Wlan driver is not caching the thermal mitigation level
configured by framework. As a result after ssr thermal
level is not send to fw.

Fix, to cache the thermal level in the driver and apply
it after ssr.

change-ID: I7ede84a11149e093b6a674c3a72f0aeb54a980db
CRs-Fixed: 2678533
2020-05-11 05:24:22 -07:00
Alan Chen
e93ba0f5b1 qcacld-3.0: Add a sysfs replacement for reassoc
As part of WEXT replacement, replace reassoc with a sysfs file.

file path: /sys/class/net/wlanxx/reassoc
	where wlanxx is adapter name

example: echo 0 > reassoc

Change-Id: Ib4f3582bb8c164dd4f3ab739367520b9aeb0f5b9
CRs-Fixed: 2676629
2020-05-08 12:33:18 -07:00
Alan Chen
549fb49793 qcacld-3.0: Add a sysfs replacement for set_fw_mode_cfg
As part of WEXT replacement, replace set_fw_mode_cfg with a sysfs file.

file path: /sys/kernel/wifi/set_fw_mode_cfg

example: echo 1 1 > set_fw_mode_cfg

Change-Id: I851df440f9eb5f73798deaf3b4d0f128f6925f26
CRs-Fixed: 2675570
2020-05-08 12:33:13 -07:00
Alan Chen
06551ba572 qcacld-3.0: Rename gEnablePowerSaveOffload to gAdvancedPowerSaveMode
gEnablePowerSaveOffload is confusing, so change it to
gAdvancedPowerSaveMode.

Value 0: Disable advanced power save
Value 1: Enable advanced power save

Change-Id: Ib5593ef31eedacdc232ffbad183974e2cd847e83
CRs-Fixed: 2676664
2020-05-04 23:12:06 -07:00
Abhishek Singh
758eff24ba qcacld-3.0: Use new enum to check the max percentage for the score
Use new enum to check the max percentage for the score.

Change-Id: I7a040f7604a426d659e732c2853fbacc2b6a5a35
CRs-Fixed: 2673982
2020-04-29 08:19:28 -07:00
Srinivas Dasari
9a0ed3383c qcacld-3.0: Delete all NDP peers when NDI is removed
When NDI is removed from framework, driver deletes all NDPs
as part of eWNI_SME_STOP_BSS_REQ. Driver posts WMA_DELETE_STA_RSP
to lim from wma just after sending PEER_DELETE request to
firmware for NDP and ignores the DEL_STA response from firmware.
If there are multiple peers, all peer delete requests are sent
back to back to firmware. NDI peer delete and NDI VDEV delete
request also follow these immediately. All these commands
can go back to back to firmware as driver doesn't wait for
any of these responses.
But firmware needs some time to send NDP end frame to
the NDP peer after receiving NDP peer delete. Firmware might hold
the NDP peer delete request till it successfully sends the frame
to the peer.
Driver must wait till the NDP peer delete response is received to
proceed further with NDI cleanup/NDI vdev delete.
So, send NDP_END_ALL to firmware to let the firmware
initiate cleanup for all NDP peers. Use ucfg_nan_disable_ndi to
do the same which takes care of waiting for response from firmware
indicating cleanup has started. Then wait for all NDP END
indications and unblock the wait upon receiving last NDP END
indication.

Change-Id: I250883b3e9759ad903c3ce17f8c2c0b74a81f496
CRs-Fixed: 2619757
2020-04-27 19:51:08 -07:00
Pankaj Singh
9dcc7e0e82 qcacld-3.0: Tdls avoid peer access after peer deletion
Currently, peer can be accessed after deletion in hdd because
cdp_clear_peer called via tdls_process_del_peer_rsp
tries to remove peer from physical device after deletion of
peer in datapath.

Fix is to remove cdp_clear_peer from hdd as it is handled by
cdp_peer_delete.

Change-Id: Ibdeb9a2a8dcf3318d66a48b9e9c7ca4d5cd74cb3
CRs-Fixed: 2663555
2020-04-24 17:09:36 -07:00
Ashish Kumar Dhanotiya
1ad7188e72 qcacld-3.0: Add support to cache he operation info
Currently if station is connected in 11AX mode, AP's HE
IE is not getting updated in the cache information of the
station.

Add support to update HE operation element in the connection
info structure of the station context.

Change-Id: I214d6cec22525788e9ce21a7d832263148989715
CRs-Fixed: 2656005
2020-04-18 11:04:10 -07:00
Aditya Kodukula
f1c3387ee4 qcacld-3.0: Add a feature flag WLAN_POWER_DEBUG for power stats
Power stats is moved from debugfs to sysfs, and hence add the feature
flag WLAN_POWER_DEBUG such that this feature can be compiled out for
low memory foot print drivers.

Change-Id: Ic395f393580fcd59faa4e4676f67a39ff37bdd1a
CRs-Fixed: 2665089
2020-04-18 05:00:54 -07:00
Liangwei Dong
eb4d039e1f qcacld-3.0: Reconnect to same BSS once again ifdd assoc timeout
Add INI - gActionOUIReconnAssocTimeout to configure driver
to do:
1. Driver will not send deauth to the AP after association timeout.
2. Reconnect to same BSS again if the last association failure
is association response timeout.
Default="00E04C 00 01"

The change fixes IOT issue with certain AP which doesn't
response first association request frame sometime. But the AP
would response second association request.

Change-Id: I9f7b8d14aaaaa97f08856c8b62e49b145db3ac91
CRs-Fixed: 2653877
2020-04-16 08:17:03 -07:00
sheenam monga
fb4299929b qcacld-3.0: Avoid peer access after peer deletion
Currently, peer can be accessed after deletion in hdd because
cdp_clear_peer tries to remove peer from physical device
after deletion of peer in datapath.

Fix is to remove cdp_clear_peer from hdd as it is handled by
cdp_peer_delete which invokes dp_peer_delete_wifi3.
dp_peer_delete_wifi3 further invokes dp_peer_rx_bufq_resources_deinit
and dp_peer_rx_bufq_resources_deinit does job of cdp_clear_peer.

Change-Id: I9013b6f0ba860b9d9309e734806e592cf13934c6
CRs-Fixed: 2662867
2020-04-15 03:12:17 -07:00
Arun Kumar Khandavalli
74014d9143 qcacld-3.0: Update hdd hang data
Whenever a recovery is triggered in the hdd layer update the
various vdev data for hang event:
	1) Vdev id
	2) vdev opmode
	3) vdev state and substate

if the reason for recovery is max scan failures update the last
scan reject, reason and the vdev id on which scan is rejected.

Change-Id: I84928e56bac1fe58e7eada0a0574b2f23124ae65
CRs-Fixed: 2651694
2020-04-01 12:39:39 -07:00
Yeshwanth Sriram Guntuka
dc0c05524a qcacld-3.0: Add support to collect EAPOL and DHCP stats
Add support to collect stats for EAPOL and DHCP packets.

Change-Id: Ibdf27a0ed2f23edca4952c63570d3f56af62b1ab
CRs-Fixed: 2650218
2020-03-29 01:28:52 -07:00
Liangwei Dong
44acfe559b qcacld-3.0: Wait for EAP Failure frame tx done for P2P GO
In GO+STA MCC scenario, after GO and ref P2P client wps 8
ways EAP frame exchange, the GO will send EAP Failure to peer
to finish WPS and send disassoc frame to peer. The EAP Failure
frame is sent by data path, but the disassoc will go through
control path. In certain condition, the GO data path queue may
be in paused specially in MCC case, which may cause the disassoc
frame sent before EAP Failure frame. And that will finally result
to P2P connection failure.
To fix by checking EAP Failure tx pending before sending disassoc
to peer in GO case.

Change-Id: I1f4b19372066da7db4b2dda050ea7a2f4f737b17
CRs-Fixed: 2637298
2020-03-28 23:41:49 -07:00
Pankaj Singh
7bb841afbd qcacld-3.0: Add wait for vdev up operation completion in Monitor mode
During set channel request for monitor mode vdev start is triggered.
The vdev operation is completed only when vdev up is send to FW.
Wlan driver does not wait for completion of the vdev up operation
and after posting set channel request context is returned to supplicant.
Supplicant sends vdev stop operation for montior mode which results in
vdev up command sending to FW after vdev stop.

Fix, is to wait for completion of vdev up operation, then return the
context to supplicant.

change-ID: I33d7f9f85848b74d1206cff145e27ca2d96580a0
CRs-Fixed: 2627239
2020-03-27 08:10:35 -07:00
Wu Gao
4425921c33 qcacld-3.0: Add HDD files for CFR component
Add host driver interface files for Channel frenquency response (CFR).

Change-Id: I8ac35befa797d8100b38210cd3831b9a78bb03f1
CRs-Fixed: 2637146
2020-03-25 17:20:12 -07:00
Alok Kumar
c99a7e3cb0 qcacld-3.0: Add API to get adapter based netif queue history
Currently, netif queue history is displayed for each adapter
by iterating over adapter list in the HDD context. But, this
iteration is not safe when unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the
iteration will result in NULL pointer dereference.

Avoid iterating over adapter list, add call newly added API, which
is adapter based, to get netif queue history. When iteration over
adapter list is needed, call hdd_for_each_adapter_dev_held API.

Change-Id: I45fd8cd80cf21931ee352d612b10752ef0837c06
CRs-Fixed: 2639882
2020-03-20 17:05:47 -07:00
Vulupala Shashank Reddy
53fff0890d qcacld-3.0: Don't add monitor mode if no interface is up
Check if any interface is up and if no interface is up
do not add monitor mode.

Change-Id: I2e1218a14881f597885334c0a195758ed35c5e5b
CRs-Fixed: 2644285
2020-03-19 10:44:45 -07:00
Jingxiang Ge
e4f1f2a0e5 qcacld-3.0: Fix double create mibstats_lock issue
mibstats_lock is a global variable, current it init
per adapter, so it will fail when init at 2nd time.

Make sure it only create once.

Change-Id: Ia8a57d049fabe311d5b353b5aa612ffa225cbc61
CRs-Fixed: 2643396
2020-03-19 07:47:32 -07:00
Ashish Kumar Dhanotiya
79d116ce7e qcacld-3.0: Do not start unsolicited timer back to back
Currently there is no check to not start unsolicited timer
if its callback is already in process. If once this timer
expires and callback is invoked, and if this timer again
tries to start before the callback completes there is no
check to prevent this timer from starting.

As the callback of the previous timer expiry is already in
progress, there is no need to start the unsolicited timer
again. To address this issue a check is added before starting
the unsolicited timer to validate if the callback is still
in progress.

CRs-Fixed: 2635740
Change-Id: Ib008562be22356c3a286fab49a61f99d6867c54e
2020-03-17 11:46:54 -07:00
Alan Chen
3c7aab4c49 qcacld-3.0: Add dummy vendor command policy attribute
Kernel 5.2+ is checking vendor policy attribute even for GET commands.
Add dummy policy attribute to following GET vendor commands:
	QCA_NL80211_VENDOR_SUBCMD_GET_HE_CAPABILITIES
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_DIAG_STATS
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CAP_INFO
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_STATUS
	QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_GET
	QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI
	QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS
	QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE

Change-Id: I354b2de86909142ed3db0fb4a4d1545ac2b37d55
CRs-Fixed: 2639687
2020-03-16 17:23:03 -07:00
Ashish Kumar Dhanotiya
cc9761c613 qcacld-3.0: Update max values of INIs related to SAR
Currently MAX values of INIs gSarSafetyReqRespTimeout
and gSarSafetyReqRespRetry leads the callback api
to execute for more than 10 seconds which is not as per
driver's scheduler design.
To avoid above issue update above INI values to limit
the execution of the callback api to execute for less
then 10 seconds.

Change-Id: Icdeaf360754b2e86119251cd66c4e8f107f08d98
CRs-Fixed: 2637653
2020-03-16 08:04:56 -07:00
Alan Chen
00f4aa9f64 qcacld-3.0: Add policy attribute to SPECTRAL_SCAN subcommands
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to be verified against while
registering wiphy to the kernel.

To satisfy kernel 5.4 requirement add policy to following vendor
commands as part of this change:
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_START
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_STOP
	QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CONFIG

Change-Id: I2c7f4e6b41d341aac7b0984838c72f33a1e1ac5e
CRs-Fixed: 2634094
2020-03-14 03:24:11 -07:00
Jingxiang Ge
b5caac2e85 qcacld-3.0: Create debugfs file for crash_inject
Create crash_inject file to replace iwpriv cmd.

file path: /sys/kernel/debug/wlan_xx/crash_inject
           wlan_xx is adapter name

Change-Id: Iad8b52bd67345b47717a776759ad6156d654bb93
CRs-Fixed: 2636352
2020-03-13 23:50:00 -07:00
Abhishek Ambure
48b790c62d qcacld-3.0: Add INI support to disable STA roaming
Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
    LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)

As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.

Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
2020-03-13 19:22:14 -07:00
Paul Zhang
3e231a9fd2 qcacld-3.0: Add policy attribute to hdd_wiphy_vendor_commands
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to ve verified against while
registering wiphy to the kernel.

To accommodate these changes, add policy for all the following
vendor commands that are being registered in the driver
	QCA_NL80211_VENDOR_SUBCMD_ROAMING
	QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY
	QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY
	QCA_NL80211_VENDOR_SUBCMD_NAN
	QCA_NL80211_VENDOR_SUBCMD_STATS_EXT

Change-Id: Ie2fb541d45ecc04dc5d3f80a3af9060c390ae7f5
CRs-Fixed: 2634373
2020-03-13 15:31:43 -07:00
Sourav Mohapatra
bde029b861 qcacld-3.0: Add policy attribute to hdd_wiphy_vendor_commands [3]
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to ve verified against while
registering wiphy to the kernel.

To accommodate these changes, add policy for all the following
vendor commands that are being registered in the driver

	QCA_NL80211_VENDOR_SUBCMD_SETBAND
	QCA_NL80211_VENDOR_SUBCMD_SCAN_DONE
	QCA_NL80211_VENDOR_SUBCMD_OTA_TEST
	QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE
	QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE_DECR_DB
	QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY
	QCA_NL80211_VENDOR_SUBCMD_STA_CONNECT_ROAM_POLICY
	QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG
	QCA_NL80211_VENDOR_SUBCMD_TSF
	QCA_NL80211_VENDOR_SUBCMD_WISA
	QCA_NL80211_VENDOR_SUBCMD_GET_STATION
	QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_START
	QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_STOP
	QCA_NL80211_VENDOR_SUBCMD_SAP_CONDITIONAL_CHAN_SWITCH

Change-Id: Ibc9ec144eac63a8dab19e01c1718d17ea5cabb35
CRs-Fixed: 2633912
2020-03-13 08:38:44 -07:00
Sourav Mohapatra
2c0cc5f4bc qcacld-3.0: Add policy attribute to hdd_wiphy_vendor_commands
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to ve verified against while
registering wiphy to the kernel.

To accommodate these changes, add policy for all the following
vendor commands that are being registered in the driver

	QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES
	QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES
	QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET
	QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO
	QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE
	QCA_NL80211_VENDOR_SUBCMD_NO_DFS_FLAG
	QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET
	QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION
	QCA_NL80211_VENDOR_SUBCMD_NAN_EXT
	QCA_NL80211_VENDOR_SUBCMD_NDP
	QCA_NL80211_VENDOR_SUBCMD_SCANNING_MAC_OUI
	QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_START
	QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET
	QCA_NL80211_VENDOR_SUBCMD_ROAM
	QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER
	QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD
	QCA_NL80211_VENDOR_SUBCMD_GW_PARAM_CONFIG
	QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY
	QCA_NL80211_VENDOR_SUBCMD_GET_RING_DATA
	QCA_NL80211_VENDOR_SUBCMD_TRIGGER_SCAN

Change-Id: I714c8b21a95144f7ed8ff4c6e038782e469edf3d
CRs-Fixed: 2621308
2020-03-13 08:38:24 -07:00
Jingxiang Ge
ba6213b1b6 qcacld-3.0: Add policy attribute for tdls/supported_feature
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to ve verified against while
registering wiphy to the kernel.
To accommodate these changes, add policy for all the following
vendor commands that are being registered in the driver

    QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE
    QCA_NL80211_VENDOR_SUBCMD_TDLS_DISABLE
    QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS
    QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES

Change-Id: I4ad3d952d2af8f1d7f37179f9c92b0e77fc2eb23
CRs-Fixed: 2635755
2020-03-10 00:19:23 -07:00
Jingxiang Ge
a6a955d19f qcacld-3.0: Add debugfs for unit_test_host/unit_test_target
These debugfs files are to replace wext cmd setUnitTestCmd
/unit_test/wlan_suspend/wlan_resume.

unit_test_host:
    /sys/kernel/debug/wlan_xx/unit_test_host
    wlan_xx is driver name
unit_test_target:
    /sys/kernel/debug/wlan_xx/unit_test_target
    wlan_xx is adapter name
wlan_suspend:
    /sys/kernel/debug/wlan_xx/wlan_suspend
    wlan_xx is adapter name
wlan_resume:
    /sys/kernel/debug/wlan_xx/wlan_resume
    wlan_xx is adapter name

Change-Id: I1ddf44b47a3f0d2e11ff74022dc1a26888da974c
CRs-Fixed: 2631424
2020-03-09 09:54:51 -07:00
Srinivas Girigowda
c58548360f qcacld-3.0: Add policy attribute to SUBCMD_CONFIGURE_TDLS
According to new changes in kernel 5.2 version onwards, driver has to
provide the policy for a NL command to be verified against while
registering wiphy to the kernel.

To satisfy kernel 5.2 requirement add policy to following vendor
command as part of this change:
	QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS

Change-Id: I181d9d5c4160847d4d1be98f2ce5fa2627b3972a
CRs-Fixed: 2634233
2020-03-06 05:29:35 -08:00
Alan Chen
e5ba8b0e36 qcacld-3.0: Add policy attribute to OEM_DATA
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to be verified against while
registering wiphy to the kernel.

To satisfy kernel 5.4 requirement add policy to following vendor
command as part of this change:
	QCA_NL80211_VENDOR_SUBCMD_OEM_DATA

Change-Id: Idf44f40763aa967681a3e5e9df43f259b0254b61
CRs-Fixed: 2635048
2020-03-06 01:12:32 -08:00
Alan Chen
e07616e9b2 qcacld-3.0: Add policy attribute to BEACON_REPORTING
According to new changes in kernel 5.4 version onwards, driver has to
provide the policy for a NL command to be verified against while
registering wiphy to the kernel.

To satisfy kernel 5.4 requirement add policy to following vendor
command as part of this change:
	QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING

Change-Id: I2f7cba7cb16d4a13fab33398e3034e71902317f3
CRs-Fixed: 2635027
2020-03-05 23:40:53 -08:00
Sourav Mohapatra
bfa435bccc qcacld-3.0: Pass double pointer to hdd_softap_deregister_sta
The function hdd_softap_deregister_sta takes the sta_info as the
argument and calls hdd_sta_info_detach. In hdd_sta_info_detach, the
memory assigned to the sta_info is being freed. For this memory to be
properly freed and set to NULL, the actual memory location must be
passed to the function; which is currently not happening.

Pass the actual memory location by reference using a double pointer so
that the memory cleanup is proper.

Change-Id: If0f846957df0378ea7a13b76bdf9c6ef562ed90e
CRs-Fixed: 2627296
2020-03-04 19:48:16 -08:00
Rajeev Kumar
f4627be10a qcacld-3.0: Add policy attribute to MPTA_HELPER_CONFIG
According to new changes in kernel 5.2 version onwards, driver has to
provide the policy for a NL command to be verified against while
registering wiphy to the kernel.
To satisfy kernel 5.2 requirement add policy to following vendor
command as part of this change:
	QCA_NL80211_VENDOR_SUBCMD_MPTA_HELPER_CONFIG

Change-Id: Id83ee15ec7eb43103e44505f44fb9ff48cb23f74
CRs-Fixed: 2634109
2020-03-04 04:22:56 -08:00
Bapiraju Alla
b9c36856fa qcacld-3.0: Periodically print ARP and DNS stats after STA association
Currently no stats were printed related to ARP and DNS frames at STA
after initial association or after roaming complete.

To print these logs, add INI configuration and a periodic timer to
print ARP and DNS stats after initial association or after roaming
complete. This is an optional feature controlled by
'WLAN_FEATURE_PERIODIC_STA_STATS' flag.

Change-Id: I373632cc35584728c5b556bb28eda1077d51fd9b
CRs-Fixed: 2619383
2020-03-03 18:52:46 -08:00
Srinivas Dasari
ef0a3e18c6 qcacld-3.0: Log disconnect reason with info level
Currently, driver logs the internal reason code and IEEE80211
reason code with debug level. But internal and IEEE80211 reason
codes are same if the disconnect reason code is in the range of
IEEE80211 reason codes. So the log info would be redundant.
Log internal reason code and corresponding vendor reason code
to be specific. Log this with INFO level so that it's logged to
default kernel logs.

Change-Id: I7b85285b626b492da5e55756c020428e498e56c5
CRs-Fixed: 2629630
2020-02-26 22:38:38 -08:00
Surabhi Vishnoi
4eaa25c659 qcacld-3.0: Add sysfs entry to display ftm time sync offset
Add the sysfs entry ftm_time_sync in STA mode to show the offset
derived for the STA(slave) with respect to connected AP(master).

Change-Id: I05b16ccdb983c53fb86eeb14ba98bd3cc9a2dce6
CRs-Fixed: 2621152
2020-02-26 14:56:29 -08:00
Abhishek Ambure
4bb3519a42 qcacld-3.0: Add support to get roam scan channels from fw
Firmware advertises WMI_SERVICE_ROAM_SCAN_CHANNEL_LIST_TO_HOST_SUPPORT
at the time of initialization. When user requests for roam scan channels
to driver using GETROAMSCANCHANNELS command, driver queries firmware for
roam scan channel list by sending wmi command with command id
WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID and vdev id.
Firmware response to WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID commmad is
WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID. This event has roam scan channel
list, vdev id, connected BSSID, command_response.

Firmware issues WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID event for two reasons,
one for GETROAMSCANCHANNELS command where firmware sets command_response=1
in wmi event and asynchronous event upon disconnection where firmware sets
command_response=0 in wmi event.

Change-Id: I690aca6c3f1e3aa7ae1fe54aadc839ea19446079
CRs-Fixed: 2621535
2020-02-21 04:41:35 -08:00
Jeff Johnson
0ab57fee82 qcacld-3.0: Put a wrapper around wireless_send_event()
Function wireless_send_event() is only present in the kernel when
wireless extensions are enabled. In order to allow the driver to build
when wireless extensions are disabled, put a wrapper around that
function.

Note that this is only a partial solution to the problem since this
means that when wireless extensions are disabled that the event will
not be sent to userspace. A subsequent effort will need to evaluate
each event to see if a cfg80211-based notification mechanism is
already in place, and if not, if one needs to be added in order to
maintain the underlying functionality.

Change-Id: Icbdddf6735bdc5ffd1ee189b5fabfa67fcce59ea
CRs-Fixed: 2621699
2020-02-20 19:40:19 -08:00
Jeff Johnson
9453a8fc58 qcacld-3.0: Refactor wireless_handlers NULLing logic
Currently there is logic to set the net device wireless_handlers
pointer to NULL in both hdd_deinit_station_mode() and
hdd_deinit_ap_mode(). This is unnecessary duplication of code, and
worse, this is WEXT-specific logic that exists outside the
WEXT-specific source files. In order to address these issues refactor
the logic into a new function that is exposed by wlan_hdd_wext.h.

Change-Id: I0fab5a7f35941f282ddf2e286fb12bfb8c4c7c50
CRs-Fixed: 2620818
2020-02-20 19:39:57 -08:00