Replace all occurrences of
wlan_reg_get_channel_state_for_freq with
wlan_reg_get_channel_state_for_pwrmode and
use extra parameter as REG_CURRENT_PWR_MODE
Change-Id: Idfd0b095867a5e75e795d6297f998725e62f7300
CRs-Fixed: 3145012
While migrating from v5.15 to v5.19 of the Linux Kernel, a build error
was observed:
ERROR: modpost: "do_exit" [...] undefined!
The reason do_exit is undefined is because Linux Kernel commit
eb55e716ac1a ("exit: Stop exporting do_exit") removed the
EXPORT_SYMBOL() with the justification "there are no more modular uses
of do_exit".
Commit eb55e716ac1a was preceded by commit 111e70490d2a
("exit/kthread: Have kernel threads return instead of calling
do_exit") which details why, since commit 63706172f332 ("kthreads:
rework kthread_stop()"), it is unnecessary to call do_exit().
Note that commit 63706172f332 was introduced in 2009 in v2.6.31-rc1.
Since we do not need to support any kernels before that time, we can
follow the same advice and return instead of calling do_exit().
Currently do_exit() is only called from qdf_exit_thread(). As a result
of the preceding investigation, all former callers of qdf_exit_thread()
have been modified to no longer call it. Since it is obsolete, remove
it.
Change-Id: I22f27692fa8766df080630b9b0640c259285557c
CRs-Fixed: 3300460
Since Linux Kernel commit 63706172f332 ("kthreads: rework
kthread_stop()"), made in 2009 in Linux Kernel v2.6.31-rc1, it has not
been necessary for kernel threads to call do_exit(). Since we do not
support kernels earlier than that, remove the call to
qdf_exit_thread(), the abstraction function for do_exit().
See Change-Id I22f27692fa8766df080630b9b0640c259285557c for more
information on why this call is being removed.
Change-Id: I4de812397e8910e5117bc142bf9185c02d2d3ec0
CRs-Fixed: 3300459
In kernel 5.18, netif_rx_ni() is removed. So redefine netif_rx_ni
with netif_rx.
Change-Id: Ia0e43089f028f3bfa71d658d1e64ddeafd32d289
CRs-Fixed: 3298369
With MLO enabled, MLO STA wlan0 will consumed 3 MAC address, consider 2nd
STA wlan1, p2p and NAN interface, consumed 6 MAC addresses totally, SAP
failed to start for no MAC address.
To fix it, increase MAC address num to 7 when MLO supported.
Keep max vdev num as 6, no side effect on firmware.
Change-Id: Idbc3b7159ec3ceb42fa8a13718cd7402d6eb8090
CRs-Fixed: 3298515
Update the handler to fetch the status of the supports_11be
capability flag properly.
CRs-Fixed: 3305253
Change-Id: I35a083b7b717b0cf4fbe40e2e00b8bfd0ada9082
Currently link specific probe response ie does not include
the basic variant ml ie. This results in multi link connection failure.
To solve this add basic variant mlo ie in the link probe response.
Change-Id: I7d6e9bcc461bf4e855c5613ad28a08749303a81d
CRs-Fixed: 3301288
1.This change fixes the use of uninitialized
variable in host driver.
2.Adds NULL check for num_psocs in mlo_peer_calculate_avg_rssi to
avoid undefined behaviour.
Change-Id: Ifbfef42b5930dfe15736a75a74e81155c5f1fbce
CRs-Fixed: 3297794
Host stops cfr without vdev id check. In MLO case, the other link
stops firstly and it will get mac id base on wrong vdev id. Finallly,
it cause FW assert. This change adds vdev id check when getting cfr
rcc enabled params and trying to stop cfr.
Change-Id: I745ff5398b3f00fdb84b62b0835c1dd2ab75fae1
CRs-Fixed: 3296067
In kernel 5.16, __alloc_size is defined in linux/compiler_types.h
file. So instead of calling this macro, define and use new macro
__qdf_alloc_size.
Change-Id: Ie1930bf2aaf0cb6bc079bc66aba9eeba92ec8c12
CRs-Fixed: 3295139
In kernel 5.18, pci-dma-compat.h is removed and so instead of
calling pci_set_dma_mask and pci_set_consistent_dma_mask, call
dma_set_mask and dma_set_coherent_mask.
Change-Id: I997fc8ec957d19aa8d51c304541ce699b835c1dd
CRs-Fixed: 3298244
In kernel 5.17, net_device->dev_addr is changed to const unsigned char*
and can only be updated via dev_addr_mod(). Add a new function
qdf_net_update_net_device_dev_addr() to call kernel API dev_addr_mod().
Change-Id: Ifecfb453f5dc6b066892c04f4bdbec3759e32c53
CRs-Fixed: 3298120
In kernel 5.17, PDE_DATA() is replaced with pde_data(). Make
matching change in ath_procfs.c and linux_ac.c files.
Change-Id: Ia198545322146d4adde9330c19b43f5c2ed0dfa2
CRs-Fixed: 3298062
For kernel version 5.15 or later, include linux/stdarg.h in
i_qdf_types.h and for older versions include stdarg.h.
Also remove inclusion of stdarg.h from dp_internal.h,
qdf_trace.h and qdf_types.h files.
Change-Id: I2eaa1af06fda0ac07a1be3d245f197de0b85719d
CRs-Fixed: 3295172
In kernel 5.17, complete_and_exit is replaced with
kthread_complete_and_exit. So if kernel version is >= 5.17,
then use kthread_complete_and_exit.
Change-Id: I4e9a98373197eba4931a8dafe77040448ffb40eb
CRs-Fixed: 3297481
Current issue:
During disconnect host sends RSO STOP command to FW
and expects a response from FW before continuing disconnect.
If roaming is disabled (from supplicant or due to race condition)
before sending RSO STOP cmd then FW does not respond to the request
and host will assert.
Solution:
To handle this case after rso timer stop expiry continue with
disconnect and clean up the rso state.
Change-Id: Iac7b25d881702b87f946fe0ecfba02b1d806f06b
CRs-Fixed: 3301394
SAP secondary channel offset of HT info in beacon is set wrongly.
When STA connects it, channel bonding mode check fails, falls back to
20 MHz width.
SAP secondary channel offset of HT info in beacon is decided by checking
40 MHz bonded frequency list. If primary frequency is start frequency of a
bonded frequency, then secondary channel is above the primary channel,
secondary channel offset should be set to 1, else set to 3.
For example, if SAP primary frequency is 5220 MHz, {5220, 5240} is 40 MHz
bonded frequency, secondary channel offset only can be 1, can't be 3.
Change-Id: Ife56e3d039f3fcf1912bedf696b1703a0e8f194f
CRs-Fixed: 3302759
As part of upgrading legacy code
with 6 GHz power APIs,
replace reg_is_disable_for_freq,
wlan_reg_is_disable_for_freq and
reg_set_5g_channel_params_for_freq APIs
with reg_is_disable_for_pwrmode,
wlan_reg_is_disable_for_pwrmode and
reg_set_5g_channel_params_for_pwrmode APIs
respectively.
Change-Id: I70089b02fd3698dcd83d5418993f7ca238ad0e0b
CRs-Fixed: 3145785
In defrag path will be receiving raw frames with wifi header,
instead of fetching the addr4 from the tlv, use it from wifi header
Change-Id: I516295660f39135225efd79c6b1bb0b93b1d81d3
CRs-Fixed: 3303206
If the requested power mode is not supported, the API
reg_get_chan_state_on_given_pwr_mode may return
CHANNEL_STATE_INVALID flag. Besides check
CHANNEL_STATE_DISABLE for disabled channel, add check
CHANNEL_STATE_INVALID also.
If partner link frequency is not supported by regdomain,
do not enable the partner entry.
Change-Id: Ic7adfdcc4e535d6303fa0f4253d1499d369bc222
CRs-Fixed: 3302241
While generating the scan entry for TX VAP, the decision to
strip MBSSID IE from the TX VAP beacon, will be taken if the
platform supports 11BE.
CRs-Fixed: 3300515
Change-Id: Ie45da7a02a2811172b2403d5fd1bc4b9271432d5
While processing an beacon with MBSSID IE/ IEs, the driver
creates scan entries for the TX VAP/ profile and every Non-TX
profile present in the MBSSID IE.
The scan entry generation for nontx profile happens as required,
whereas while generating the scan entry for the TX VAP, driver
copies the MBSSID IE/IEs as well. Because of this, multiple
ML IEs would be part of one frame and as a result sometimes
supplicant fails in adapting/ fetching the proper ML IE.
With this change, the host driver takes care of stripping out
the MBSSID IE/IEs from the full beacon frame and while
generating the scan entry for TX VAP/ profile, it uses the data
that only belongs to the TX VAP.
This helps in resolving the duplicate ML IE issue.
Change-Id: I13b3ce94da1970eea8c16b52b1987edc1a5418bc
CRs-Fixed: 3295496
On disconnecting, the bssid may not be filled in cm_req->discon_req.
Zero bssid will fail to update the scan entry to non association
state which may block the scan entry age out.
Move disconnect bssid fill before update the scan entry for
disconnecting.
Change-Id: Id8a36d8a37c212af727c7b61a24b51f2782c4a2c
CRs-Fixed: 3291599
- target_if layer was calling UMAC layer wifi_pos_get_rx_ops(). This was
leading to compilation errror in WIN platform. Hence, added target_if
layer API target_if_wifi_pos_get_rx_ops().
- WMI_RX_SERIALIZER_CTX is used to register PASN peer create and delete.
WIN platform does not use the above context. Hence, use WMI_RX_UMAC_CTX
for WIN and WMI_RX_SERIALIZER_CTX for MCC.
- WIFI_POS rx_ops callbacks are registered in target_if layer. But, these
callbacks are called by UMAC component. Hence, move this registration
function to UMAC layer.
- Add an API to convert host PASN peer type value to target defined value.
Change-Id: I2a262121f959c2343e88158b94468d104b9e164c
CRs-Fixed: 3289852
During wlan_crypto_setkey, the mem_alloc for key is done and
all keyidx within WLAN_CRYPTO_MAX_VLANKEYIX are to freed in
crypto_free_key.
Change-Id: Ieae0f9f4eecabe1fb23812a9e436037bb4dad128
CRs-Fixed: 3296394
doing qdf_export_symbol for wlan_util_vdev_mlme_set_param
so it can be use in offload
Change-Id: I19c1be6ad8e6462aff29c284131fcc4765df7e25
CRs-Fixed: 3301968
The rx tid setup function is called from multiple contexts.
Acquire lock before calling that function to avoid race condition.
Change-Id: I7a0443e5e09a068301de171afeb4d400bf54b1c8
CRs-Fixed: 3291079
Tid in RX frame header may be larger than MAX TID allowed
value, this will lead a out of boundary array access and
lead to kernel crash at last. Change is aimed to do a TID
check and discard such frame when necessary.
Change-Id: I11f312668a5a42d690c058550f22b0f36f952104
CRs-Fixed: 3264581
In case of MLO same adapter maps to both vdevs. Tx is done with
primary link vdev pool. In link switch case vdev0 flow pool is
deleted and traffic will continue to flow with same vdev0 flow_id
This is resulting in packets drops within the driver due non-availibilty
of flow pool.
Fix this by skipping flow pool deletion in case of STA MLO connection.
Change-Id: Ie56ea221f7f254484bd31ec4880f2155779fb513
CRs-Fixed: 3292979
Add cfg command to enable umac reset skeleton debug, which
when enabled will skip post reset procedure handling.
Change-Id: Ieca393e6292660bb3ada40408fd6e71ac78d0a1f
CRs-Fixed: 3296960
Currently only pdev_priv_obj has fcc constraint flag and
it's value gets modified according to the SET_FCC_CHANNEL
command. As a result after getting SET_FCC_CHANNEL command
if wifi turned off and turned on or during SSR sequence
its value is reset to false as pdev is deleted and recreated,
hence the tx_power values of fcc frequencies aren't decreased.
To address this issue, store the fcc constraint flag in
psoc_priv_obj and copy its value to fcc constraint
flag in pdev_priv_obj during pdev creation.
Change-Id: Ic2f5450fd763abf04ad89fe4e5148d03f3b5d69a
CRs-Fixed: 3292446
Currently fw diag drain API is not under feature flag
as we only need to drain the ring in case when diag
events are received on CE7, which in other cases is
resulting in unnecessary error logs being printed.
To fix the issue move fw diag drain api under feature
check.
Change-Id: I7d040fbd1218c5c8ed9a8b2bae58af2f098fee80
CRs-Fixed: 3296285
Enable/Disable responder 11az ranging based on the below ini:
"enable_responder_11az_support"
With "enable_responder_11az_support" disabled, the below ext
cap advertisement will be disabled:
Non-TB Ranging Responder
TB Ranging Responder
and below vendor capabilities advertisment will be disabled:
QCA_WLAN_VENDOR_FEATURE_PROT_RANGE_NEGO_AND_MEASURE_AP
QCA_WLAN_VENDOR_FEATURE_SECURE_LTF_AP
Change-Id: I82eb70615f8daf82e98e7600418e07fad0672b76
CRs-Fixed: 3296410
Enhance serialization logging by adding vdev id info in logs to
differentiate same cmd id across vdevs.
Change-Id: I6706b07044769b56832e67388924f767ad5aabfe
CRs-Fixed: 3297468
The actual number of vdev info allocated was less than the number
of vdevs that can be created for each soc, hence fix them, also
previously the arrays were allocated statically consuming
considerable amount of memory, fix them by allocating dynamically
with only number of vdevs per soc
Change-Id: I5ea735d44994211f76ce18460332624831742f7b
CRs-Fixed: 3285131
1. Change (or) Add the following country mapping to Regdomain for 6 GHz.
i) Map Full 6 GHz Reg domain HEX CODE 0x0C to FIJI
ii) Map Full 6 GHz Reg domain Hex code 02 to KENYA, MAURITIUS and MONGOLIA.
iii) Create new Full 6 GHz Reg domain Hex code 0x0D and map to ISRAEL and
KUWAIT.
iv) Create new Full 6 GHz Reg domain Hex code 0x0E and map to NEW ZEALAND,
NIUE, COOK ISLANDS
v) Map Full 6 GHz Reg domain HEX CODE 01 to ANTIGUA AND BARBUDA, ARUBA,
BAHAMAS, CAYMAN ISLANDS, DOMINICAN REPUBLIC, EL SALVADOR, JAMAICA and
VENEZUELA.
vi) Map Full 6 GHz Regdomain Hex code 0x0B to Japan.
2. Add the following regulatory database for 2.4/5 GHz and 5 GHz.
i) Create new 5 GHz Regdomain APL28 (Hex 0x1233) and Full 2 & 5 GHz
Regdomain APL28_ETSIC (0x76)
ii) Update PAKISTAN from APL1_ETSIC to APL28_ETSIC.
3. Add the following regulatory database 2.4/5 GHz and 5 GHz for Auto only
i) Create new 5 GHz Regdomain ETSI19 (Hex 0x0E45) and Full 2 & 5 GHz
Regdomain ETSI19_WORLD (0x7B)
ii) Update ISRAEL from ETSI17_WORLD to ETSI19_WORLD.
Change-Id: I8de892abdc8f446e17ccb6a039ae90ab092b6c0d
CRs-Fixed: 3287062
Implement qdf support for skb shared info and frag list append.
qdf macros will be used to handle skb shared info and list append.
Change-Id: I3e91bfb7a09f2e4547b3210a10919d6c84ec6567
CRs-Fixed: 3243932
Fix race condition in dispatch interrupt when CE0 interrupt is called
from irq context in one core while it is called from user context in
ring full condition. This case has to be handled using locks since
calling paralelly from multiple contextx is leading to interrupt
getting disabled and tasklet not getting scheduled. This is leading
to interrupt being in disabled state. Also change th diff_time variable
signed integer to handle a case where taklet is scheduled just after
the workaround kicks in leading to diff_time becoming negative.
Change-Id: I3894ef90ca48f23404bc9529c4b1623841698293
CRs-Fixed: 3297372
After mlo roaming is complete send roam auth mlo links
event to kernel.
Also populate cfg roam info structure with mlo link info.
Change-Id: I8710e3a53f05c50b7b276d87a39411cb43d0983f
CRs-Fixed: 3279967