Commit graph

8,930 commits

Author SHA1 Message Date
Rachit Kankane
e85e67ce9b qcacmn: Add no interband mcc service bit
Add WMI service bit for targets which doesn't
support interband MCC.

Change-Id: Ia7c93ed0b53dfb539457167722bc3b04fb27032b
CRs-Fixed: 2715598
2020-06-26 05:37:40 -07:00
Rachit Kankane
4d124bfb1d qcacmn: Set preferred mode per target
Set preferred HW mode by default to HW_MODE_DETECT or HW_MODE_MAX
based on target type, also update preferred hw mode and num_band_to_mac
accordingly.

Change-Id: Iab231b182b54af15d09714e6cf3426c145d4ac3c
CRs-Fixed: 2711504
2020-06-26 05:37:38 -07:00
Yeshwanth Sriram Guntuka
86084af159 qcacmn: Do runtime_get_sync in htc_kick_queues
Interface down is received when wlan is in runtime
suspend state. The wmi commands that have to be sent
as part of this cause a runtime resume and the htc tx
queues are processed within runtime_resume callback.
The work that is scheduled for this tries to do a
runtime_get as part of htc_try_send but the runtime_status
is still in resuming state causing EINPROGRESS return
value. This will result in the wmi commands to be not sent
to firmware and eventually resulting wmi command timeout.

Fix is to do runtime_get_sync in htc_kick_queues.

Change-Id: I1f4ba1c3dad32f7c407c4416529424be6d4bf18d
CRs-Fixed: 2711998
2020-06-25 18:14:01 -07:00
Yeshwanth Sriram Guntuka
87b8babcec qcacmn: Add fisa skip related params in dp_soc
Add fisa params related to skipping fisa in dp_soc

Change-Id: I0f52e1a293226aecebce4dc9fe1e61c6484a9489
CRs-Fixed: 2718133
2020-06-25 16:47:00 -07:00
Abhishek Ambure
d5aa3cc44f qcacmn: Add support for roam capability report event
Firmware sends WMI_ROAM_CAPABILITY_REPORT_EVENTID event asynchronously
to host during FW init. It indicates FW roam related capabilities to host.
scoring_capability_bitmap in the event indicates firmware candidate scoring
capabilities. Host uses scoring_capability_bitmap to calculate roam score.

Change-Id: Idd2cad257e5d783166bd8cc0418dd4f394989295
CRs-Fixed: 2716781
2020-06-25 16:46:57 -07:00
Neha Bisht
f224d5dc91 qcacmn: Introduce counters per endpoint to improve HTC debuggability
To introduce counters htc_send_cnt and htc_comp_cnt per endpoint to
enhance pdev level debugging in HTC path.

Change-Id: I8d31e3a533e0f8de4c89d3609b20c148aef3a4ff
2020-06-25 15:08:09 -07:00
Hariharan Basuthkar
d5b80abab6 qcacmn: Make regulatory APIs common for both WIN and MCC
Make reg_is_disable_for_freq and reg_is_disable_ch common for both WIN
and MCC, by moving the definition from reg_utils.c to
reg_services_common.c and declaration from reg_utils.h to
reg_services_common.h.

Change-Id: I6425c99b403580836d1ee41839086f4df3971091
CRs-Fixed: 2718047
2020-06-25 13:17:57 -07:00
Sourav Mohapatra
b510a1e642 qcacmn: Use QDF sleep instead of wait_for_timeout in cancel scan
In the function ucfg_scan_cancel_sync the driver uses
qdf_wait_single_event to wait for the scan event to be cancelled.
This timer is affected by the timer multiplier which causes unwarranted
wait times.

Replace the qdf_wait_single_event with a simple qdf_sleep.

Change-Id: Ib4149dff5677956f5c8bc48f7f72d2bf5eda664f
CRs-Fixed: 2695569
2020-06-25 13:17:54 -07:00
Pragaspathi Thilagaraj
f49eeb2735 qcacmn: Remove roam related wmi files from cmn
Move the roam related wmi files to qcacld-3.0 folder.

Change-Id: I4146646cbb73c38e03de490f8dee66439ae85a68
CRs-Fixed: 2714613
2020-06-25 03:49:58 -07:00
Vignesh U
e5f0e052df qcacmn: Address compilation issue
The function "ucfg_dfs_is_hw_pulses_allowed" should return bool and has
a compilation error
"return' with no value, in function returning non-void".

Return the bool type "false" when the dfs is a NULL object.

CRs-Fixed: 2715235
Change-Id: I8717aaedd1ac8208ce6257721d5890b82ca13a8f
2020-06-24 15:04:52 -07:00
Debasis Das
72199d32de qcacmn: Use verion-appropriate kernel API
The API of_get_pci_domain_nr() is deprecated from
kernel version 4.8 onwards.Hence, alternate API should
be used.

Change-Id: I95decbd2a855ec16f013168c8678816c8a017c81
2020-06-24 15:04:48 -07:00
Utkarsh Bhatnagar
0b2b5e9e78 qcacmn: Don't reset cipher_caps in crypto_reset_prarams
Remove cipher_caps from wlan_crypto_reset_prarams as it
is FW capability and should only be set once when vdev
is created.

Change-Id: I8beab7ead2217ead532bfaacc0eea133d90cdd0e
CRs-Fixed: 2716728
2020-06-24 15:04:44 -07:00
bings
88cd0dfcea qcacmn: Remove redundant CONFIG_CRYPTO_COMPONENT
There should be no reason to have macro CONFIG_CRYPTO_COMPONENT.
Replace CONFIG_CRYPTO_COMPONENT with WLAN_CONV_CRYPTO_SUPPORTED.

Change-Id: Ief2b015a8e48c85c383470c669254abfa7404585
CRs-Fixed: 2705994
2020-06-24 11:43:01 -07:00
nakul kachhwaha
89a67f807e qcacmn: iot_sim beacon content change update
Adding support for beacon content change.

Change-Id: I8f804dd7d2cbbe7d3b7dea58841d7321f28101c7
CRs-Fixed: 2694454
2020-06-24 03:35:01 -07:00
nakul kachhwaha
c5cdd1eaaf qcacmn: iot_sim add support for drop operation
Adding support for iot_sim drop operation.
Drop operation will be handled in Rx direction.

Change-Id: If2e1c9663a69fcd16715cdd1d28639a388ea1c0c
CRs-Fixed: 2686309
2020-06-24 03:34:57 -07:00
Jayachandran Sreekumaran
cb709cad18 qcacmn: iot_sim code cleanup in wmi
Refactor code and put iot_sim code under feature flag.

Change-Id: Id4720d63ae174d9f4490285e6eb69ab2972ccd28
CRs-Fixed: 2707122
2020-06-24 03:34:54 -07:00
Jayachandran Sreekumaran
81b11d79c5 qcacmn: umac code clean up for iot_sim
Put iot_sim code under simulation feature flag.

Change-Id: Iccfb84c53172d5a4cccd00490d5720d99097401e
CRs-Fixed: 2707113
2020-06-24 03:34:51 -07:00
Jayachandran Sreekumaran
f71f32ada9 qcacmn: iot_sim code cleanup
Optimize the content change operation
code for action and non-action type frames.

Change-Id: Ie3719715eebbe465851f4b84ffb6deefbab81844
CRs-Fixed: 2684013
2020-06-24 03:34:48 -07:00
Vevek Venkatesan
f6f4cfc6f2 qcacmn: move runtime_pm related code to common section
Move all the Runtime PM related HIF code changes to the
common section, from if_pci.
So that, could be leveraged for other HIF interfaces
like if_ipci to use.

Change-Id: Id8303acd519ab07f307311971fb55c45476f30bf
CRs-Fixed: 2699419
2020-06-24 03:34:44 -07:00
Arun Kumar Khandavalli
a8c41c0988 qcacmn: add generic hweight16,32 implementation
In driver there are multiple implementations to read the number of
1's set, have a generic qdf implementation to get the same.

Change-Id: Idf769c221b33e867720943fb8c42158edd9600de
CRs-Fixed: 2716525
2020-06-24 03:34:41 -07:00
Karthik Kantamneni
1c487473e3 qcacmn: Use hif_debug to print irq details in hif_pci_configure_grp_irq
Currently hif_info is used for printing irq details
in hif_pci_configure_grp_irq, this may cause excessive
logging so use hif_debug log type instead.

CRs-Fixed: 2696837
Change-Id: I75d79f6040ecb1fe30b2192ce3a34685af5370ab
2020-06-23 13:30:49 -07:00
Vevek Venkatesan
8fb42e2871 qcacmn: replace qdf with hif function for runtime_lock_deinit
Since cds hif context was already NULL at the time of
hif_pm_runtime_close and qdf_runtime_lock_deinit tries to get
cds hif context, replacing it with hif_runtime_lock_deinit
and corresponding hif_runtime_lock_init function.

Change-Id: I6226d15d2930978fdb178624cc0ffd807e9b256c
CRs-Fixed: 2714590
2020-06-23 09:11:18 -07:00
Jianmin Zhu
4f9ae24e67 qcacmn: Replace channel with frequency for 6G
Replace WLAN_REG_IS_24GHZ_CH with WLAN_REG_IS_24GHZ_CH_FREQ

Change-Id: Ia2ff3a317f0286b0a6ca4d8642007e1a608c3e3d
CRs-Fixed: 2714721
2020-06-23 04:01:17 -07:00
Jianmin Zhu
1a387e156e qcacmn: Add log for roam scan mode
Add debug log when send roam scan mode to firmware.

Change-Id: I3d897778bbb1bf35a19882e78e51a8d44b4a3d40
CRs-Fixed: 2714627
2020-06-23 04:01:14 -07:00
Ben Wang
909e4e1893 qcacmn: Keep rx_refill_buf_ring using index pdev->lmac_id under MCL case
Fix static analysis issue of rx_refill_buf_ring buffer overflow.
rx_refill_buf_ring length is different for WIN/MCL. For MCL length is 1,
WIN is 3. So rx_refill_buf_ring should always use index pdev->lmac_id to
replenish rx buffer for different MACs under MCL.

Change-Id: I00af069c09c01a81ae4aa54bad5beb79dc6fcff5
CRs-Fixed: 2703683
2020-06-23 04:01:12 -07:00
Ananya Gupta
aab74f76ee qcacmn: Check peer before accessing vdev in tx_comp_handler
Race Condition is observed as tx_comp_handler is
accessing vdev pointer while its getting freed up
parallelly.
To fix this, peer value is checked before accessing vdev.
If peer	is null, vdev is not accessed and the function is
returned.

Change-Id: I05c93c54e2dbb3f40c5c053591d2d66c6143f656
CRs-Fixed: 2708390
2020-06-23 00:28:03 -07:00
nobelj
f7dbc44dd9 qcacmn: Fix rate of mu bar populated as zero
fix mu bar rate that populated as zero sometimes.

Change-Id: I382c351e923419b43ef9b5b497b1a10e401ee5d8
2020-06-21 04:03:57 -07:00
Zhaoyang Liu
d83a21ba68 qcacmn: use kzalloc for memory instead of kmalloc
Try to request memory using kzalloc instead of kmalloc.

Change-Id: Ib35097f76257733b3663c112b8255b587ff19bd6
CRs-Fixed: 2706674
2020-06-20 12:04:29 -07:00
Debasis Das
6d694b9f56 qcacmn: Use version-specific kernel API
Use version-appropriate kernel API.

Change-Id: I353f260e36918c9095c35f5c19cceae55b9583ae
2020-06-20 04:26:31 -07:00
Vignesh U
ace59f2d1f qcacmn: Update OCAC completion Host structure and processing routine
The OCAC completion event 'wmi_vdev_adfs_ocac_complete_event_fixed_param'
has been updated to include center frequencies of 2 segments in MHz for
165Mhz Agile mode.

Update the corresponding Host OCAC completion data structure
'vdev_adfs_complete_status' to include 2 center frequencies to support
165MHz Agile mode.

Also FW might send a delayed OCAC completion status after the Host has
configured a new agile channel. So all the OCAC completion events should be
validated if the status is received for the current agile channel.

Update the OCAC completion processing API to include 2 center frequencies
and chwidth so that, it is possible to check if the OCAC completion status
is received on current agile channel or an obsolete agile channel.

CRs-Fixed: 2705671
Change-Id: Iab8980f8d030120d107f068d890c9694d28ee98c
2020-06-19 21:47:30 -07:00
Santosh Anbu
5b4ee46d8e qcacmn: Check queue size of queue operation
As part of activation of pending cmds after removal of a blocking cmd,
we iterate over the pdev pending list until the queue size and move
non-scan pending cmd to active queue and go to the head of the queue
in the next iteration.

Since we start from head of queue with decreased queue size value, the
last few cmds in the pending is never iterated since queue size has
already reached zero leading to cmds left in pending queue forever.

Add change to restore pending node to previous node of the command that
is moved from pending queue.

Change-Id: If500906c853f21319c04a21c8c68690a71e51ec2
CRs-Fixed: 2713555
2020-06-19 19:45:21 -07:00
bings
5ecc1e1ae8 qcacmn: set key as valid after wlan_crypto_save_key
For wep mode, when key is received from cfg80211, wlan_crypto_save_key
is called to save the key, then wlan_crypto_default_key is called to
save default key id.
key should be valid when save default key id.

set key as valid after wlan_crypto_save_key

Change-Id: Ic13e311593154911ee21db5172188c7037f429a3
CRs-Fixed: 2654882
2020-06-18 23:22:04 -07:00
Sandeep Puligilla
0c68762f84 qcacmn: Increase scan active dwelltime for NAN+STA mode
STA not able to scan APs when NAN+STA concurrency is enabled.

Increase the active scan dwell time from 40ms to 60ms when
NAN+STA is enabled.

Change-Id: Ie3f3cccecaed3a5622a9f93f952edc0aec4f56d9
CRs-Fixed: 2699662
2020-06-18 19:17:21 -07:00
Srinivas Dasari
cf645a8923 qcacmn: Specify the size of array dbgid-strings as WLAN_REF_ID_MAX
Currently, size of the array to return dbgids in string format is
not specified explicitly. This array is expected to be updated
with the corresponding string when a dbgid is added in the
enum wlan_objmgr_ref_dbgid. Any miss in the updation would lead
to array out of bound access as the API string_from_dbgid()
tries get string corresponds to the newly added dbgid also.
Specify the maximum possible size as WLAN_REF_ID_MAX explicitly,
so that it returns "null" if the string corresponds a dbgid
is not defined.
Return the string only if the id matches or return "Unknown".

Change-Id: I1c835b8e9d681bf23f1bce866aa523cb41b9a134
CRs-Fixed: 2702696
2020-06-18 05:47:35 -07:00
Yeshwanth Sriram Guntuka
82ce33c6c9 qcacmn: Update tx_rx_status enum to include new status
Update qdf_dp_tx_rx_status enum to include download
success status.

Change-Id: Ifcac2c21eee101d75e352bb7092023bfe9b72025
CRs-Fixed: 2682023
2020-06-18 05:47:32 -07:00
Abhishek Ambure
080bb9eeb9 qcacmn: Enable spectral scan support for QCA6750
Enable host support of spectral scan for QCA6750 target.

Change-Id: I0629e6f4563bd42ca07b7c5d82a71b8198b48c07
CRs-Fixed: 2702868
2020-06-18 03:44:04 -07:00
Aditya Kodukula
aad7669d56 qcacmn: Revert "qcacmn: Not set "force_set" if event completed"
This reverts commit I31f947169153ccbeb8435c539faab1059c055c04 since
it has introduced, use after free issue during dp_rx_thread shutdown.

Change-Id: If8318b28883ae8ddd4fee36013f28c45f30fa426
CRs-Fixed: 2707451
2020-06-17 19:38:05 -07:00
Tiger Yu
0f08390fa4 qcacmn: Add memory barrier to avoid inconsistent reg write for valid flag
Add memory barrier to avoid inconsistent reg write for valid flag.

Change-Id: Ieb4ed80872961889f29de083a6b1dcdbe6a303d2
CRs-Fixed: 2699549
2020-06-16 21:44:18 -07:00
Edayilliam Jayadev
e3b05ae8ae qcacmn: Initialize start scan related parameters before sending WMI command
Host maintains a flag variable for ensuring that the start scan
response WMI event is received from FW before the spectral reports.

Following are the expected sequence of operations.
	1) is_resp_event_received = false
	2) start scan WMI command
	3) start scan response WMI event
           (is_resp_event_received is set to true here)

Current sequence of operations are the following.
        a) start scan WMI command
        b) is_event_received = false

If the start scan response WMI event is received in between a) and b)
there is a possibility that the flag is_resp_event_received is overwritten
to false by b). This can lead to an assert during the spectral
report processing.

CRs-Fixed: 2708320
Change-Id: I18020bf866b9cb3a3cc64df56398d751c91dd2f2
2020-06-16 16:23:45 -07:00
Ashish Kumar Dhanotiya
f816484b13 qcacmn: Update freq range 5170-5250 to indoor only for APL9
Based on the latest update in the regulatory, update
frequency range 5170-5250 to indoor only for APL9 reg domain.

Change-Id: I7c52fc76b5a8d6a47d515025d05b110332347246
CRs-Fixed: 2707525
2020-06-16 14:17:43 -07:00
Mohit Khanna
97200aab9c qcacmn: Add NAN TX checksum offload INI entry
Currently there is a single INI item tcp_udp_checksumoffload to enable
or disable this feature for all the adapters. In some cases, we want to
be able to enable this feature selectively for NAN mode.

Add nan_tcp_udp_checksumoffload ini item to enable or disable checksum
offload feature specifically for NAN mode. If
nan_tcp_udp_checksumoffload is 'true' and tcp_udp_checksumoffload is
false, hardware checksum offload will be enabled only for the NAN
adapter and not for other adapters.

CRs-Fixed: 2693638
Change-Id: I6e255ce68ddc7b01ebdefe4e5e8d2c985388fefe
2020-06-16 12:20:20 -07:00
Min Liu
d0b3820279 qcacmn: QCA vendor attribute to configure NSS
Defines the attribute in SET(GET)_WIFI_CONFIGURATION to dynamically
configure NSS.

Change-Id: Iae0db4ce3aef82c2c075095fea6c34731b86e40b
CRs-Fixed: 2708940
2020-06-16 08:16:17 -07:00
Subrat Dash
94bf91fc2b qcacmn: Add support to send pdev id in the oem data wmi cmd
The FW API is updated for pdev_id in the fixed param.
The pdev_vdev_flag is used to indicate whether the command
is meant for pdev or vdev.

The pdev_vdev_flag should be set to 1 for pdev command and 0 for
vdev command.

CRs-Fixed: 2693893
Change-Id: I99aabb9b73fd44d746342dfc1741fc6585c0863c
2020-06-16 06:15:54 -07:00
Yeshwanth Sriram Guntuka
261d19bcb4 qcacmn: Set local rx_desc list head to NULL
The issue sceanrio is as follows:

1) Packets are received in the rx exception ring and the
rx_descs processed are put into the pdev rx_desc freelist.

2) In the buffers replenish path, the above pdev rx_desc
freelist, on nbuf allocation or map error, is moved to the
soc rx_desc_pool freelist. The tail of the pdev rx_desc
freelist is set to NULL but not the head.

3) On receiving packets in the rx exception ring post above,
the new rx_desc are added to the pdev rx_desc freelist but
since the head of the list was not NULL prior to this, the
tail of the new list will have its next pointing to the
previous stale rx_desc list which is already moved to the soc
rx_desc_pool list.

4) In the replenish path, the buffers would be replenished
till tail of the new list but the desc_list would point
to the same aforementioned stale rx_desc list instead of NULL.
So even though replenish is successful, the desc_list check to
add the list back to soc rx_desc_pool freelist would be true.
This would cause next pointer of the tail and in effect the nbuf
pointer of the rx_desc pointed by tail to get updated.

5) On receiving the rx_desc mentioned in the previous step, nbuf
sanity check fails since nbuf address is pointing to another
rx_desc.

Fix is to set the local_desc_list also to NULL in
dp_rx_add_desc_list_to_free_list.

Change-Id: I984a4c122592547492b9d9625a71c0a90142b442
CRs-Fixed: 2704771
2020-06-16 04:14:08 -07:00
Vivek
80a5429aa1 qcacmn: Add vdev id when printing serialization pdev queue
While printing the serialization pdev queue, we are not
printing the VDEV id.

Add VDEV id while printing the serialization pdev queues

Change-Id: Ie6ecbf36da3026550fbe54137c546cf8bd7940e4
CRs-Fixed: 2703604
2020-06-16 01:52:59 -07:00
Srikanth Marepalli
0497ce7057 qcacmn: Fix buffer overflow while memcpy of pmk_ext
Due to commit : Ia630580bba050513800e3acac875baf937ec8d14
while processing RSO command driver fills the pmk_ext_len without
checking the pmk_len. If pmk_len is NULL then pmk_ext_len gets
filled with a negative value and after this while doing the
memcpy it will cause the buffer overflow due to invalid length.

Fix is to verify pmk_len before filling the value in pmk_ext_len.

Change-Id: I506d691ca5bd5d627fc85073346698126ad2ba56
CRs-Fixed: 2707959
2020-06-15 15:59:02 +05:30
Santosh Anbu
896773b223 qcacmn: Return false if VDEV start fails for STA VDEV
Add change to return the error value to the caller in case when
the VDEV start fails for STA VDEV.

Change-Id: I8585e1233609113158231ec7104cf5046af23cd5
CRs-Fixed: 2698826
2020-06-14 01:18:21 -07:00
Sridhar Selvaraj
3ae6b5c3fe qcacmn: Update REO Remap config API as platform specific
Update REO Remap config API as platform specific

Change-Id: I6a38b87e9181e8bc939e49e3eb55fcd6cace626d
2020-06-12 19:29:39 -07:00
Tallapragada Kalyan
9056ed8685 qcacmn: use proper replenish function for monitor buffer ring
use proper replenish function for monitor buffer ring
when it is called from monitor vap create

Change-Id: I2ee908f93d84eec262def264359ba4afce707976
2020-06-12 09:04:29 -07:00
Radha Krishna Simha Jiguru
4aba278b4d qcacmn: Set IRQ_DISABLE_UNLAZY flag for DP interrupts on QCN9000
Since DP interrupts are not disabled at source, and enabled and
disabled only at GIC level, set IRQ_DISABLE_UNLAZY flag to avoid
spurious interrupt detection and avoid interrupt affinity failures.

Change-Id: Ie98d8cba6f93bccd4d508a28bebc216d2b74fe1f
2020-06-12 09:04:24 -07:00