Cleanup WMI to use new data structures in vdev mlme
for corresponding vdev mgmt op
Change-Id: I0126dcb34e569aac2af82de15e0f3362cf5a0a5e
CRs-Fixed: 2383346
Add Tx & Rx callbacks in LMAC structure and
the same will be (de)initialized through psoc
disable and enable from init_deinit component
Change-Id: I346c9076f0966545fb779dc150f5d6498c793308
CRs-Fixed: 2383346
Add target_if/mlme/vdev_mgr to handle vdev
mgmt related ops inorder to send corresponding
requests to WMI and processing response events
and Tx callbacks are introduced in MLME LMAC
Tx Ops structure which are initialized from
target_if main.
Change-Id: I9d02b17fdb04757d7dc523dd41e409c0fb1e5edf
CRs-Fixed: 2383346
Add support in mlme vdev_mgr to update
data structures corresponding to vdev mgmt
ops as expected by WMI and send the same to
target_if/mlme/vdev_mgr for sending to WMI.
Core MLME data structures in wlan_vdev_mlme.h
will be updated through provided ucfg APIs
which are used in updated vdev mgmt ops
data structures.
Change-Id: Ic6fc03bcb817c9f2f2724a9591b76656840903ba
CRs-Fixed: 2383346
Clear compilation warnings for wmi files which
has unsued functions in case of some macros
aren't defined.
Change-Id: If3a9ee68206a44e35f459e3c39d9da2d6f7ba4ba
Populate Spectral capability structure with scaling parameters
from extended service ready event parameters. Send the spectral caps
via cf80211 interface.
CRs-Fixed: 2379652
Change-Id: Id0372bdd40843c2101df32d2e71920027a24909f
Extended service ready event has a tlv
containing the spectral bin scaling parameters.
Populate the spectral capabilities using this info.
CRs-Fixed: 2379652
Change-Id: I0b4648302e7170b5965cf1aec68638e70cd36e73
Currently the driver uses structure for peer mac address
to store the mac address.
Use the already existing peer mac address array for the same.
Change-Id: Ib49b2ac4747fce3610da73a1d29c67ccaaeaad65
CRs-Fixed: 2390282
Failed to generate Non-Tx BSS scan entry due
to corrupted non-tx beacon IE.
Fix the sequence of fields need to be copied to generate
the new non-tx scan entry.
Change-Id: I6ed8773fb0efe6193c954f4963c364b9d8bf1960
CRs-Fixed: 2386423
In extract_mac_phy_cap_service_ready_ext() the field num_hw_modes
of hw_caps is used as loop bounds and may be attacked.
hw_mode_caps is a pointer defined by firmware. The exact array
length cannot be got since hw_mode_caps pointing array length
is variable. Fix is to add check for field num_hw_modes of hw_caps.
Change-Id: Ie234db3f2356186a4e7aac121ec88dd7e6453efd
CRs-Fixed: 2387221
Currently the driver accepts zero BSSID obtained from the
beacon/probe response and also allows to connect to them
by creating a peer, but since connection doesn't go
forward with the peer as BSSID is zero, the driver
deletes the peer, but since the BSSID is zero, the
host doesnt sends the peer delete to FW, which causes
a peer leak.
Fix is to filter out the beacons which has invalid BSSID,
and try to recreate the address from the addr2 which is
the FROM address in the MAC address. In case of AP the
BSSID and FROM address would be same, and hence BSSID
can be copied from the same.
Change-Id: I75842c2d80254aaffc31e689782be2eebc118466
CRs-Fixed: 2391346
In certain scenarios where AP sends OFDMA TCP packet to
multiple STAs in HE80 mode in poor RSSI conditions, it has been
observed that host in STA gets in to null_q_descr handling case and
rxtlv doesn't carry correct sw_peer_id. Due to this,
driver can't find correct peer from table and ends up sending deauth
frame to handle invalid peer case. The TA is valid and host is able to
find the peer using the TA.
Apply workaround by detecting this special case and drop the frame.
CRs-Fixed: 2367420
Change-Id: I0cbdbb8e9976e739c959062261fc1c946e446d63
Flag WLAN_FEATURE_NAN_CONVERGENCE was added to protect the
converged NAN code inside NAN Component. Since the original
NAN Discovery related code has now been moved inside NAN
component, keeping this flag separate doesn't make sense.
Combine this flag with WLAN_FEATURE_NAN flag which is the
original NAN feature flag.
Change-Id: I0045dcccd36524cbcd4253347c9e0a5704193c2b
CRs-Fixed: 2377393
The TLV WMI added support for a new WMI_SERVICE_WLM_STATS_REQUEST
service along with an associated WMI_WLM_STATS_EVENTID event, so add
support for a proxy unified WMI service and event.
Change-Id: Ic79c4b757fe2d4e806306750250e3c102745c486
CRs-Fixed: 2388911
There is a compilation issue if a variable is passed to
kernel api DECLARE_HASHTABLE.
TO resolve this issue, instead of passing a variable
pass a constant to DECLARE_HASHTABLE.
Change-Id: Ie9782af541bb34cc50f79060b0007dc73881e5f4
CRs-Fixed: 2386893
There are some changes to timer APIs in latest kernel,
update driver APIs accordingly to invoke correct kernel
APIs for timer functionalities.
Change-Id: Ie017c8b1ef8237ca34f696c23509519a1187167c
CRs-fixed: 2383574
With the changes made in Ibe0f8adc4df7bb98aceb509d438e241fac507393 and
Ic4cef0d6301230197443d4d5247188f2af643674 there are compilation issues
with converged code.
Resolve the issues by creating ifdefs for the timer_list definitions
according to kernel version.
Change-Id: Id9c29413ca0d21533a0afae245595051fa3a400f
CRs-Fixed: 2390884
The various setup_*_timer() APIs were removed from the linux kernel in
4.15, and replaced with similar timer_setup_*() APIs. Add conditional
compilation to qdf_timer to use the correct APIs depending on the
version of the kernel being compiled against.
Change-Id: Ibe0f8adc4df7bb98aceb509d438e241fac507393
CRs-Fixed: 2388570
There are a number of places where the kernel's timer_list type has been
used in conjunction with qdf_timer APIs. To prevent reintroduction of
similar issues in the future, do not directly alias qdf_timer_t to
timer_list.
See also: I410b7fafad18be01141008b6220fbe34ab07601e
Change-Id: Ic4cef0d6301230197443d4d5247188f2af643674
CRs-Fixed: 2388595
os_timer_t is a legacy wrapper around the kernel's timer_list type, and
is incorrectly used directly with qdf_timer APIs. Remove os_timer_t,
replacing instances with qdf_timer_t instead.
Change-Id: I410b7fafad18be01141008b6220fbe34ab07601e
CRs-Fixed: 2388575
Add Unregister API to de-register and free resources in direct buf
module. Existing logic of freeing all resources as part of pdev destroy
does not take care of soc_start and soc_stop scenarios. Add this API to
enable modules to de-register as part of soc_stop and register during
start.
CRs-Fixed: 2385313
Change-Id: Ibe6f6bc5f4bd2acc5a9fe71eee09c151853073bc
The aim is to remove CONFIG_MCL or CONFIG_WIN from
cmn component.
This change takes care log_to_console and
assert_on_excessive_logging.
Change-Id: I365f5156a2825a11c279b931b9191cf5c470e943
CRs-Fixed: 2359042
Call qwrap_config enable from both ready and extended service ready
handler. This change is needed for lithium chipsets where the number
of radios per soc is more than 1. Number of radios is updated only
in extended service ready handler and this qwraP_config_enable should
be called in extended service ready
Change-Id: I12289c38996f3bb4274e5795d434dd86c83f34c0
CRs-Fixed: 2384604
There are couple of instances in driver where variable sized arrays
are getting used which are giving compilation issues on kernel-4.19.
To resolve this issue, replace static array with dynamic memory
allocation.
Change-Id: Idb12386265d03db5c857039b692a82ccdf227836
CRs-fixed: 2386880
Reduce log level from info to debug level for
received fragmented packets in dp_rx_defrag path.
Change-Id: I0d1c7bf91e0337a56ea9e52565e0cbdf47a1772d
CRs-Fixed: 2385483
Move over to new explicit reset API as the old calls are removed
in kernel msm-4.19.
CRs-Fixed: 2386317
Change-Id: I4d550fc19970baa8e1c90ed170beb995cb850706
pld header files come from a different path for WIN case. Include
the WIN pld header files path to INCS.
Change-Id: If84398944b0102024a6230ba8873f25178396c87
Currently the driver allows simultaneous scan irrespective
of the dual mac feature ini config, which can cause
connect latency.
Fix is to disable the simultaneous scan if the dual
mac config ini is configured to disable DBS scan.
Change-Id: I332284880c04955a8ae2ff19eae10313f240d9ae
CRs-Fixed: 2385027
Fix implicit conversion from enum type QDF_STATUS to
different enum type A_STATUS.
Change-Id: I549c9284e18d73685e879c2f0bb8c54330a35bda
CRs-Fixed: 2389838
Dual mac disable feature is moved to policy manager. Hence remove
this variable from object manager.
Change-Id: I5d83ce0efa9130cc37734f3d7e982def4fe59ac2
CRs-Fixed: 2388459
Remove CONFIG_MCL flag for hif_bus_id in __qdf_device since
it can be shared by WIN and MCL.
Change-Id: I0f88aae7f3139485b99a029fa4f53d848875b0ac
CRs-Fixed: 2368166
Enable printing of QDF prints for QDF_TRACE_PRINT_ENABLE flag
irrespective of the flags WLAN_DEBUG and DEBUG.
Change-Id: I0b53d1759c3d38321d66bec325b855eb1e48e75a
CRs-Fixed: 2355333
Add WMI_HOST_REGDMN_MODE_11AC_VHT20_2G in WMI_HOST_REGDMN_MODE
bitmap.
WMI_SERVICE_READY_EVENT indicates ht/vht capability by
hal_reg_capabilities-> wireless_modes, REGDMN_MODE_11AC_VHT20_2G
indicates 2g vht20, check and save it as
WMI_HOST_REGDMN_MODE_11AC_VHT20_2G.
Change-Id: Idfb9a0f576619d4f890c2c0df68fc903f311c510
CRs-Fixed: 2384269
For some corner cases if there are no free
descriptors available in the rx desc pool
then stop processing frames
Add check for the same and break the loop
from processing further frames.
CRs-Fixed: 2380041
Change-Id: Ia5d82813df644af61d898131c2987d8d2798e8c9
Since the usage of the scheduler for WIN,
is now not limited only to scan component alone and
would be used by the new converged MLME also for few specific cases,
we need to increase the size of max scheduler buffers to 4K.
Change-Id: I11818c311b39c42ffda5a79eb7b7137dcb491649
CRs-Fixed: 2387644
The unit test command being sent to FW for bangradar did not have
enough arguments to perform subchannel marking as expected.
Pack in the existing uint32_t argument the following information
1). Segment ID (2 bits)
2). Chirp Information (1 bit)
3). Frequency Offset (8 bits [can be signed]).
that is being sent in the unit test command structure.
Change-Id: I7cc567f7bdc9367ee0f51080d0c54c55aa3e4a6b
CRs-Fixed: 2342535
The sme_session_id field in struct add_ts_param is poorly named since
that is legacy MCL nomenclature, so there is a desire to rename it to
vdev_id to align with the converged nomenclature.
The first phase of renaming introduced a union so that both the old
and new name could be used by legacy projects, but only the new name
was used within the qcacmn project.
Now since all legacy projects have been updated to use the new name,
for the second phase remove the union, leaving behind just the new
name.
Change-Id: Ie86a3c0833899fbeacd458a53d9e23c6a67e7f12
CRs-Fixed: 2384157
In psoc open, driver try to get the number of PDEV and
allocate memory for number of timers. But during psoc open number of
pdev are 0, thus timers are not allocated for non scan active queues.
Now if all scan active queues are full and a non scan command is
activated, it tries to find empty timer, which is not found, as
all timers are used by scan commands. Thus timer is not started for
this command and when this command is aborted the timer destroy API
return failure and thus the command is not removed from the active
queue.
Allocate the timer during psoc enable where pdevs are already created
and driver can get the number of pdev and print error if start timer
fails for a command.
Change-Id: Ia5b22e2849c58992a7d3d4097becc257ac673157
CRs-Fixed: 2389157
The sme_session_id field in struct add_ts_param is poorly named since
that is legacy MCL nomenclature, so there is a desire to rename it to
vdev_id to align with the converged nomenclature. As the first phase
of renaming introduce a union so that both the old and new name can be
used by legacy projects, but otherwise only use the new name within
the qcacmn project.
Change-Id: I93743c3b1e3180589a3af83ed9e51d8dc95324d9
CRs-Fixed: 2384156
Log DPT for Tx completion for Lithium_dp. Do not reset nbuf->cb
as it has DPT markings.
Change-Id: I493c3e0e5f4311b90c1ec60ac3a4b44d13c06f62
CRs-Fixed: 2385743