提交图

1687 次代码提交

作者 SHA1 备注 提交日期
Linux Build Service Account
2b35e0acf7 Merge "qca-wifi: Remove Spatial Reuse commands from Wi-Fi params" 2020-05-04 19:10:56 -07:00
Linux Build Service Account
f24e1b8913 Merge "qca-wifi: error copying memory" 2020-05-04 19:10:56 -07:00
Linux Build Service Account
82edce8b0c Merge "qca-wifi: set frame control for BRP frame" 2020-05-04 12:13:04 -07:00
Linux Build Service Account
3cdeb814df Merge "qca-wifi: filter by peer for prob_resp and disasoc" 2020-05-03 23:49:31 -07:00
Shiva Krishna Pittala
38debad496 qca-wifi: Remove Spatial Reuse commands from Wi-Fi params
There is a new vendor sub command added for configuring Spatial reuse.
All spatial reuse commands will be added under that vendor sub command.
Hence, remove the existing Spatial reuse commands from Wi-Fi params.

CRs-Fixed: 2631806
Change-Id: I13c218d7809c220b52d16dadaa8f628546afe0b4
2020-05-04 11:30:38 +05:30
Padma Raghunathan
ca50502493 qca-wifi: Skip handling CFR HTT event when feature is disabled
When CFR feature is disabled through INI, skip handling of HTT
event indicating the DMA completion of CFR data.

Change-Id: Ia1aafc57866eb11a952cedfbe3a00fec201e0ee0
2020-05-02 05:01:43 -07:00
Linux Build Service Account
2a54dff1fb Merge "qca-wifi: Add compile flag header for vendor commands" 2020-05-01 09:09:24 -07:00
Srinivas Pitla
501f31af2d qca-wifi: set frame control for BRP frame
For BRP frame ppdu, frame control is not valid in all user
completion tlv, which is causing to drop ppdu as wrong ctrl mgmt
queue checked for payload.

To fix this, updated frame control based on ppdu frame type

Change-Id: Ia5eb67da14647cccfe2ade7c0626a97171454446
CRs-Fixed: 2677252
2020-04-30 16:22:31 -07:00
Vignesh Mohan
fc7451f2c1 qca-wifi: Update event handlers for Rolling CAC state machine
Update the event handlers of the states (INIT, RUNNING, COMPLETE)
of the rolling CAC state machine with appropriate response
to various events.

INIT:
 - EV_RCAC_START:
     Check if RCAC is running and if not, prepare an RCAC channel.
     If channel is found, update RCAC index and transition to RUNNING.

RUNNING and COMPLETE:
  - EV_RCAC_STOP:
     Abort existing RCAC (cancel host timer and send RCAC abort to FW).

Introduce the following APIs:
  - dfs_abort_agile_rcac: To abort RCAC in HOST and FW and reset RCAC
    index.
  - dfs_find_subchannels_for_center_freq: Given the center frequencies,
    find the subchannels.

Also modify the channel selection logic of RCAC to clear the saved
RCAC channel parameters if no channel is found and return a valid
channel only if the agile width and the new RCAC channel width match.

CRs-Fixed: 2675221
Change-Id: I6b5565c089a7a0c3584a9e86fb81ad938d24a207
2020-04-30 13:51:06 -07:00
Abhiram Jogadenu
c7e2ced126 qca-wifi: Add compile flag header for vendor commands
Import compile flags for vendor command commands.

Change-Id: I674adaeda79e432ff93df980af5c7f5e18cd65f6
2020-04-29 13:59:26 +05:30
Ruben Columbus
14818961ef qca-wifi: filter by peer for prob_resp and disasoc
all probe responses and disassoc from bss peer will be accepted and
later filtered by
mac. Additionally retry queue is having a treshold for this new
mechanism to be able to flush queue in case it gets filled up.
this is meant to work for every control frame that has reached such a
state in its retry q.

Change-Id: Ie49d00d9b9422f02f5d9512a891ceb546cdd432d
2020-04-28 22:00:45 -07:00
Linux Build Service Account
929fa81a8b Merge "qca-wifi: Add WMI support for Tbtt sync in Multi Soc" 2020-04-28 08:43:16 -07:00
Linux Build Service Account
ea06d17bec Merge "qca-wifi: Add DFS APIs to support Rolling CAC feature" 2020-04-28 04:46:46 -07:00
Linux Build Service Account
11369c0bec Merge "qca-wifi: Support MU in tx capture mode" 2020-04-28 04:46:45 -07:00
Abhiram Jogadenu
214f48ac44 qca-wifi: Move command enums to new file
External applications require header files that are shared between
driver and application. So moving command enums and set/get
vendor command structures to a separate file.

Change-Id: I1171ae12f5ab8522253bde93fd15d41456f717f8
2020-04-27 08:15:33 -07:00
nobelj
0d28ccb9e9 qca-wifi: Support MU in tx capture mode
Support tx capture for OFDMA and MIMO packet

Change-Id: I24ed22168f5aec30c6c2281028257037f860f3c6
CRs-Fixed: 2621791
2020-04-26 01:40:05 -07:00
Amir
dcfa3f37ed qca-wifi: Change monitor ring reap sequence for qcn9000
For qcn9000 in case of monitor mode, reap monitor destination
ring first and status ring later to avoid backpressure
on monitor destination ring

Change-Id: If107d40471a4d01ce8d42054ed844b98217e60cf
CRs-Fixed: 2670656
2020-04-25 19:50:44 +05:30
sumedh baikady
b104286c04 qca-wifi: Add WMI support for Tbtt sync in Multi Soc
Support synchronization of Tbtt in multi SoC case.
Add WMI to send vdev details of one soc to another.
Info includes beacon interval, bssid and tbtt calculated
in host wrt to other Soc.

Change-Id: I79c5813e6294f4852bd373d32723a98c05bd5871
2020-04-24 19:45:24 -07:00
nobelj
9bd45e8e5b qca-wifi: Drop ppdu descriptor in pending ppdu queue and other fix
a. ppdu desc in pending ppdu queue is dropped on queue length exceeds
threshold which is 32.
b. configuring ring map for soc only once.

Change-Id: I7398a478ce9e4d974d9ecc2a06d30821f151a1b5
2020-04-24 13:15:18 -07:00
Linux Build Service Account
587c236f05 Merge "qca-wifi: Add frame types to TX Capture" 2020-04-23 15:47:39 -07:00
Priyadarshnee S
67c3abe5c0 qca-wifi: Add DFS APIs to support Rolling CAC feature
Feature Description:
FCC/JP domains do not support PreCAC. However, we can always start
beaconing in a channel if we have completed CAC in that channel for more
than or equal to the CAC period of that channel.
If an Agile engine is available and the next channel is known, we can
start CAC in the next channel using agile, while continuing the Tx/Rx
in the current channel. And when we want to start beaconing in the
next channel after a radar detection (or after/for a user request) we can
do so without any new CAC. This allows us to jump to the new channel
without having to disrupt any ongoing data traffic. This type of
continuous CAC in the next channel while operating in the current channel
is known as Rolling CAC.

Following functionalities are implemented:

1. APIs to enable/disable Rolling CAC feature.
2. APIs to set/get user configured Rolling CAC frequency.
3. Rolling CAC timer init, deinit and timeout functions.
4. API to determine if Rolling CAC feature is supported or not.
5. API to prepare a Rolling CAC channel and start RCAC host timer.
6. API to verify if user configured RCAC frequency is valid or not.
7. API to invoke random channel selection algorithm to determine a
   RCAC chan.

CRs-Fixed: 2659363
Change-Id: Idd233268530a743dee5f0d939168573f1ba10ad8
2020-04-23 07:49:17 -07:00
Linux Build Service Account
25fe63f67c Merge "qca-wifi: Introduce Rolling CAC state machine" 2020-04-23 03:56:08 -07:00
Vignesh Mohan
73ebe8187c qca-wifi: Introduce Rolling CAC state machine
Rolling CAC is a feature that uses the agile detector to
continuously perform CAC on a channel other than the primary
operating channel.
When the primary channel is changed to this Rolling CAC channel,
CAC is not required given that there was no radar in this rolling
CAC channel for a minimum duration (1 min in general).

Introduce a state machine that holds three basic states,
1. RCAC_INIT - No channel in Agile detector.
2. RCAC_RUNNING - Channel in Agile detector for < minimum duration.
3. RCAC_COMPLETE - Channel in Agile detector for > minimum duration.

Events that will be handled by the state machine:
1. RCAC_START - Trigger RCAC configuration in Agile detector.
2. NOL_EXPIRY - Retry picking new RCAC channel if not running/complete.
3. RCAC_STOP  - Reset agile detector and stop host timer.
4. RCAC_DONE  - Move SM to completed state if running.
5. ADFS_RADAR - Reset Agile detector with new channel if available
                for RCAC.

Each states have entry, exit and event handlers with basic
implementations.

Few state transitions are as follows:
INIT -- RCAC_START --> RUNNING
RUNNING -- RCAC_DONE --> COMPLETE
COMPLETE -- ADFS_RADAR --> INIT (new chan) -- RCAC_START --> RUNNING
RUNNING  -- RCAC_START --> INIT (new chan) -- RCAC_START --> RUNNING
COMPLETE -- RCAC_START --> INIT (new chan) -- RCAC_START --> RUNNING
RUNNING -- ADFS_RADAR --> INIT (new chan) -- RCAC_START --> RUNNING

CRs-Fixed: 2659363
Change-Id: I48a459d67d14973920c5a615bcd7c9d756b05293
2020-04-22 17:16:11 +05:30
Linux Build Service Account
2e3dd6f8e4 Merge "qca-wifi: adjust data by pulling extra HTT header from nbuf" 2020-04-22 02:23:13 -07:00
Linux Build Service Account
a5987e5cd7 Merge "qca-wifi: Set monitor buffer size as 2K for 256M profile" 2020-04-20 19:23:38 -07:00
Srinivas Pitla
381441b56b qca-wifi: adjust data by pulling extra HTT header from nbuf
For packets from exception ring will have extra HTT header, that
is adjusted to avoid wrong LLC header

Change-Id: I36adaa6ab0c3ba96a5eec9bf05747576e3938028
CRs-Fixed: 2661034
2020-04-20 13:16:14 -07:00
Linux Build Service Account
51120720e7 Merge "qca-wifi: filter by mac check" 2020-04-20 12:46:45 -07:00
Shashikala Prabhu
829e678c35 qca-wifi: Set monitor buffer size as 2K for 256M profile
Monitor mode is not supported in 256M profile. Therefore set monitor buffer
size as 2K.

Change-Id: I914ede679363d67566537c1abb9f9f1b599b4d20
CRs-Fixed: 2668071
2020-04-20 10:28:41 -07:00
Linux Build Service Account
d035dfef20 Merge "qca-wifi: ignore ack with 0 mac addr" 2020-04-14 17:59:18 -07:00
Christopher Chopp
cf78ddd987 qca-wifi: Add frame types to TX Capture
The current implementation of the TX Capture
feature assumes a non QoS 3 address frame for
each frame. If a frame is a QoS frame, the extra
fields are manually added, but if the frame is a
4 address frame, there is no handling. Add QoS,
4 address and 4 address QoS frame types to the
TX Capture feature and update accordingly.

Change-Id: Idd7f8f55a5543718f52bc38be396d671b87b54bd
CRs-Fixed: 2636684
2020-04-14 16:38:53 -07:00
Ruben Columbus
f73266f87c qca-wifi: filter by mac check
filter pass seems to not be working for control frames
so we are using mac check address comparison for non-bss freames
when tx_monitor is set

Change-Id: I3a003636381f73191081e821dbe8cf00a67cb042
2020-04-13 17:33:22 -07:00
Srinivas Pitla
3e6eb3562a qca-wifi: Free nbuf on bpr disabled case only
If tx capture, sniffer are not enabled, mgmt nbuf is freed.
It is causing use-after-free in bpr enabled case

Added change to free only when bpr is disabled

CRs-Fixed: 2662214
Change-Id: I0d889f371cf47047200f70563b589fac99733c49
2020-04-13 11:32:37 -07:00
Padma Raghunathan
1d0cd5513b qca-wifi: CFR: Remove CFR files in component_dev
Remove CFR files from comp_dev

Change-Id: I4fcb34e5f31a4df7098cc52516257fdc89848839
2020-04-09 20:34:28 -07:00
Padma Raghunathan
eae627875f qca-wifi: CFR: Remove QAL streamfs
streamfs/relayfs is needed by MCL and WIN. It is being moved to
QDF layer(Change-Id: I1401112ece290e6d0560623cf10faaf498ebb1b7).

Cleanup QAL streamfs files to avoid duplicity.

Change-Id: I06f2f07ca347e12b262620a780b38f40f565712a
2020-04-09 20:34:12 -07:00
Ruben Columbus
85d72bdfe4 qca-wifi: error copying memory
unnecesary condition statement for mem copy

Change-Id: I5742b9272ac5c1789a078165c858c3d54bc59bda
2020-04-09 14:04:58 -07:00
Linux Build Service Account
81dd781d31 Merge "qca-wifi-oss: Fix compilation errors on disabling Agile DFS" 2020-04-07 10:40:57 -07:00
Ananya Barat
5c45da13be qca-wifi-oss: Fix compilation errors on disabling Agile DFS
Agile DFS can be disabled by disabling macro QCA_SUPPORT_AGILE_DFS.
Fix compilation errors on disabling Agile DFS.

Change-Id: I144a261f5e0db37bea9a0a6b372bcf1e13205bb6
2020-04-07 12:24:44 +05:30
Linux Build Service Account
94ba9e06ab Merge "qca-wifi: Handle Packet log disable WMI command fail" 2020-04-06 21:41:12 -07:00
Linux Build Service Account
a78b6f8b6a Merge "qca-wifi: CFR: Change streamfs directory path" 2020-04-05 00:39:03 -07:00
Linux Build Service Account
f366c4359c Merge "qca-wifi: Unmark PreCAC NOL based on 160MHz PreCAC tree" 2020-04-04 08:28:55 -07:00
Linux Build Service Account
84b4ed4340 Merge "qca-wifi: Update API to check precac done" 2020-04-03 04:21:06 -07:00
Pavankumar Nandeshwar
1514da0ceb qca-wifi: Hold the ast lock while using ast table
Hold the ast lock while fetching and using the ast
entry from ast table without unlocking in between
to make sure that the ast entry is not freed
in between.

Change-Id: I887b94441e7c19d6ce0bf7175f61a1dc9055a0fc
2020-04-01 23:11:11 -07:00
Subrat Mishra
db94114a40 qca-wifi: Handle Packet log disable WMI command fail
Handle packet log disable WMI command fail scenario.

CRs-Fixed: 2643385
Change-Id: Iffe3efa222bb736cdf604455a0e7d12e5500e536
2020-04-01 22:49:49 -07:00
Vignesh U
d72c581437 qca-wifi: Unmark PreCAC NOL based on 160MHz PreCAC tree
PreCAC NOL is unmarked based on the 80MHz center frequency. This is
wrong as the PreCAC tree, with the avilablity of full 160MHz Agile engine,
can have a root as high as 160MHz. This will lead to channel not picked
for PreCAC after NOL timeout.

PreCAC NOL should be unmarked based on the center frequency of
the root node's bandwidth.

CRs-Fixed: 2654993
Change-Id: Ie054d725c1b7a2fed47c9f294f3d71c4dd9e8ecb
2020-04-01 20:08:44 +05:30
Linux Build Service Account
51b137a4fe Merge "qca-wifi: Modify API to check precac on 160MHz channel" 2020-04-01 06:40:30 -07:00
Padma Raghunathan
f1ac9b965c qca-wifi: CFR: Change streamfs directory path
Streamfs implementation is moved to cmn_dev since both WIN/MCL
need it for CFR. In QAL layer, parent directory was NULL,
whereas in qdf layer, parent directory is "qdf".

This change modifies the streamfs directory path used by CFR
userspace app.

Change-Id: I5d235dab66344e3baa8d9fac7ad2f12e2b9f13ea
2020-04-01 09:10:37 +05:30
Vignesh U
383bf4a22b qca-wifi: Update API to check precac done
The API to check if precac is done on a given channel is based on
the 80MHz precac tree(dfs_is_precac_done_on_ht20_40_80_chan_for_freq()).
So a separate API was needed to check if precac was done on a 80P80MHz or
160MHz channel(dfs_is_precac_done_on_ht8080_ht160_chan()).

Now that the precac tree is updated to include the 160MHz and 165MHz
channel, the API(dfs_is_precac_done_on_ht20_40_80_chan_for_freq()) can
also be updated to include the 160MHz and the 165MHz channel and
the API(dfs_is_precac_done_on_ht8080_ht160_chan()) can check only the
80P80MHz channel.

Change the API dfs_is_precac_done_on_ht20_40_80_chan_for_freq() to
dfs_is_precac_done_on_ht20_40_80_160_165_chan_for_freq() to also check the
160MHz and the 165MHz channel.

Update the API dfs_is_precac_done_on_ht8080_ht160_chan() to
dfs_is_precac_done_on_ht8080_chan() that checks precac done only on a
80P80 channel other than the restricted 80P80 channel(the 165MHz channel).

Change-Id: Id747e3a88fc3d74c40702fc250af9e1b825b4e78
CRs-Fixed: 2653172
2020-03-31 16:50:09 +05:30
Vignesh U
d755d585bb qca-wifi: Modify API to check precac on 160MHz channel
The API dfs_is_pcac_on_weather_channel_for_freq() which checks
whether PreCAC is being done on a weather radar  channel or not does not
consider the case of an input 160MHz channel.

Add a case to check if the 160MHz channel includes weather radar channels
or not.

Also take care of the 165MHz channel which will be treated as 80P80MHz
channel.

CRs-Fixed: 2651161
Change-Id: I7285c9095a184947b1c33c11d6bb3b2370b31401
2020-03-31 16:29:12 +05:30
Linux Build Service Account
99b50e6aa1 Merge "qca-wifi: fix TSF wrap around case in tx capture" 2020-03-30 02:28:34 -07:00
Linux Build Service Account
fe264824b0 Merge "qca-wifi: Remove redundant data structure for wmi response extraction" 2020-03-30 02:28:33 -07:00