Till IPQ8074/IPQ8074_V2 each Spectral detector was capable of
doing scan up to 80 MHz. But in QCN9000 each Spectral detector
is capable of doing scan up to 160 MHz. As a result there will
be only one Spectral report in 160/80p80 MHz. Modify Spectral
Rx path to support single Spectral report in 160 MHz.
Change-Id: I9639cdc6adc6ad80e2769571b06d2a2021d699bc
CRs-Fixed: 2619544
Fix the case where RNR list can be used uninitialized and
fixed the OOB memory write access in 6Ghz BSSID and SSID hints
in scan req.
Change-Id: Ifc6a5f65876cd3ace744031bf59a3640409b63da
CRs-Fixed: 2637039
Per requirement, if STA+SAP is working on same 5G DFS
channel and INI g_sta_sap_scc_on_dfs_chan = 2, the
SAP DFS master is temporarily disabled to skip radar event,
and it will follow STA's channel movement. So, skip the
radar event processing based on STA+SAP concurrency policy,
otherwise the SAP would be stopped by kernel because the
current home channel is marked "disabled" by regulatory
during processing of radar event.
Change-Id: I3f851fe694c0e127665732894306e20f5d1c93f4
CRs-Fixed: 2636200
Add support for WMI event to host to process
dynamically selected Muedca values and update
the mgmt frames with the new set of values.
Extract the params and store in Muedca_param
struct from control path, to be used for
updating mgmt frames.
Change-Id: I6cc7756d1a246ff994edef195f6191d280bc5c47
Remove static from nla_policy btc_chain_mode_policy in correspondence to
the change to add policy attribute to BTC_CHAIN_MODE vendor subcommand.
Change-Id: Ie33542199d27f6b9d8ea5e0a1a063b71ecb7fd94
CRs-Fixed: 2635059
Remove static from nla_policy spectral_scan_policy in correspondence to
the change to add policy attribute to SPECTRAL_SCAN vendor subcommand.
Change-Id: I764a51f5c1355cb0c3dd2096e6dc7ee332b2f3d6
CRs-Fixed: 2634075
Build failure happen when use the incorrect print format for
pointer. The timer type should not be used for time difference.
Use %pK for pointer format, and change the variable type to
uint64_t for delta_us.
Change-Id: I7da553ee2a770e4498a23f16d5187dec74357635
CRs-Fixed: 2639868
When regdb is non offload, it invokes ucfg_reg_program_default_cc
to initialize the default country code. Because the num_phy is not
initialized and the country code source cannot not initialize
properly in function reg_process_master_chan_list, 11d cannot be
triggered.
Solve the problem mentioned above by initializing num_phy in
reg_program_default_cc. Since it is non-offload, initialize
num_phy to 1.
CRs-Fixed: 2584347
Change-Id: Idaed2badc908c74bcbb9312368fed8cbb71ac69c
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 accommodate these changes, add policy to the following vendor
command that is being registered in the driver.
QCA_NL80211_VENDOR_SUBCMD_ABORT_SCAN
Change-Id: I7cd4e6c50a48580a124e36c32b9cbebe557c04bf
CRs-Fixed: 2621311
From Genoa firmware request, in order to improve
the IPA througput, increasing the number of copy
engine 8 entries and other nbytes values.
Change-Id: Ib1ae170c3b3f5af61d03ad8a60bc616b7a58a725
Add an attribute QCA_WLAN_VENDOR_ATTR_SCAN_DWELL_TIME for specifying
dwell time in the QCA vendor scan command. This is a common value
which applies across all frequencies requested in the scan.
Additionally, update the existing definitions in enum
qca_wlan_vendor_attr_scan to the exact code upstreamed.
CRs-Fixed: 2633010
Change-Id: I09feccc99fb8e53538d495345eda9744e36fc5b4
Both im_intfr_cnt and im_samp_cnt need to store for following
dcs event process, dcs_im_stats is a local variable, so both
im_intfr_cnt and im_samp_cnt value will be missing when function
wlan_dcs_wlan_interference_process return.
Fix is to define pointer p_dcs_im_stats for use.
Change-Id: I39622fbf0153271f27a03387ace4a270a912b6ff
CRs-Fixed: 2638316
Fix the issue on block ACK on response to BAR frame.
Parse BAR frame received from monitor destination ring and
generate block ack frame from BAR frame and previous block
ACK frame.
Change-Id: Ifc242b3850630aa25827b003a1e2078a9228358a
For 6G band, only valid opclass_table is the global_op_class
as per the current specification. Therefore, if the band is 6G
set the opclass to global_op_class instead of the default class.
Change-Id: I43d1be8266aa80b11c446d84bc3d027cde8bebea
IPA pipes are not disconnected successfully when the last
client disconnects and despite that smmu mappings given
to IPA for the buffers are released.
Assert instead of releasing the smmu buffer mappings as
IPA has stalled and is in a non-recoverable state.
Change-Id: I9a9a35a4019726421d7435b62defe8da4907d4e0
CRs-Fixed: 2627889
Add HIF APIs to prevent or allow link to go into low power states. The
current implementation uses PLD APIs to make the needed configuration.
Change-Id: I22efb4bcf902f9aff674ed1872f4f23bef508aae
CRs-Fixed: 2602029
In case the bus is in low power mode, the register writes (followed by a
memory barrier) may take a long time (~4ms). This can cause the caller
to block till the PCIe write is completed. Thus, even though PCI
writes are posted, it can still block the caller.
Hence, in case the bus is in low power mode (not in M0), or not in high
throughput scenarios, queue the register write in a workqueue. The
register write will happen in the delayed work context. In other cases,
i.e ,when the bus is not in low power mode or in high thoughput
scenarios, do the register writes in caller context.
Change-Id: Idf218e4581545bc6ac67b91d0f70d495387ca90e
CRs-Fixed: 2602029
Modify the qdf_get_pkt_type_string API to return
the packet type in case the packet does not fall
under the tracked packet subtypes and also increase
the rate limit values for EAPOL and DHCP packets.
Change-Id: Ie9681be64572346a09529043ef38dd57338700bb
CRs-Fixed: 2636540
If reg offload is disabled, then ignore the processing of
WMI_REG_CHAN_LIST_CC_EVENTID in regulatory module.
Change-Id: I5da0cdf2c80357d03199fa367137cc236f4c3307
CRs-Fixed: 2625784
Host rx return_buffer_manager should always be 4 or 6. Add check for
invalid return_buffer_manager value in ring descriptor.
Change-Id: I509dd58ddd89e6a0ce1bffa509dcfabbd0fbc975
CRs-Fixed: 2632372
Send peer_id in peer_add_wds_entry API of ol_if_ops,
so that the dp peer doesn't need to be explicitly
retrieved in corresponding offload API.
Change-Id: Ia32d31946de43e9faa1970f4e74f2810f4125995
CRs-fixed: 2629475
Currently information is printed in multiple lines that
can be represented in single line.
Change-Id: I7f53acaa4cabd1c970b06cdd82e0c462ffcdffe1
CRs-Fixed: 2617812
Currently there is no check for whether the timer is in use or not before
cancelling a vdev response timer. Because of this hdd is trying to cancel
a vdev response timer that is not initialized. This is causing crash in
the kernel.
To resolve this issue, add vdev_rsp->rsp_timer_inuse check before
cancelling a vdev response timer.
Change-Id: Ibc82e7698472d11b0803dfc77d654b1ad33aa375
CRs-Fixed: 2630621
In the current implementation the wmi cmd flags to enable bcn rate
code n start req are not getting updated as the flag param is passed
to the API by value and not by reference.
Update the API argumets to pass the wmi cmd flag param by reference.
Change-Id: I8bca4ce78ce68f7b0d05af871641a86bf6622607
CRs-Fixed: 2633704
Initialize to fix "maybe-uninitialized" compilation
error for specific compilers.
Change-Id: Ibb049891ef5847d1beda94470a6e75ebba145ef4
CRs-Fixed: 2634848
This change fixes issue with EAPOL frames in Tx capture
EAPOL frames completions are received with ACK completion.
For ACK completion, ba_size, ba_bitmap, ba_seqno are not updated earlier.
it was leading to dropping the frames in driver.
This fix updates ba_size, ba_bitmap, ba_seqno for QOS TID frames in ACK
completion handler
Change-Id: I58308a13c1b6addb95f424aa7ad45fe64e93b532
CRs-Fixed: 2620890
In kernel 5.4, Wake lock API wakeup_source_register requires
"struct device *" parameter, and it can be NULL value. If it is
NULL, the wakeup_source_register will create a "device" node and return
it by wakeup_source struct.
In qcacld driver, the qdf_wake_lock_create will save the "wakeup_source"
to cld's private struct qdf_wake_lock->lock.
When the cld driver destroy os wake lock by wakeup_source_unregister,
"dev" will also be invalid in kernel, we need to clear the "dev"
field in local copy of wakeup_source in qdf_wake_lock->lock.
This will fix the potential reuse of qdf_wake_lock->lock.dev after it has
been destroyed.
Change-Id: I1de6e95c64b35929bef8be2cdeeb86422bc38515
CRs-Fixed: 2634032
If RX packets reaped from REO2SW ring hit rx_reap_loop_pkt_limit,
REO2SW ring reaping will break and stop, but for scattered msdu case,
all related buffer should be received one time for further processing,
otherwise dp_rx_sg_create can not handle correctly.
(1) make sure all buffers for scattered msdu is received then allow
break when rx_reap_loop_pkt_limit hit.
(2) refine skb unmap location in case msdu_scatter_wait_break logic is
hit, then may double unmap for same skb(not for current issue).
Change-Id: I85d385ee9c3b1a5ed56ae5e5b68636d04968553f
CRs-Fixed: 2632082
For qca6750, update the SHADOW REGISTER OFFSET value and
fix the compilation issue.
Change-Id: Ic4b44c1c40e62ddcc50c0a66d37c0663a70b5c54
CRs-Fixed: 2633044
Add the API wlan_reg_get_band_cap_from_op_class to get the supported
band capability from an list of operating class as input.
Change-Id: I58dc0bbe7c5436b889c12ac2d68bd769a3c702cf
CRs-fixed: 2617526
Write TID-no correctly for DSCP-value if
2 consecutive registers are needed to configure
the mapping.
Change-Id: I857f95e2d1bda0214a32b2802f1dcc460be87085
Add wlan regulatory API reg_country_chan_opclass_to_freq
to calculate channel frequency given country, opclass and channel
number. The API gets channel frequency from country's operating
class table by opclass and channel number pair. If the driver
can not find the pair, then try to find the frequency (MHz) by
channel number only.
Change-Id: I6a23a53e2e53e0b7c81b36f9f5c7794e9749c734
CRs-Fixed: 2605920
The rx descriptor obtained using the cookie
can be NULL if the cookie is invalid. Hence
dereferencing the rx descriptor without any
validation can cause invalid address access.
Fix this by validating the rx descriptor
which has been obtained using the cookie from
the hal ring descriptor.
Change-Id: Ib584f0d8175b581d15b0e1c67d2f6ed9119ecbfc
CRs-Fixed: 2629254
Move dp monitor inline APIs to header file from dp_rx_mon_dest.c
to dp_rx_mon.h to use it in component dev
CRs-Fixed: 2626054
Change-Id: I3a31dacd7d7e817f144708f9bda5536808080864
Per flag detect_enable to enable/disable detecting
interop issues ap function in firmware.
Change-Id: I52617e3700a3c79fc5b72c53af6d4b8db5e97879
CRs-Fixed: 2602001
Auto BW computes new bandwidth for adjacent regulatory rules. But this
combined bandwidth can be more than the bandwidth allowed for a
particular reg-domain. So relax the check for combined BW for
adjacent regulatory rules.
Change-Id: I1486988c114f0348f7228b91aeadc5c027c6a510
CRs-Fixed: 2626165