Move the resource configuration command after initializing
pdev wmi handle and just before wmi init command.
CRs-Fixed: 2801602
Change-Id: I3a476cbbccd5874c79cfa08f1252c728ebc9a5c6
fft bin size adjust parameter is no longer applicable for
QCN9100. Remove QCN9100 in the check for setting this paramenter.
Change-Id: Ibff3d2d618e20563add79e65e31a442d8d36ba61
CRs-Fixed: 2804120
Host gets spectral scan data after stopped spectral scan, then it
can't find out current vdev since vdev id is reset when stopping
spectral scan.
Change-Id: I082b784e998a7600c7f8ef14bf67b790942f3a5f
CRs-Fixed: 2779397
QCA6490 expects twt_ap_pdev_count 2, to bring up twt sap on 2g.
Currently twt_ap_pdev_count is derived from num of radios and is
1 in case of MCC.
Configure twt_ap_pdev_count value equal to number of phy
advertised by firmware in wmi service ready ext event, configure
under flag WLAN_TWT_AP_PDEV_COUNT_NUM_PHY if defined in kbuild
Change-Id: Ib3fa81d140b473daa253e32cde2e11aad1b78b4d
CRs-Fixed: 2786512
Spectral parameter state information is accessed in both
process context and tasklet context. Currently
qdf_spin_lock/qdf_spin_unlock is used to protect these data structures.
This can lead to deadlock in the scenario where the process holding the
lock gets preempted by the tasklet. To avoid this use
qdf_spin_lock_bh/qdf_spin_unlock_bh.
CRs-Fixed: 2776902
Change-Id: I6d188e55d5066241b5f38a655f4a587c9edb0b8b
wmi_unified_register_event has a return type of QDF_STATUS.
Handle the same return type in the following callers:
1. target_if_dfs_reg_ocac_event
2. target_if_dfs_reg_offload_events
3. target_if_reg_phyerr_events_dfs2
Change-Id: I622f6f6c4ff3b428a6407b6526e823083cc1fd8a
CRs-Fixed: 2767507
Firmware advertizes its support to place FST in CMEM,
export this capability to DP.
Change-Id: I265246bcfd38a36e34c4ede66e117a92bb185032
CRs-Fixed: 2772238
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: I29fd5e645c7b43c74e28494c83a6f7d460165e2e
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: If77efc6a5b451bf2cf4acb59d5a2126ce486f02f
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: Ia6d1781f2bf1eea85d4af357e37a00b1f78e264e
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: I18c687ad0564ec70e28cf1f33f26501dda6ee5c5
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: I1dc098793e1df658666343d4293fe3f1c02daf34
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: Icfa7946a447f3cfe8c6ce933a618e8dbb67bd6a0
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function
CRs-Fixed: 2764185
Change-Id: I87b1e6ee5e06e4e6af81395d977595335fe0bc5c
When user programs a non-zero scan count(say N), after receiving N
samples Spectral scan is supposed to be stopped. This change keeps track
of number of Spectral reports received from target and stops the
Spectral scan when programmed number of samples arrives at host.
CRS-Fixed: 2764935
Change-Id: Ibea0eeece4577fd6e0da302716869b05c900f917
The 2nd argument passed to the function is_primaryseg_expected
is used to index the array spectral->rparams.fragmentation_160 which
is of size 2.If the value of the argument is greater than or equal
to 2, the indexing will lead to array-out-of-bounds access.
The fix is adding the relevant validation check.
Change-Id: Iccf98b06c0546ad11ec67e93e14183214100107f
This change allow Tx VDEV of MBSS mode to configured
dynamically by reset the VDEVs.
This change includes FW service bit parsing, checking
VDEV state of all VDEVs, sending MBSS information in
VDEV start command
Change-Id: I46b13629bd1c07be86b408d72c2967642ce8542e
CRs-Fixed: 2759229
Release delete wakelock in delete response handler.
Release stop wakelock after sending the down command to
firmware so that it completes the disconnect sequence.
Change-Id: I0f47be04652178494d9cf0475af74ea573978005
CRs-Fixed: 2760116
To get the channel state for 5g bonded channel using the freq
use wlan_reg_get_5g_bonded_channel_state_for_freq.
Change-Id: I0b42e9c547ba70259e88137a5a26c238cd66da8d
CRs-Fixed: 2756463
When the option -Werror=tautological-compare is enabled, the compiler
reports error because bitwise comparison always evaluates to false.
Change-Id: I7532dc9bccb69e02be5f04897a6ecaff44e84a0d
CRs-Fixed: 2734883
Retrieve the max users per-PPDU supported in Uplink
and Downlink direction, from the fixed params of WMI
service ready ext2 event.
CRs-Fixed: 2747218
Change-Id: Ib9f9bd4313dd1955c607d4fe77b02e34761d1c20
The 'timestamp' field in CFR meta data corresponds to TSF
at the reception of PPDU in micro second unit. To capture
timestamp for one shot, periodic and repetitive channel
capture, this field is being used.
case 1:
For one shot and periodic capture, the clock used for
timestamp is private to the target and not visible to host.
So it is being passed by FW to host and the placeholder
being exchanged between Host and target is of 32 bit.
case 2:
In case of repetitive channel capture, the
timestamp is being populated from the received PPDU,
which is 64bit.
To accommodate the timestamp, in both above cases, change
the data type to u_int64_t from u_int32_t
Change-Id: Ifa612bd97dc4f597368daefcd4224b84f2484c03
CRs-Fixed: 2751408
Enable CFR support for IPQ5018.
Calculate stream FS buffer length based on CFR payload,
CFR uCode header and CSI metadata.
Change-Id: Idd903ead75d635ce87ffc0df80e5c32fb62d15aa
CRs-Fixed: 2751408
Repetitive channel capture configurations usually support
16 groups to be confugured. To check if a particular group
is enabled by user, qdf_test_bit is being used here.
qdf_test_bit usually operates with uint32_t and it takes
the argument as unsigned long type. Since,
modified_in_curr_session is declared as uint16_t, and then
typecasted into unsigned long.
Change the data type of modified_in_curr_session
from uint16_t to 'unsigned long' to avoid compiler
issues.
Change-Id: Iec778dc36d5671f2cfb643c9ced1bd2a6104de2b
CRs-Fixed: 2753267
Currently wifi positioning api to update channel bandwidth
info is invoking regulatory component api to set the channel
params with BW as CH_WIDTH_MAX, because of which regulatory
component is returning the maximum BW supported for the current
regdomain which is 160MHz. If target does not support 160MHz in
that case it may lead to undefined behavior.
To address this issue, pass max supported BW by target as
argument to regulatory component so that regulatory component
does not return the BW greater then the target supported BW.
CRs-Fixed: 2730665
Change-Id: I6051336ab2f3ea902a70ed80290e5a5f060de5b9
Host updates band to mac params and sends to FW in INIT command, FW uses
it to configure MACs. If host configures DBS in INIT command param but
FW doesn't advertise wmi_service_dual_band_simultaneous_support service
then host does not configure band to mac params in INIT command and let
the FW initialize MACs with default value.
As FW supports DBS and at the same time doesn't advertise
wmi_service_dual_band_simultaneous_support, host configures band to mac
params for only one MAC i.e. MAC0. FW either expects both the MACs
configuration from host or both not configured. If host configures only
one MAC, second MAC i.e. MAC1 configure remains empty. FW crashes as it
starts operation on MAC1. Hence host doesn't configure band to mac params
in INIT command.
Change-Id: I00104d7e6b911e0f792597346629b3c77c102c70
CRs-Fixed: 2752248
Update the signal strength calculation logic in CFR to consider
negative SNR i.e., a signal below the noise floor.
CRs-Fixed: 2753751
Change-Id: I2e2b95cc2ac2cf50ad5b7e38977ab971ddeb1ecf
Add freeze_tlv_version in cfir_enh_dma_hdr where,
version 1: Cypress/HastingsPrime which supports single user
channel capture
version 2: Maple/Spruce/Moselle which supports MU channel
capture for up to 4 users
version 3: Pine which supports MU channel capture for up to
37 users
CRs-Fixed: 2741027
Change-Id: Iadd6dc2ff82030f502776ce35988b4472450337e
For SAP on DFS channel, the PCIe link down should be prevented
so that HalPhy can access DDR memory to report Radar found event.
Change-Id: I5eb1076196c509f0279781dbe3269d62132aeabc
CRs-Fixed: 2712800
A new BDF option is added for scan radio boards to disable/enable DFS
detection. This flag is advertised to host via scan radio capabilities
TLV in ext2 service ready event. If customer sets the BDF so that DFS
need to be disabled, host skips the CAC timer and ignores the Radar
detection event. This change adds the following APIs.
1) Check given radio is a scan radio
2) DFS needs to be enabled/disabled for scan radio
CRs-Fixed: 2746779
Change-Id: Iabd34261aaa1067c7bbb76677aebcc8a3f89de43
FW advertises scan radio capabilities as part of service ready
ext2 event. This is an optional TLV, presence of which indicates scan
radio support for the that pdev.
CRS-Fixed: 2746769
Change-Id: I5a0231c54375e9f00c85f0ad92839e2fa6c79f39
Add service ready parameter to update the capability for Preamble Puncturing
Tx support from target. Add WMI support for configuration of Punctured
band setting from Host.
Change-Id: If5714c162356c35c7c385c4596043c0bc671be9a
Change the receive and transmit Iv in wlan_crypto_set_wapi_key
such as:
tx_iv[16] = {0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36, 0x5c, 0x36, 0x5c, 0x36,
0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36};
rx_iv[16] = {0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36, 0x5c, 0x36, 0x5c, 0x36,
0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x37};
This is done as wpi_key_tsc_counter sequence was been sent
in reverse order. 0x365C365C365C365C365C365C365C365C was
sent although 0x5C365C365C365C365C365C365C365C36 was expected.
This is because new chipset firware expects the format to be
in big endian. Also, taken care for the backward compatibility
required for the old chipset firware with the feature flag.
Change-Id: I8c795df5a9143e5089e93aaebe7787e51b570c74
CRs-Fixed: 2743162
In direct buf rx, if physical address is not intact or
is corrupt, the dbr lookup for vaddr will fail and result
in vaddr being NULL. There is no validation for this vaddr
in the caller and hence results in NULL access in the
callstack.
Add debug log and return error status when dbr
vaddr lookup fails, which indicates that there is
corruption in paddr received and avoid NULL access.
Change-Id: I76ee300ce3e686765dd5c4ee73fa71d1735c163a
CRs-Fixed: 2748529
Support a new capture_interval_mode: capture_count, where after
capture_count+1 number of frames, MAC stops channel capture and
waits for capture_interval duration before enabling again.
Add nob(capture_intervalmode_sel) to switch to capture_count or
capture_duration mode in wlanconfig application, where
capture_intervalmode_sel=0 indicates the old capture_durarion
mode where MAC stops channel capture after capture_duration
instead of capture_count. capture_intervalmode_sel=1 indicates
the capture_count mode.
Support MO marking: Current ENH CFR uses the existing MD/MO,
type/subtype filters to filterin the packets with programmed
type/subtype as either MD/MO. But for m_TARA it is also required
to consider the bw/nss/ta/ra setting. Therefore, it is possible
that not all the filtered-in PPDUs have channel capture and lead
to processing of packets which does not have captured data.
To overcome this issue, from QCN9000 onwards, MAC has MO marking
feature added for M_TARA filter mode, where MAC will consider
all TARA group configuration as filterin criteria & provides
an option to HOST to choose either filterin mode as FP or MO.
en_ta_ra_filter_in_as_fp is added to support MO marking.
Based on the discussion between HOST, FW & MAC teams, 0 is the
recommended & default setting for en_ta_ra_filter_in_as_fp.
Add nob to configure en_ta_ra_filter_in_as_fp but do not expose
to user.
Change-Id: I790d7ce500a7d779ea571635690f73dbc582cf33
To handle no-inter-band MCC scenarios for dual MAC non-DBS solutions,
add changes to detect capability at run-time based on service bits.
If the service is set then code for only intra-band MCC will be
exercised.
Change-Id: I402311fcecfd03bba67fedfb2b52f779f60b81ce
CRS-Fixed: 2730374
It starts spectral scan without vdev object, and uses the first vdev
as current vdev. which cause vdev mismatch in some platforms. So pass
vdev object or id when finding current vdev.
Change-Id: Iab55afbe2c98906021a008918f186d3d2dce5871
CRS-Fixed: 2716460
Add new channel bonding pairs as well as frequency
pairs for 40, 80 and 160 MHz with the support of
three new 5.9 GHz channels 169, 173 and 177.
Add new API reg_modify_chan_list_for_5dot9_ghz_channels
to enable/disable these new channels based on
INI value and service bit.
Change-Id: I8598e705ba4047e96e7167661ba70d4236cde251
CRs-Fixed: 2696211