When a particular vdev is deleted, the corresponding rx
packets which have been queued to the rx thread are not
flushed. Hence when such packets are submitted to the
network stack, the dev for this skb will be invalid,
since we have already freed the adapter.
Flush out the packets in the rx thread queues, before
deleting the vdev.
CRs-Fixed: 2552140
Change-Id: Ia49af2c203c64077f7fd87524bb4caa4060e0044
Currently, NDI and NDP creation is happening only if the
corresponding concurrency is allowed. But NDI should be allowed
to create/delete in all concurrent scenarios. So, don't validate
the other interfaces present on device for NDI creation/deletion
and validate only for NDP requests.
Change-Id: I8e8817ac63f1f94b48fe71a30ddf1d49183d263a
CRs-Fixed: 2552623
"intf_ch" is updated by wlansap_check_cc_intf function.
"intf_ch_freq" needs to be updated based on new intf_ch.
Change-Id: I64a9ded8f6fa1ebd9cc88f69098c88a7a01ca82c
CRs-Fixed: 2555848
If the CPU latency requirement is not there, set the pm qos vote
to default value. The target values of resume latency and active
state latency tolerance are the minimum of the request values held
in the parameter list elements.
Change-Id: Ia5a68c024c08043da840490b6207803523f5a34a
CRs-Fixed: 2554446
If defined NDP_SAP_CONCURRENCY_ENABLE, allow SAP or SAP+SAP
concurrency with NAN and don't disable NDI when call
ucfg_nan_check_and_disable_unsupported_ndi.
Change-Id: I684df7608623f8eb77d485a61e8d9c6f3319574a
CRs-Fixed: 2547493
Set cpu_mask for affine cores on init before sending a
request to PM QoS interface to insert a element into the
list for DMA latency in the QoS framework.
Change-Id: I81f17077c6ddce69c99047c46cef008b6b195d77
CRs-Fixed: 2551349
Fix compilation issues related to IPA and DP when built for target
QCA6174. Here is the change to fix them.
Change-Id: I4441858450a78cdd98e3c5e25cdeee00c3a7db9e
CRs-Fixed: 2554619
In hdd_stop_adapter and hdd_stop_all_adapters, sap_pre_cac_work is
sometimes being flushed when it is not initialized. Put a check to only
flush if it is initialized.
Change-Id: I1e25ae06f351188c1bc45c4f94c80b3c77799b88
CRs-Fixed: 2554551
When values such as -EAGAIN are returned as the return value, it causes
the notifier block chain to stop being parsed by ip6_route_dev_notify(),
which results in the pointer to nh_dev in fib6 being NULL since the value
is not able to be set. To solve this, set hdd_netdev_notifier_call to
return NOTIFY_DONE so that the error value returned does not prevent the
notifier block chain from progressing.
Change-Id: I294a837e9f6c9712d45a9a96b5f0967af968b8b6
CRs-Fixed: 2553168
Currently in the driver, hdd_send_hang_reason() checks validity of
current context using wlan_hdd_validate_context(). This checks if the FW
is down and if recovery in progress along with other conditions. This is
a contradiction as the purpose of the API is to send the reason for
hang, which can come during FW down. The wlan_hdd_validate_context()
check prevents this from being sent to the userspace via the command
QCA_NL80211_VENDOR_SUBCMD_HANG.
Remove the wlan_hdd_validate_context() check as it is not required as
per the scenario.
Change-Id: I34da018ab4792f5c613d7ec2da8526261ee20e84
CRs-Fixed: 2554019
Presently, the driver performs device assert on re-init failure after
SSR. This is not desirable as in some cases the reinit failure can be
recovered from.
Change the default value of the INI controlled variable to 0 to avoid
this assert.
Change-Id: I802921e8602e0648cacc4185f550b72ad2b3af66
CRs-Fixed: 2547295
In special case when vdev delete for wlan disabled,
event eWNI_SME_DEL_STA_SELF_RSP has been sent
to QDF_MODULE_ID_SME queue, but scheduler thread have no
execution chance, timed out waiting for sme close session in
hdd_vdev_destroy, sme session isn't cleaned up.
When enable wifi again, vdev create failed for cannot re-open
active session, wifi failed to start any more, can't recover
until system reboot.
Fix:
When timed out waiting for sme close session in
hdd_vdev_destroy, clean up sme session too as normal process.
Change-Id: If6c6ed313928294bb83ebbc0e716a574e6a07470
CRs-Fixed: 2547355
Support wlan ipa clk voting for kona. Host should provide
bandiwdth levels to IPA driver for which IPA uc monitors
the levels. Once the threshold is reached IPA uc interrupts
the IPA driver and IPA driver informs host driver via callback
registered.
Change-Id: I9fd805d69858a413f20b9e55a9c02a82054c646b
CRs-Fixed: 2526300
This change is to support 11ax linkspeed rate
on UI.
It supports different config for gReportMaxLinkSpeed.
Current 11ax rate support to max 80 nss2 mcs11.
Change-Id: Iff8cbafe1354ab50c4b3a90ef8ab698a3350a21d
CRs-Fixed: 2529291
Since peer mac instead of sta_id used to find pointer to peer in
dp_register_peer, so copy and pass peer mac address when register new
ndp peer.
Change-Id: I47ab345fff83d9c03208c5c1457db0fb7f6ed9c0
CRs-Fixed: 2546705
Due to channel number ambiguity with 6ghz, update channel references
in HDD STA connection path to use channel frequency.
Change-Id: I81f3449c9087030e4d98c17a5b12c731f99b39ab
CRs-fixed: 2552009
As a part of cdp convergence the pdev_id
is used to obtain the pdev handle on need
basis.
Instead of the pdev handle, use the pdev_id to
retrieve datapath pdev handle.
CRs-Fixed: 2539733
Change-Id: I887ea2f1a312207cbb642b33435f4e7111068c62
At the time of starting / stopping 2nd or 3rd connection,
Host sends WMI_PDEV_SET_HW_CMDID command to FW to change
HW mode to DBS / Single-Mac based on concurrency rule.
FW upon receiving this command turns off TXRX chainmask
which means that radar pulses might get missed for
20ms - 50ms during CAC period. To fix this, Host should
block new connection when existing SAP is performing CAC
on DFS channel.
Change-Id: I51eb117afa763a6ef54211808875419026c9075b
CRs-Fixed: 2533717
Currently logs for wifi_pos module are not enabled,
because of which it is difficult to debug the issues.
Enable the wifi_pos logs to address above issue.
Change-Id: I777076d5cd0251b7c714bf22fd885e0cabda6ea2
CRs-Fixed: 2547557
wlan_reg_get_channel_state does not return CHANNEL_STATE_DFS for DFS
channel if this channel is in NOL. Use wlan_reg_chan_has_dfs_attribute
to fix this issue.
With above fix, new issue is exposed. hdd_ctx->sap_dfs_ref_cnt is used
as a flag, If hdd_hostapd_channel_allow_suspend is called after
hdd_hostapd_channel_prevent_suspend, whatever the new channel state is,
if the old channel is going to release dfs lock, then dfs lock is
released. Generally we should handle the old channel then handle the
new channel, so exchange the order of hdd_hostapd_channel_prevent_suspend
and hdd_hostapd_channel_allow_suspend when doing channel switch.
Change-Id: I9bbeeb5ac23f3c2eaf694f64e0fea433dcc34740
CRs-Fixed: 2543642
Dump the regulatory channel list with tx power
info. The channel list log can be processed by
script to do validation.
Change-Id: I7b3badd026556c1d805e6f3770fae33838f6ee6e
CRs-Fixed: 2548231
When an attempt of connection failed and followed by a disconnection
initiated from user space, randomly it would take more than 10 seconds
to complete the disconnection due to disconnect_comp_var is not
completed in some race condition and it has to wait till timeout.
To fix this race condition, in hdd_association_completion_handler, also
need to complete disconnect_comp_var for the case when hddDisconInProgress
is true and roam_status is eCSR_ROAM_ASSOCIATION_FAILURE or
eCSR_ROAM_CANCELLED, it will also cover the following scenario besides
the one mentioned above:
Connection is in progress. But the connect command is in pending queue
and is removed from pending queue as part of csr_roam_disconnect.
Change-Id: Ib6a30057469d60efcc905d97b5234ea5a0e097a8
CRs-Fixed: 2547320
Presently upon interface up a message is posted to the scheduler
to create the vdev, which sends the vdev create to the firmware,
for the vdev create there is no response from the firmware host
internally posts a fake message internally for the vdev create
response.
Dont post the vdev create to the scheduler thread but directly
send the vdev create to the firmware in the caller context.
Change-Id: Iafb186b13d948e421d152c3142cb8614fdbbffa6
CRs-Fixed: 2549530
When the ini gReportMaxLinkSpeed is set, it indicates that the rates
provided to the userspace should give the maximum possible rate for the
given connected parameters. But currently in the driver, the max rate
that is being sent to the userspace is dependent on the NSS at which
the tx/rx is being done. The NSS is calculated by taking the union of
the value from assoc req and from the rate table using MCS index/rates
from firmware. The rates fluctuate as per the tx/rx by firmware which
subsequently affects the NSS in the host.
To keep the max rate independent of this changing NSS, decouple the NSS
calculation to contain the value from only the assoc req when reporting
max rate.
Change-Id: I03d10e397fca6853d05b4812a2adeac0110bc517
CRs-Fixed: 2548498
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_pcl
policy_mgr_update_with_safe_channel_list
policy_mgr_get_valid_chans_from_range
policy_mgr_get_valid_chans
policy_mgr_set_sap_mandatory_channels
policy_mgr_get_pcl_for_existing_conn
policy_mgr_get_mode_specific_conn_info
Change-Id: Ia21829345be2746cd3fc1f2337cfc90abf0c53f4
CRs-fixed: 2550092
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_chan_by_session_id
policy_mgr_get_mcc_operating_channel
policy_mgr_check_and_set_hw_mode_for_channel_switch
policy_mgr_is_chan_ok_for_dnbs
policy_mgr_is_safe_channel
policy_mgr_valid_sap_conc_channel_check
policy_mgr_disallow_mcc
policy_mgr_add_sap_mandatory_chan
policy_mgr_remove_sap_mandatory_chan
policy_mgr_is_hwmode_set_for_given_chnl
policy_mgr_is_valid_for_channel_switch
policy_mgr_update_user_config_sap_chan
policy_mgr_is_sap_restart_required_after_sta_disconnect
policy_mgr_is_sta_sap_scc
policy_mgr_nan_sap_scc_on_unsafe_ch_chk
Change-Id: I682f8380d9dc41fc015d73f06b6e055d1d04ef97
CRs-fixed: 2545110
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_allow_concurrency
policy_mgr_nan_sap_pre_enable_conc_check
policy_mgr_allow_concurrency_csa
policy_mgr_current_connections_update
policy_mgr_incr_connection_count_utfw
policy_mgr_update_connection_info_utfw
policy_mgr_get_channel_from_scan_result
policy_mgr_update_and_wait_for_connection_update
policy_mgr_get_sap_mandatory_channel
policy_mgr_checkn_update_hw_mode_single_mac_mode
Change-Id: I162c2b90a58539194907c5ecd6915eafecc635cc
CRs-fixed: 2545099
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_is_chnl_in_diff_band
policy_mgr_check_for_session_conc
policy_mgr_handle_conc_multiport
policy_mgr_change_sap_channel_with_csa
policy_mgr_get_channel
policy_mgr_get_nondfs_preferred_channel
Change-Id: I4a6673db3a02b6e8d7fa94ae452338db618e3883
CRs-fixed: 2545099
Remove sta index references in TDLS structures and APIs
and mac address would be used instead to refer the peer.
Change-Id: I861f7ce068f3f545598129b9f3955b84b2a6fbce
CRs-Fixed: 2524512
Remove usage of cdp APIs to fetch local id and cleanup
few sta index references in wma and lim.
Change-Id: I32633ef7491b3b91ee55dd813a009c4d8010a3f5
CRs-Fixed: 2524506
The IOCTL command WE_IBSS_GET_PEER_INFO used to fetch the IBSS peer info
is not used by any external entities. Also, as sta_id is being removed,
the implementation of the current ioctl is outdated.
Remove the IOCTL command all together.
Change-Id: Id4dfafb8d42f6c04af46a633df2a1d1e232da5e4
CRs-Fixed: 2532488
As a part of the sta_id clean up, remove the usage of the sta_id from
struct hdd_connection_info. Instead of the station id, use peer mac
address to interact with the protocol and DP layers.
Change-Id: I60b939c37ff49b50579791f45e3e81ed81b86967
CRs-Fixed: 2524514
WHUNT is host unit testing framework which simulates
firmware. Add a PLD wrapper layer for this virtual device.
Change-Id: I1d09b8a18a25b414b0c1d56723cc5687f2bfe297
Based on the current, Host driver assign a int value to tstamp directly.
But it is not compatible with previous kernel version.
Use function "ktime_set" to assign the value.
Change-Id: Id5fb5001e22aea8503c2dafbfef3fc8d27de1166
CRs-Fixed: 2549495
Currently the driver checks for the ACS in progress
in change iface and returns fail if the ACS is in
progress. The return status is not checked by the
kernel and it assumes that the interface change is
successfull, which may lead to out of sync between
driver and kernel.
Fix is to wait for ACS completion if the iface change
or interface down is triggered in between ACS.
Change-Id: Iaabd42fc959a533041b18b181e1b63493f17e0a5
CRs-Fixed: 2541325
Update policy manager to use regulatory module API to get valid
channel list instead of MLME config item.
Change-Id: I2fa24c73892746de68ece00e50fd55d6135b7753
CRs-fixed: 2545120
Update policy manager data structures and APIs to use frequency
instead of channels. This is done to address channel number
ambiguity with introduction of 6GHZ band. Fix all references of
channel and add temporary internal functions for frequency
usage as replacement for public APIs using channels. Also modify
the channel list handling to frequency list in associated modules.
Change-Id: I11dff14a5fbe6d49cf411f8fce6863994ffccd75
CRs-fixed: 2540000
There is no sync between driver unloading & SSR recovering.
If SSR is in progress, need to wait when driver unloading.
Change-Id: I81b935f9d8d6336b68abd6aecbdc7d28f4762be9
CRs-Fixed: 2534890
Do not check for center frequency segment 2 with 160MHz bandwidth
in set channel as hostapd does not set it for 160MHz mode.
Change-Id: I43a7a30b5f6e1c5916ddc2c72e18b82fc6814b06
CRs-Fixed: 2545967
Current code in __hdd_bus_bw_work_handler function there is a
possibility of variables sta_tx_bytes and sap_tx_bytes uninitialized.
Improve the code by initializing the variable.
Change-Id: I6e21350267e9ff7a5b3a5cb5b3f3166d26121c8a
CRs-Fixed: 2536318
Implement metering stats quota to support ipa offload sta plus
sap wifi sharing use cases.
Change-Id: Ic9d5ad817ffb4d671a43f3f3aebb2d8cce293873
CRs-Fixed: 2517696
Based on the current codes, Host driver use "tstamp" of skb buffer
structure to store HW timestamp info. But this parameter is designed
for SW timestamp. If host driver fill the value to "tstamp", it will
affect other functions, for example, NTP, PING etc.
The host driver use "hwtstamp" of skb buffer structure to store
the HW timestamp info now.
Change-Id: I8d92e0afe212bc4a5cdad1b30cd12f36ab9a0ebc
CRs-Fixed: 2547514
Commit 9e02e1e104 ("qcacmn: Cleanup dp_register_peer [PEER_ID_PHASE1]")
of qca-wifi-host-cmn changes peer search from peer id based to mac address
based, this change makes corresponding fix for monitor mode, otherwise it
will fail to get wlan interface up, since can't find peer.
Change-Id: Ife031b9e9b856850e08ef8c195e1a99c6dee80c5