gPolicyManagerEnable INI item is no longer needed. Remove this
INI item and make policy manager code enabled by default.
Change-Id: I57822f47325c03e940b2802fb02900c64d3587e1
CRs-Fixed: 1034888
gEnableM2MLimiation INI item is no longer needed. Remove entire
code related to this INI item.
Also, remove all concurrency related code defined for emulation platform
within QCA_WIFI_3_0_EMU MACRO
CRs-Fixed: 1034888
Change-Id: Iccfd1dd2935634d2552f4eaa5cd9d3ab59a7596a
In cds_complete_action API when cds_get_connection_for_vdev_id is
called to get connection index, it may return
MAX_NUMBER_OF_CONC_CONNECTION to notify that no such connection found.
up-on receiving this max number with current bug, the
cds_complete_action API goes in to infinite loop which causes driver to
crash at the end.
Fix this bug by updating API's loop correctly.
Change-Id: Iaf722afb4a450c66f976ad1a3ae4b697657216ef
CRs-Fixed: 1034888
qcacld-2.0 to qcacld-3.0 propagation
Add changes to support session and BSS creation in NDI mode.
CRs-Fixed: 962367
Change-Id: I585cd89702a2c412783ae93fb1558ed5bfe31fd9
qcacld-2.0 to qcacld-3.0 propagation
We do not support TDLS on DSRC AND DFS channels so skip
these channels in the TDLS frames.
Change-Id: I3ad523ab21d1383df189d3856f6e0759b1a2bb6a
CRs-Fixed: 975657
qcacld-2.0 to qcacld-3.0 propagation
In antenna sharing platform, if TDLS operates in the 5G band base
channel with NSS 2x2, it cannot accommodate 2G off channels in
TDLS operation. So in that scenario, 2G channels should be
skipped from TDLS off channels list.
Update driver to remove 2G band channels from supported off
channel list, when TDLS operates in 5G band base channel
with NSS 2x2.
Change-Id: I04aa00e1cecfae86570aa89d1743b54d55b2dc84
CRs-Fixed: 968206
VHT operation IE parameters values are changed in latest draft,
update the set_channel_params to set the new values as per latest
draft.
Change-Id: I2b8f78adb608bf942dff28eda44138044ba93e59
CRs-Fixed: 1022680
Ensure that the SAP operations make use of the mandatory
channel list during SAP channel selection with INI option
'gWlanMccToSccSwitchMode' set to the value of '4' which
will make use of this channel list while trying to avoid
MCC scenarios.
Change-Id: Ia43ee1d2c598c81a5ef0add9246c400577f6f694
CRs-Fixed: 1014128
TDLS implicit trigger mode works based on data traffic without
user intervention. When the traffic meets setup threshold,
TDLS connection is initiated and when the traffic
reaches a teardown threshold/rssi TDLS connection
is torn down.
Add TDLS connection tracker in the host driver to determine,
when to initiate and teardown the TDLS connection based
on data traffic.
Change-Id: I995ea9c391372515faabe5086b638f254b6b93d7
CRs-Fixed: 996988
Enhance debug information related to scan results
like adding SSID and time stamp of beacon in logs
Change-Id: Ib85dffff39d0db69a695e8167b6a221b51ef7d45
CRs-Fixed: 1013236
All the regulatory and channel management functionality
moved to CDS.
Cleanup the SME redundant functionality related to channel
parameters generation and update all the code references
to CDF API's
Change-Id: Iaf4e15b4ebb7107d8bbf7a54e42f9ea9358dcdaf
CRs-Fixed: 994562
Fix calculation of sec_ch_offset. Also fix the check for
HT40 flag to calculate the channel BW. Also fix check for
secondary channel.
CRs-Fixed: 1022025
Change-Id: If37780ea64698ab616131a550cd877368c56faa6
Add ini parameter and feature flag for
DPTRACE to enable/disable as per requirement.
Change-Id: I80db65adb7b8e82d5ea75cceac742fd229d7a2b5
CRs-Fixed: 1008087
Add BMI and firmware download support for sdio bus platform.
Refactor fw and bmi download routines to get rid of compile
time bus specific macro.
Refactor allocation and free routines for high latency bus.
CRs-Fixed: 969334
Change-Id: I2c217891d0ca4b503e7388b3ebe2f787e8325af5
Restart SAP through (E)CSA on receiving channel avoidance event
from FW instead of doing a hard restart. This provides the
advantage of not disconnecting the connected clients.
Change-Id: Ibaa74dc8d7c75ed793faa418ee8c179b4210b35e
CRs-Fixed: 1020771
Add NULL check for pointer qdf_ctx as it returned from call to
function 'cds_get_context' may be NULL and could be dereferenced.
Change-Id: Iea44cd1a2d20ee04d1720c4e8af1065320a589fd
CRs-Fixed: 1024778
Incoming Data packets are filtered by FW during WoW based on the pattern
configuration done by host.
The incoming packet is filtered out to Multicast list if configured,
else it looks for other patterns that are configured.
SSDP pattern is not configured along with Multicast List, instead it
is configured as a normal WoW pattern during system/runtime suspend.
So, all the ssdp packets are dropped by FW during WoW.
To address this, host should configure the SSDP pattern as a Multicast
filter if Multicast filter is enabled in ini, else configure it as a
normal WoW Pattern. Hence the fix.
Change-Id: I64aa30832999a779591bdfce02e13545a6cbf4f2
CRs-Fixed: 1010542
qcacld-2.0 to qcacld-3.0 propagation
CONFIG_CNSS_LOGGER is introduced to move the logging feature from
CLD driver to kernel module.
This change will mainly benefit for two things for CLD driver.
- To support for dual wifi driver instances and also
future plan of moving out the logging thread and buffer
management to the kernel module.
- While debugging the critical feature that triggers the
autoshutdown and SSR, the log buffer in the CLD driver will
be lost after the driver restart or unload.
The CLD driver will register itself to the cnss logging module and
get the radio index as the indentification for rest of the operation.
Also the message sent from CLD driver to usespace need to be packed with
struct tAniNlHdr; and the hddctx.radio_index need to be filled along with
the message, so that usespace can differentiate the message.
Change-Id: I7ea6cdefac0916b9d4dd76da175607bf7169a8fa
CRs-fixed: 995073
In STA+SAP concurrency case the SAP channel is changed to due
to concurrency operation. Since the new channel params are not
updated in sap context, the old channel params are sent to WMA,
hence the PHY MODE is passed as UNKNOWN to FW.
Set the channel params when the SAP operating channel is changed
due to concurrent operation.
Change-Id: I8ac503a1b8993401b6fbdc247872539b72901564
CRs-Fixed: 1014368
Fix the calculation of WLAN_PHY_MODE from dot11mode and channel width.
Take care of all possible values of dot11mode and channel width.
Remove the usage of vht_capable parameter. Also remove the
un-necessary usage of CONFIG_160MHZ_SUPPORT.
Change-Id: Ibc263aed99b0b948f60ac6f1bfe72d16fda5c20e
CRs-Fixed: 1009720
Fix enum values in cds_ieee80211_common by removing
unused enum values in ieee80211_opmode and updating
_MAX value in ieee80211_phymode.
Change-Id: If46be64fda0edb97881f8ea1bfe919a0a55a250f
CRs-Fixed: 989856
qcacld-2.0 to qcacld-3.0 propagation
Initialize spinlocks sap_update_info_lock and sta_update_info_lock which
are used during SAP and STA information update respectively. These
uninitialized spinlocks lead to crash during access due to bad magic
value of the spinlock.
Change-Id: I7d2df8337f9feed352430774907aa095affa5a69
CRs-Fixed: 1011996
Make special handling for monitor mode operation. Take care to handle
amsdu packets in which case firmware marks the last_frag in msdu_info
field. These MSDUs of AMSDU are stiched using frags_list of skb and
handed over to network stack.
Also take care to extract and update the radiotap header to head of
the packet.
Change-Id: I4ed9696175e63884b5db682a2a4c4df504a7fb20
CRs-Fixed: 963060
Correct comparison for 5G and 2G channel width. Currently the
maximum channel width test in cds_set_5g_channel_pararms() or
cds_set_2g_channel_params is incorrect. Set input channel width to
80p80 if input width is more than equal to maximum channel width.
Change-Id: I5a418c15474b355ea3c62c2de45052908f28113c
CRs-Fixed: 1009720
Add new user country XA to regulatory tables. This is an 'engineered'
country for Japan that has channels 5150-5230 marked as passive.
Change-Id: I6c582bc0635ecae2c37b98d761f72f222c408d2f
CRS-Fixed: 1007217
Ensure that the wait for Nss update happens only in the case of
beaconing modes. Nss update request is done only in the case of
beaconing modes. As part of Nss update callback, check for Nss
update is being done for all modes due to which subsequent hardware
mode change is not getting initiated. Fix the same by ensuring that
the check for Nss update happens only in the case of beaconing
modes.
Change-Id: Icf975661236dba54d2948484445b0509e15f1da0
CRs-Fixed: 1011483
There is a race condition between hdd_disconnect_handler and
cds_pkt_proto_trace_close while trying to update the trace_buffer.
Fix race condition by calling cds_pkt_proto_trace_deinit (formerly
cds_pkt_proto_trace_close) at the end of cds_close, after all the threads
have been torn down and other modules have been shut. Similarly,
call cds_pkt_proto_trace_init at the begining of cds_open, so it gets
initialized before any of the threads are up or any modules have been
initialized.
Change-Id: If9e2d6a360d814b7f1b0c92789dc0fd3fe3d974b
CRs-Fixed: 1009162
qcacld-2.0 to qcacld-3.0 propagation
Change to initiate BUG report in case of fatal event
Add INI support to Enable/Disable it.
The fatal event handled are as below:
- Roaming failed after successful preauth.
- SME command timeout.
- PE defer queue is full.
- CDS run out of message wrapper.
- HDD level wait for event timeout.
CRs-Fixed: 912560
Change-Id: I64dff8b7d0836340ce3bec5f5985d1919b600c23
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for EVENT_WLAN_TDLS_TX_RX_MGMT. This event contains
TDLS action frame type, subtype and if its rx or tx.
Change-Id: I6ec744518b7a391e4511c503cb858d532ef11322
CRs-Fixed: 934447
Per regulatory data, the regdomain pair mapping for
CTRY_JAPAN14 is MKK5_MKKA2 and not MKK5_MKKA. Therefore
correct the same.
Change-Id: Ica36574c2111753e4e23e2cd30d438a4613eefd8
CRs-Fixed: 1000056
Modify the set hardware mode command sequence during channel switch
in the case of SAP/P2P-GO and STA/P2P-CLI as per the latest FW
requirements. This is primarily to accommodate the time take for
calibration during hardware mode change which could lead to
momentary data stalls.
The new sequence is as follows:
1. Send (E)CSA
2. Do vdev restart/vdev up
3. For DBS downgrade:
a. PM will initiate HW mode change to DBS right away
4. For single MAC upgrade:
a. Opportunistic timer is started, PM will check if MCC
upgrade can be done on timer expiry
The old sequence is as follows:
For MCC upgrade:
1. Send (E)CSA
2. Opportunistic timer is started
3. vdev restart is initiated on the new channel
4. PM will check if MCC upgrade can be done on timer expiry
For single mac upgrade:
1. Send (E)CSA
2. PM will initiate HW mode change to DBS right away
3. vdev restart is initiated on the new channel
Change-Id: I4bce2ee176cae43b6a46c47216ed7ab47a82a54c
CRs-Fixed: 1006992
Replace the obsolete WMI command WMI_SOC_SET_HW_MODE_CMDID with
WMI_PDEV_SET_HW_MODE_CMDID and event WMI_SOC_SET_HW_MODE_RESP_EVENTID
with WMI_PDEV_SET_HW_MODE_RESP_EVENTID respectively. These new WMI
commands and events additionally carry the pdev id and all mac id
references are replaced with pdev id.
Change-Id: If2a3f93dcd1947eedce8d4eac8ed936166f7e078
CRs-Fixed: 989502
Replace the obsolete WMI command WMI_SOC_SET_PCL_CMDID with
WMI_PDEV_SET_PCL_CMDID. WMI_PDEV_SET_PCL_CMDID carries the weightage
for all the channels (preferred and non-preferred) in the same order
and length as that of the command WMI_SCAN_CHAN_LIST_CMDID. This is
in contrast to the command WMI_SOC_SET_PCL_CMDID which carries only
the preferred channel list.
Change-Id: I040f4307491d3242d2e9409dbbe8005c4b307bf5
CRs-Fixed: 989502
During peer unmap handler, while the peer is being deleted, there is a
possible race condition if the OL Rx thread is processing RX packets
and accesses the peer structure after its contents have been nulled.
Remove race condition by -
* Flush all RX packets in ol_txrx_peer_detach function which happens
before peer unmap event is received from firmware
* Avoid use of peer data structures (for example peer->local_id)
outside of peer->info_lock in ol_rx_data_cb function. Use cached
local copies of peer data structures instead
Crash signature due to the race condition:
wlan: [0:E :CDF] TXRX: Deleting peer ffffffc012fd13c0
(02:a0:c6:81:f8:c0)
Unable to handle kernel paging request at virtual address 400000001
pgd = ffffffc0018b4000
[400000001] *pgd=0000000000000000, *pud=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in: wlan(O) [last unloaded: wlan]
CPU: 1 PID: 29506 Comm: cds_ol_rx_threa Tainted: G W O
3.18.20-g5222edf-13780-g2219ed2 #1
Hardware name: Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 CD (DT)
task: ffffffc09350d400 ti: ffffffc0556a4000 task.ti: ffffffc0556a4000
PC is at hdd_rx_packet_cbk+0x84/0x224 [wlan]
LR is at hdd_rx_packet_cbk+0x48/0x224 [wlan]
pc : [<ffffffbffdd55b5c>] lr : [<ffffffbffdd55b20>] pstate: 80000145
Change-Id: I4b32313024ec214f33dcdcfc401aadfa8af9d692
CRs-Fixed: 1002081
Provide correct cds concurrency action when M2M limitation enabled and
channel switch is happening from 5G to 2G band.
Change-Id: I2e7c82831afa6a19d7716980e95951cbfc60457d
CRs-Fixed: 997785
When there is a VHT160 or VHT80+80 connection present disallow
concurrency as no other connection is supported in VHT160/80+80
mode.
Change-Id: I6ec6fe3e7883cef34d141ee78311c1d8a0966208
CRs-Fixed: 996928
qcacld-2.0 to qcacld-3.0 propagation
While suspending threads suspend complete event is set before
resume wait event is initialized.
In case resume is followed by suspend there might arise a condition
where resume wait event is set even before its initialization.
Thus after initializing the wait event thread will keep on waiting
on the event and thus get stuck.
To avoid this initialize the thread resume wait event before
setting the suspend event.
Change-Id: Iaffacd23f363f386fbaef4de066784cfd4d9e139
CRs-Fixed: 972287
Provide support for STA+SAP DFS concurrency feature
Here is the brief description on the changes,
1) if STA came up first on DFS channel and SAP is coming up second
then as per concurrency rule SAP can't come up on DFS channel,
it can come up on 5G-non-dfs or 2G band.
2) if SAP came up first on DFS channel and STA is coming up second
then as per concurrency rule SAP has to move to non-dfs channel
by using channel switch announcement IE. Once SAP moves to
non-dfs channel then and then STA can continue on connection.
3) if there is any STA connection alive then SAP/GO's PCL shouldn't
contain any DFS channel in the list.
Change-Id: Iba1a64e66fbf5182152e9d2e15041923b8528c31
CRs-Fixed: 992939
Add API to CDS to add bonded channel parameters. Given an
operating channel and channel width, the API would verify and
populate the center frequencies.
Change-Id: Ib2c5029cda567308210b028b628d96419e3fd05c
CRs-Fixed: 988355
Use the pcl channel list to do random channel selection when the
radar is detected.
Change-Id: I286bf447a398bf1d9a7a1493ac4bbfd9847de148
CRs-Fixed: 988325
Currently channel width has different enum values in
different modules. Move the channel width enum definition
to CDS to maintain single channel width enum value in
the driver
Change-Id: I6a46d0c02546263080a15a3ec7c52486fc51e98e
CRs-Fixed: 983914
Add kernel documentation for regdomain data structures. Also
rename some of the data structures to better names.
Change-Id: Iae26079ae8a7f06e2670594694ae36c2c2a0a524
CRs-Fixed: 961806