Commit grafiek

9170 Commits

Auteur SHA1 Bericht Datum
Ananya Barat
86f1d1d9b3 qcacmn: Allow all bands in DFS chanwidth check
With the current implementation, the chanwidth of the Agile channel
(for both PreCAC/RCAC) is the same as (or less than) as the chanwidth
of DFS curchan. The width of the DFS curchan is determined in the
function dfs_find_curchwidth_and_center_chan_for_freq which calls a
macro WLAN_IS_CHAN_11AXA_HE80 for 80 MHz which checks if the channel
is a 5G channel and 80 MHz. As a result, for wideband (i.e radio has
both 5 and 6Ghz channels), if the curchan is a 6GHz channel this check
fails which leads to invalid chanwidth and RCAC does not start.

Fix this by checking the chanwidth of the DFS curchan for both 5GHz and
6GHz in case of 11AX.

Change-Id: I9aef64cea1d442fc31b2314da08baba7769650f2
2020-08-06 14:37:10 -07:00
Jia Ding
223c1e5865 qcacmn: Fix uninitialized scalar variable
Fix below static code analysis case.

uninit_use_in_call: Using uninitialized value target_type
when calling hif_get_device_type.

Change-Id: I0d072dd7dd92addeb986d088a7ee85ff13e15d16
CRs-Fixed: 2748473
2020-08-06 10:38:07 -07:00
Basamma Yakkanahalli
f732e1a0b2 qcacmn: disable CE8 interrupt
Disable CE8 interrupt it is not used between 
host and target communication.

Change-Id: I39439bcdd6adfa3973bcc81eaf43f047839a85aa
2020-08-06 10:38:03 -07:00
Vijay Krishnan
c70a7a8d0f qcacmn: Send VDEV_UP after spoof radar in Rep-AP
In Partial-Offload, when a repeater is associated with Root-AP in
DFS channel. The Repeater STA will get connected with Root-AP and then
Repeater-AP comes up in the DFS channel but it does not send beacons.

The reason is, when a STA vap is UP and in connected state, CAC is
skipped. So, for Repeater-AP we send VDEV_UP before Spoof radar
pulses event. FW rejects the VDEV_UP sent by host and therefore
Repeater-AP will be in UP state but it does not send any beacons.

The fix is, while checking the condition if STA vap is set to true, we
also check whether spoof radar event is completed. If the spoof radar
event is not completed, then we will not skip CAC and then VDEV UP
will be sent after the Spoof radar event.

CRs-Fixed: 2748740
Change-Id: If63f3118d3e40785b375a0bd59d46783c14fe433
2020-08-06 06:34:50 -07:00
Vignesh Mohan
1e876d8f14 qcacmn: Add APIs to configure and switch to postNOL channel
Introduce APIs to perform postNOL channel switch to user
configured channel after the NOL expiry of said channel.

This channel change will involve regular CAC after vdev start.

Change-Id: I426b0c4b51c84789870841dd4c3af942be185f20
2020-08-06 04:24:55 -07:00
Gururaj Pandurangi
c0989c2a3d qcacmn: Change burst_duration and min_rest_time value
Enable burst scan for GO+STA case and set the burst
duration as 1 active dwell time.
Burst scan provides higher priority and can ensure
the scan request granted, since P2P GO requests larger
duration for its high priority channel request.
But this value will limit the off-channel time to give
more bandwidth for P2P home channel.
Also, change minimum rest time from 50 to max rest time
i.e. 100 for MCC case for all concurrency combinations.
50ms min reset time only grants 1 home channel in MCC,
when there is only 1 home channel and has heavy traffic,
it can be scheduled firstly as scan BSS channel, and if
activity check found not much traffic for the 1st 50ms,
it decides to go foreign channel directly, the 2nd home
channel with heavy traffic will not get chance to schedule.

Change-Id: I2cd73750709a964bd23896fe10f754caa28c2789
CRs-Fixed: 2716111
2020-08-06 01:50:27 -07:00
Vevek Venkatesan
7d59f8067a qcacmn: fix the error by accessing pointer if not NULL
Fixing the errors of accessing pointer only if it not NULL.

Change-Id: Ie1e5ae4e4403956e3f9d4df7ca139804fe89d641
CRs-Fixed: 2741833
2020-08-06 01:50:24 -07:00
Gururaj Pandurangi
48e4e62dfa qcacmn: Reduce obj mgr log level to debug
Reduce object manager log level to debug
to avoid console lock and excessive logging

Change-Id: I7e008ccbfb425f0a88504a2d980a73bffa255cdf
CRs-Fixed: 2746992
2020-08-05 23:49:36 -07:00
Ruben Columbus
e762bb831e qcacmn: prevent double free on buffer
wdi event has to be called before dp_txrx_ppdu_stats_handler.
this will handle all pktlog htt messages including cases for mgmt frame

Change-Id: Iefba15b61278fe77cbb6d6df9190e66b46ed573c
2020-08-05 20:59:16 -07:00
Yu Tian
db5374f08f qcacmn: Allow drop pkts when pkts pending is large
On some cases, dp_rx_thread can not handle nbufs in time,
then a large number of packets are pending in
rx_thread->nbuf_queue, which run out of system memory at
last and failed to malloc new buffers for refill buffer
ring, fw crash is encountered. To avoid this, drop RX
packets when the pending number becomes large.

Change-Id: I370ad983b185b6ecb28fa7c0b4820b8edc00c710
CRs-Fixed: 2737191
2020-08-05 20:59:13 -07:00
Rajeev Kumar
30a3c984d0 qcacmn: log wmi cmd id in hex when cmd is sent over qmi
WMI commands are logged in hex in FW and hence log WMI CMD ID
in hex when stats request is send over QMI to assist in debugging.

Change-Id: I9ce63db30b491f26b9d6ac7ae3c98e6177452d7c
CRs-Fixed: 2733208
2020-08-05 17:35:18 -07:00
Rakshith Suresh Patkar
2bd4ec3c09 qcacmn: Add debug log to trap unsuccessful dbr vaddr lookup
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
2020-08-05 17:35:15 -07:00
Ashish Kumar Dhanotiya
64476bcd6c qcacmn: Add connect infra for connection manager
Add connect functions to convert kernel specific connect
request to connection manager specific connection request
for connection manager infrastructure.

Along with the above functions, add the file structure for
connect, disconnect and roam functions for connection
manager infrastructure.

Change-Id: Id4e389d06cea6e39327faef0c119275741574785
CRs-Fixed: 2739318
2020-08-05 13:25:30 -07:00
Abhinav Kumar
39c5306a5b qcacmn: Save roam_trigger_reason and roam_ap_info params
Save BTM BSS termination timeout value and BTM MBO assoc
retry timeout value coming from FW through
wmi_roam_trigger_reason_tlv_param tlv.

Save Blacklist reason, Source of adding AP to BL, timestamp
which indicates the time when AP added to blacklist and
Original timeout value in milli seconds when AP added to BL
coming from FW through wmi_roam_ap_info_tlv_param.

Change-Id: I0a328814e77c7d2452672f43c855d2c1b8646b66
CRs-Fixed: 2744255
2020-08-05 11:19:04 -07:00
Lin Bai
73f1205497 qcacmn: Print HTT version info in INFO_LOW level
Since HTT minor verison isback compitable, print it in INFO_LOW.

Change-Id: I4327d7b32f5ef9a876b5ad274e260406c8bb3169
CRs-Fixed: 2747669
2020-08-05 11:19:00 -07:00
Ashish Kumar Dhanotiya
2d6243e27e qcacmn: Do not update the NOL state of the channels
Currently driver sets the NOL state of the channels to false
on every regulatory updated, which indicates the channel is
not in NOL. Which may lead to some issues where the channel
is actually in NOL but host treats it as non-NOL channel.

Ideally NOL list should be maintained throughout the driver
lifetime and across the regulatory changes.

To address this issue add a logic to not update the NOL state
of the channels whenever the regulatory update is received.

Change-Id: I7487a24a349f5f6e06a058b4d07799c8e5ac2d40
CRs-Fixed: 2735137
2020-08-05 09:04:11 -07:00
hqu
1160a1519d qcacmn: Move rso related process to connection manager [PART 2]
Move rso related process to connection manager.

Change-Id: I25fe80270374b6b2f4ebb40f6ba410cc3498fc82
CRs-Fixed: 2747577
2020-08-05 04:24:15 -07:00
nwzhao
ca9a332c4a qcacmn: [DP]TWT stats feature: add WMI Support for TWT stats event
Add WMI support for WMI_TWT_SESSION_STATS_EVENTID. This event
contains stats for a given TWT session.

Change-Id: I01d5f7b30da803ee713a14c1d1124b8af7161bca
CRs-Fixed: 2609951
2020-08-05 02:17:19 -07:00
Visweswara Tanuku
fbe384b6ac qcacmn: Add additional fields in wmi_twt_session_stats_info
Add below new fields in wmi_twt_session_stats_info required
for twt_session parameters and extract them.
protection flag, info_frame_disabled flag,
sp_tsf_us_lo & sp_tsf_us_hi

Change-Id: I3ca7fe44a1363c07d3a7db98086c66a1b7859eac
CRs-Fixed: 2730748
2020-08-05 02:17:14 -07:00
nwzhao
5ba7078b27 qcacmn: [WMI]FR47702 TWT stats, add WMI support for TWT Stats Event
Add WMI support for WMI_TWT_SESSION_STATS_EVENTID. This event
contains stats for a given TWT session.

Change-Id: Ieca2b6845fd2ec32ccdfb1021611bed07379d365
CRs-Fixed: 2609951
2020-08-05 02:17:10 -07:00
Sandeep Puligilla
9c7c6259ca qcacmn: Enable VDEV response wakelock
Enable VDEV response converged wakelock logic.

Change-Id: I67917d5798d9279cb104d0e7ff2cbe26365658c1
CRs-Fixed: 2738667
2020-08-05 00:03:57 -07:00
Visweswara Tanuku
19b1248241 qcacmn: Extract additional params from twt add dialog comp evt
Extract additional params obtained from fw as part of
WMI_TWT_ADD_DIALOG_COMPLETE_EVENTID during TWT setup

Change-Id: Ic58a1da463238a748cbf2678fe0156789ebb3559
CRs-Fixed: 2737036
2020-08-04 19:28:24 -07:00
Kiran Venkatappa
98f996d608 qcacmn: Use correct default phymode for 6GHz wide band scan
In 6GHz only 11AX onwards phymode is supported. Update default
phymode sent to FW in wide band scan request as 11AX HE20.

Change-Id: I56849adc8a37bf12e510c3c435a00a80952d42e3
CRs-Fixed: 2746701
2020-08-04 14:59:10 -07:00
Mainak Sen
eeaa5b7471 qcacmn: INI param to configure Rx S/W desc count
Rx s/w descriptor count should be configurable from
dp_rx_sw_desc_num INI

Change-Id: Id4bbe261b985219dad8d129679ab85e2dd1ba084
2020-08-04 14:59:06 -07:00
Shivani Soni
15d8bb5c6b qcacmn: QDF API and SKB debug framework support for alloc_skb
Implementation of QDF API to allocate skb to avoid recycler pool
and extending skb debug framework support.
QDF API: qdf_nbuf_alloc_no_recycler

Change-Id: I32ccae7337000c899e8fba8127aa9fb3c8551783
CRs-Fixed: 2734717
2020-08-04 14:59:03 -07:00
Santosh Anbu
3faf147264 qcacmn: Add NOL channel list filter support for scan filter
Implement the filter to reject the candidate with the channel in
the NOL list(i.e FS hit channel).

Change-Id: I8e39cd9e13a17816f7f96354c9880b11af9c06c8
CRs-Fixed: 2746157
2020-08-04 12:58:06 -07:00
Santosh Anbu
3a67ec1735 qcacmn: Optimize the scan filter structure using bitfields
Add change to move the existing filter params bool datatypes
into bitfields and also add new filter type to filter candidate
with channel marked as DFS hit.

Change-Id: I4aa5d7342cf7880da20c35eebd99fc72a71b58be
CRs-Fixed: 2746157
2020-08-04 12:58:03 -07:00
Jinwei Chen
d555d146a4 qcacmn: add duplicate link desc check when refill
Same back to back link descriptor address/cookie is observed in
WBM idle link desc ring.
add duplicate link desc check when host
refill link descriptor to WBM through SW2WBM release ring,
also REO reinject ring.

Change-Id: Iaf9defd87670776fa9488d7f650efa3c08fefa60
CRs-Fixed: 2739879
2020-08-04 08:02:35 -07:00
Hariharan Basuthkar
e7e30c3ce1 qcacmn: Add wlan_reg_is_5ghz_op_class and wlan_reg_is_2ghz_op_class
Add APIs wlan_reg_is_5ghz_op_class and wlan_reg_is_2ghz_op_class,
to check if an input opclass is a 5ghz, and 2ghz opclass respectively.

Change-Id: I677b5e927ac9060f65b71eee838073348d06d4b2
CRs-Fixed: 2732373
2020-08-04 08:02:32 -07:00
Ananya Barat
b63669d9e2 qcacmn: Handle Agile PreCAC in the same SM as RCAC
Following are a part of this change:-

1. Add an API to check if PreCAC/RCAC is enabled. This API is used before
   delivering an external event to Agile SM.
2. Post an event to the Agile PreCAC SM if Radar is found on
   agile channel. Radar on primary channel is taken care of by the
   ensuing channel change.
3. Move all Agile PreCAC changes under macro QCA_SUPPORT_AGILE_DFS,
   only RCAC specific changes remain under QCA_SUPPORT_ADFS_RCAC.

Change-Id: I45d4b9f826d36e9e4093879b394165a15a52f324
2020-08-04 03:54:39 -07:00
Visweswara Tanuku
82befeaf2a qcacmn: Update status field in wmi_twt_del_dialog_complete_event_param
Update status field in wmi_twt_del_dialog_complete_event_param
during extraction of wmi event TWT_DEL_DIALOG_COMPLETE buffer

Change-Id: I89abaff01f27ebdde556eb3d1f37c723001ce2cb
CRs-Fixed: 2746112
2020-08-04 03:54:35 -07:00
Santosh Anbu
6315ce5dd1 qcacmn: Add dependency of blacklist manager macro at WMI layer
The blacklist manager macro is connection manager specific, whereas
the macros used at WMI is dependent on roam offload.
Hence mark of dependency of FEATURE_BLACKLIST_MGR on
WLAN_FEATURE_ROAM_OFFLOAD.

Change-Id: If48b701a450d34915d57780a274311aa2590c89a
CRs-Fixed: 2746160
2020-08-03 19:08:13 -07:00
nobelj
4dd08941dd qcacmn: add fix to send ppdu in sequential order
logic of holding ppdu info list is modified to store it
in sequential order.

Change-Id: I179e76f4bb1663e141e48df5f274ac5fd1b81bbc
2020-08-03 13:28:35 -07:00
Jeevan Kukkalli
94c430da4a qcacmn: Notify HMWDS ast add status to upper layers
Notification is sent in following two scenarios.
 - After call to dp_peer_add_ast() if we are not expecting any
   peer map event.
 - When HTT peer map event is received.

Change-Id: Id926d1cec1ee64520b0368fcc5000988c24e0513
CRs-Fixed: 2745542
2020-08-03 11:23:43 -07:00
Shwetha G K
66c83b2fbe qcacmn: Disable net_buf double-free panic when DISABLE_MEMDEBUG_PANIC set
Disable net_buf double-free panic when DISABLE_MEMDEBUG_PANIC set

CRs-Fixed: 2734030
Change-Id: I95b4e79e1e0607f39a950a3b96c70a066adee04d
2020-08-03 09:13:19 -07:00
Anirban Sirkhell
800a2c6059 qcacmn: Export api to select log levels
This will be used to initialize based on value provided
in ini file.

CRs-Fixed: 2738127

Change-Id: I3d385a7a88a6a5fdd0ff8949ac1a349880e38575
2020-08-03 07:13:45 -07:00
Hariharan Basuthkar
27dc40344d qcacmn: Check the state of 4.9G channels in reg_compute_chan_to_freq
In the 5G radio, if the current regulatory domain does not support
4.9Ghz channels, and if 4.9Ghz IEEE channel number 1 to 11 are given as
an input to reg_compute_chan_to_freq, instead of returning 0,
it returns the corresponding center frequency of the 4.9 Ghz IEEE
channel number.

This is because the channel state and chan_flags of the 4.9Ghz channel
are not checked, that is why it returns the valid channel frequency.

To fix this issue, check the channel state and chan_flags of the
4.9Ghz channel before returning the non-zero channel frequency.

Change-Id: Icedd74422b4194ac4f1affed7e9f131fb8426986
CRs-Fixed: 2738248
2020-08-03 04:06:50 -07:00
Rakesh Pillai
9beeaa95a7 qcacmn: Add history to track the entries in rx rings
The rx rings are relatively of smaller size. Any
duplicate entry sent by hardware cannot be back-tracked
by just looking at the ring contents alone.

Hence add a history to track the entries for the
REO2SW, REO exception and SW2REO ring.

Change-Id: I9b0b311950d60a9421378ce0fcc0535be450f713
CRs-Fixed: 2739181
2020-08-02 11:01:41 -07:00
Ananya Barat
bc798a3c5c qcacmn: Rename the RCAC State Machine events, states & APIs
Both (ETSI) PreCAC and RCAC are going to use use the same state
machine. The state machine drives the Agile engine and not very specific
to RCAC or PreCAC, therefore let the state machine be called agile state
machine and change the names of all the associated variables accordingly.

In this preparatory change, modify names of all APIs, states and events
to make them common to Agile RCAC and Agile PreCAC

Change-Id: I67858839589145bf4377a7eafec7c21ca4823141
CRs-Fixed: 2711104
2020-08-02 08:57:54 -07:00
Harsh Kumar Bijlani
cc9f9c7c1f qcacmn: VHT/HE info in radiotap header of mgmt & control frames
In monitor mode, radiotap header contains VHT/HE information in management
and control frames after association of STA to AP.For this,reset of
ppdu_info is required before processing of ppdu in order to avoid reuse
of ppdu_info.

Change-Id: Ia36ec2664f79d645ff76db016f986dfb92ec8bbd
CRs-Fixed: 2734804
2020-08-02 04:57:31 -07:00
Jinwei Chen
da291f0045 qcacmn: Skip monitor status ring accessing if DISABLE_MON_CONFIG is set
Skip monitor status ring accessing if DISABLE_MON_CONFIG is set

Change-Id: Ia91bb4eb68c8fa301557d3b713a9e94b9cb8ee2b
CRs-Fixed: 2744524
2020-08-02 02:01:04 -07:00
Ankit Kumar
2b9e4ba1cb qcacmn: Add QDF wrapper for nbuf frag ops
Introduce qdf wrapper API for nbuf frag based ops.

Change-Id: I0f4c1cb1aa9fcdd9dc2fc2f5716860eb286a1932
CRs-Fixed: 2733972
2020-08-01 21:08:57 -07:00
Rakesh Pillai
d7a0b3f14c qcacmn: Handle the nbuf sanity failure gracefully
Th nbuf sanity can fail in case when HW posts the
same buffer twice. This case can be handled gracefully
by just skipping the processing of the corresponding rx
descriptor.

Change-Id: I471bb9f364a51937e85249996e427f15872bda97
CRs-Fixed: 2738558
2020-08-01 21:08:54 -07:00
bings
e344f80463 qcacmn: Set lock_cookie_freelist as NULL in qdf_lock_stats_deinit
lock_cookie_freelist is global static, which means it is set as NULL when
loading driver module. It works well when there is only one driver module.
For the CE platform with CONFIG_WLAN_RESIDENT_DRIVER defined, driver is
split into two modules, one module keeps variables and functions in
kernel, the other module is used to trigger rmmod/insmod function. In this
case, lock_cookie_freelist is not NULL when insmod is triggered the second
time through the second module.

Set lock_cookie_freelist as NULL in qdf_lock_stats_deinit.

Change-Id: Ia20fcc230c3a43eed9b646689348ad37b77811f2
CRs-Fixed: 2742118
2020-08-01 21:08:51 -07:00
hqu
f2067eb53f qcacmn: Add ucfg API to reset im stats and freq ctrl params
When dcs happened for three times in five minutes, then do
restart(start/stop) SAP operation, when SAP is started again,
dcs may happen again quickly, if total four times dcs happened
in five minutes, dcs_disable_timer will be started due to dcs
happened frequency control policy, it will disable wlan
interference detection for 30 minutes and dcs interference
detection won't work for 30 minutes, it's unreasonable. After
SAP restart, dcs happened times should be calculated from zero.

Add ucfg API to reset im stats and freq ctrl params.

Change-Id: I4ad8234349d24f044dff700d90e1bec859eaa397
CRs-Fixed: 2739299
2020-08-01 13:13:44 -07:00
Manikanta Pubbisetty
d315e2d238 qcacmn: add INI to enable/disable RX buffer pool
Add a new INI parameter to enable/disable RX buffer pool.

Change-Id: I186f2e1c4f4d008371efb6b041dc93e029c2f7c3
CRs-Fixed: 2731517
2020-08-01 13:13:40 -07:00
Manikanta Pubbisetty
fa2844b787 qcacmn: DP RX changes for RX buffer pool support
DP RX changes to support RX buffer pool, this is a pre-allocated pool
of buffers which will be utilized during low memory conditions.

Change-Id: I8d89a865f989d4e88c10390861e9d4be72ae0299
CRs-Fixed: 2731517
2020-08-01 13:13:36 -07:00
Manikanta Pubbisetty
ea9aadb12d qcacmn: add RX buffer pool support
Add support for RX buffer pool, this is a pre-allocated pool
of buffers which will be utilized during low memory conditions.

RX buffer replenish will fail when the system is low in memory;
this is okay if the condition is momentary, but if the
system persists in such state for longer duration, then HW will
run out of free buffers and this results in a crash.

RX buffer pool will be helpful in such scenarios. Buffers from
the pool will be given to the HW when the system is running low
in memory.

Change-Id: I7ca1159d858227a0a2021235d24d763e56ac0b27
CRs-Fixed: 2731517
2020-08-01 13:13:33 -07:00
Bapiraju Alla
1f62560b58 qcacmn: Update log to console INI to support per log level
Currently, the INI param wlanLoggingToConsole is used to enable
or disable WLAN logging to console. It will enable/disable console
logs for all log levels i.e. FATAL/ERROR/WARN/INFO. There is no
provision to enable/disable console logs for specific log level.

To address this, change wlanLoggingToConsole INI as bitmap with each
bit representing a log level. Enable/disable console logs based on
this bitmap.

Change-Id: If3172195a2ee86d21c4c03f441a4cc3e2780dd82
CRs-Fixed: 2734707
2020-08-01 11:02:24 -07:00
Naman Padhiar
a791b154c5 qcacmn: Send WMI HOST WAKEUP command over QMI
Add support to send HOST_WAKEUP WMI command over QMI for
WCN6750 target. Host sends HOST_WAKEUP command over QMI
itself and FW brings target out of power save mode, process
HOST_WAKEUP command and send back corresponding event over QMI.

Change-Id: I897749391683a7a7b53d4b6af57f258b1e02135c
2020-08-01 09:01:07 -07:00