Graphe des révisions

8283 Révisions

Auteur SHA1 Message Date
Linux Build Service Account
b5bc05ee3f Merge "qcacmn: Ignore rx hw stats reo command status callback" 2020-02-21 15:10:09 -08:00
Nirav Shah
47fdeadbd1 qcacmn: Enable Shadow register from PCIe block in QCN7605
QCN7605 has 2 set of shadow registers, WCSS block and PCIe block.
As PCIe shadow register are at power domain boundary, enabling
PCIe shadow register for QCN7605.
Also PCIe shadow register falls below 512KB, no need to use register
windowing which is required to get it access from IPA FW

Change-Id: If18d2d0a3f16f492b3c32449695e70c2b9942375
CRs-Fixed: 2623853
2020-02-21 06:08:41 -08:00
Dundi Raviteja
459060642c qcacmn: Add wmi interface changes to extract mgmt offload event
Add wmi interface changes to extract mgmt offload event params
when WLAN_FEATURE_PKT_CAPTURE is enabled.

Change-Id: Icacd65a99953fdc77b2c6823e9d26baaed3737c8
CRs-Fixed: 2619316
2020-02-20 21:36:26 -08:00
Abhinav Kumar
90d227ce32 qcacmn: Support sae single pmk roaming BSS in scan
"WPA3-SAE Single PMK" is a feature by which STA can
complete SAE roaming to specific group of AP(s) using
single PMK. This is done with the help of advertising
vendor specific SAE single PMK IE in the beacon/probe.

When vendor specific sae single pmk IE (oui 0x00 40 96,
type 0x03) is present in the beacon/probe of AP then the
BSS supports WPA3-SAE roaming using Single PMK.

Add changes in scan module to parse the Vendor specific
SAE single PMK IE and copy it to the scan_entry ie_list.

Change-Id: I5b7096d1360c624ce1c47e56e8cad37adbdda1e3
CRs-Fixed: 2616099
2020-02-20 18:11:53 -08:00
Nandha Kishore Easwaran
f5bf6a10e8 qcacmn: Donot deinit timer if it expired
Do not deinit timer if it has expired since expired timers are
automatically removed from timer list. Only deiniit and delete timer
if it is still running and FW response has been received

Change-Id: I0eb839ba152a20d9da37e1249aa0e4c0543eb494
2020-02-20 14:49:15 -08:00
sheenam monga
5e4030f6c3 qcacmn: Introduce QCA_WLAN_VENDOR_ATTR_BEACON_REPORT_FAIL
This attribute aims the STA to send the Beacon Report response
with failure reason for the scenarios where the Beacon Report
Request cannot be handled.

Change-Id: I1b57d1c810deee4545c9a3b84b45ab5bd539d9bb
Crs-Fixed: 2622023
2020-02-20 12:25:30 -08:00
Jeevan Kukkalli
e795cc17aa qcacmn: Add NULL check for peer mac
Add NULL check for peer mac before accessing it.

Change-Id: I039aa22d81c0e6a192c816c395cebefa4eaf3b82
CRs-Fixed: 2622011
2020-02-20 12:25:14 -08:00
Ananya Barat
9a4c328738 qcacmn: Populate the correct opclass for 6G channels
For the 6G band, the only valid opclass_table is the global_op_class
as per the current specification. Therefore, if the band is 6G set the
opclass to global_op_class instead of the default us_op_class.

As per specification for chan width 40 MHz, there is no behav limit
for both Low Primary and High Primary channels. Hence, set behav limit
as BIT(BEHAV_NONE) if channel width is 40 MHz.

Change-Id: I534f5b898e10cf21042a117aa71e824a85d73fb3
CRs-Fixed: 2608059
2020-02-20 08:33:03 -08:00
Himanshu Batra
7e8e1a229c qcacmn: Move _ol_ath_param_t enum out from CDP
Add code to move enum _ol_ath_param_t out from common DP code
and move it into OL layer

Change-Id: I92fa5f52c581a18449ab42da41ff5f6f1a2bc595
Crs-Fixed: 2560866
2020-02-20 08:32:47 -08:00
Aditya Sathish
6287db0784 qcacmn: Add 6GHz support for chan/freq/band usage in scan
Currently the conversion APIs used doesn't take into account
the overloading of channel numbers between 6GHz, 5GHz and 2.4GHz
bands.

Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support all three bands.

Change-Id: Ic2c8dfa4cc845d701dfd07df61c9ae1ee3d8bdef
CRs-Fixed: 2610378
2020-02-20 08:32:32 -08:00
Aditya Sathish
14e285e95c qcacmn: Add 6GHz support for chan/freq/band usage in dfs/reg
Currently the conversion APIs used doesn't take into account
the overloading of channel numbers between 6GHz, 5GHz and 2.4GHz
bands.

Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support all three bands.

Change-Id: Ief417f14620bc2fc02d76fea3642b6fbb9615916
CRs-Fixed: 2610378
2020-02-20 08:32:16 -08:00
Aditya Sathish
041409f98f qcacmn: Add 6GHz support for chan/freq/band usage in mesh mode
Currently mesh mode uses channel numbering which is derived
from APIs that don't support 6GHz channels numbering due to the
overloading of 6GHz channels with 2.4GHz and 5GHz.

Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support 6GHz.

Change-Id: Ib0b39ebae2a22bd6b2b5d17b9058c3c2100e0d59
CRs-Fixed: 2605229
2020-02-20 08:32:09 -08:00
Manjunathappa Prakash
c4667b8b12 qcacmn: Save Rx TLV offset info so as to recover in FISA
Packets delivered to FISA via exception err path doesnot have TLVs.
FISA handling requires additional TLVs. dp rx core handling
skips TLVs, save TLV length info in nbuf->cb so that TLVs
are recovered back in FISA.

Change-Id: I53fab2e19abcbf82697ea6f53a4ddf3ea0dd0699
CRs-Fixed: 2620844
2020-02-20 06:39:48 -08:00
Rakesh Pillai
ff26d1c783 qcacmn: Add stats for register write failure
Sometimes the register write in windowed region
are not going through, thereby retaining the
previous value, which can be incorrect for a
certain mode of operation for the driver.

This kind of incorrect register values, due to
a register write not succeeding, can lead to
unwanted issues. Also the simple logging of
any such occcurence can be over-written in the
logs, thereby going unnoticed.

Add a HAL level statistics to maintain the
count of such failed register writes.

Change-Id: Ib5e98705c23f0c916cb85f518576663710eb30e0
CRs-Fixed: 2611839
2020-02-20 04:52:12 -08:00
gaurank kathpalia
b73ede30b8 qcacmn: Add support for NAN msg in kmsg
Add support for the following NAN messages in kmsg:-
1. NAN enable status
2. NAN, NDP match events
3. NDP channel info.
etc.

Change-Id: I7f67b67153904b7efe8a708e3f93d069e399395c
CRs-Fixed: 2618433
2020-02-20 01:09:04 -08:00
Sravan Goud
5fd5cf65e2 qcacmn: In case of peer reuse set valid flag
Currently if peer reference is reused valid flag is not set.
In peer delete function if valid flag is not set, function
returns with out decrementing the ref count and also not
releasing the local id. This leads to local id exhaustion if
back to back peer reuse happens which is common in case of back
to back roaming to same AP. As a result connection to AP fails
due to unavailability of local id. In this change set valid flag
if peer reference is reused.

Change-Id: Ibeccbc4d33aac9e4285b48a4b8abdd2276fd7ede
CRs-Fixed: 2624798
2020-02-19 22:18:47 -08:00
nobelj
b621cabe85 qcacmn: Fix ppdu stats for disassoc frame
For Disassoc frame, fw send ppdu stats to host with peer_id
of the previous associated client. peer id is valid and peer
structure is NULL making framectrl as zero for disassoc frame.
with the fix frame ctrl are populated before checking for invalid peer.

Change-Id: I5960685a4c90f00a850f4f1fa2b3d883117fb443
2020-02-19 20:46:01 -08:00
Ashish Kumar Dhanotiya
07810f61ce qcacmn: Reduce logging while printing channel list
As part of logging optimization, reduce logging while
printing channel lists.

Change-Id: I0241dc4dbaa3879bbe354a0e4750a0d559d1ba40
CRs-Fixed: 2624517
2020-02-19 19:26:27 -08:00
Tiger Yu
a3a9160cf8 qcacmn: Destroy the queue_kicker work which is triggered by RPM resume
There might be a race condition between htc_kick_queues which is sheduled
by RPM resume and hdd_wlan_stop_modules.

Here are detail info:
1. Run time resume is called, which will schedule a work to do the
   htc_kick_queues later.
2. hdd_wlan_stop_modules is called at the same time, which will call
   htc_destroy to free the HTC_TARGET.
3. the htc_kick_queues will access the HTC_TARGET, but it has been
   freed.

Change-Id: I7211a8eef2a2f1924fe91eafec5a4496eea5a507
CRs-Fixed: 2622317
2020-02-19 16:08:43 -08:00
Gurumoorthi Gnanasambandhan
c4880c3a0b qcacmn: WMI tlv support to profile commands
WMI_WLAN_PROFILE commands support for tlv path.
Add WMI profile enable and trigger commands in tlv path

Change-Id: I10f867b181b559b82c097d6a61236f2145549238
2020-02-19 10:08:40 -08:00
Pavankumar Nandeshwar
0d8578f313 qcacmn: Check the max value for max desc before using
Check the max value for max desc extracted from cfg
before using it for actual allocation of tx descs.

Change-Id: I9bd6c88f136870a42596afbf25328965fce959be
CRs-fixed: 2614329
2020-02-19 08:43:54 -08:00
Sourav Mohapatra
9fae7f7537 qcacmn: Clean up logs in STATS path
Clean up logs in STATS request and response path.

Change-Id: I45135233eb4c10793dc9c62f28d91c49183a0a09
CRs-Fixed: 2618310
2020-02-19 04:58:56 -08:00
Himanshu Batra
f4149ccaa2 qcacmn: Add multivdev restart wait timeout
In the current implementaion, if multivdev restart req is not sent
due to error cases, then the multivdev restart timer gets restarted
after every timeout and the vdev sm is stuck in same state.
Add multivdev restart timeout wait counter and assert after the wait
timeout expires.

Change-Id: I12b10fb7d880e7fcf3dd02d1e38397aa2e3aebe7
CRs-Fixed: 2621231
2020-02-19 01:57:59 -08:00
Vignesh U
637fcad8e5 qcacmn: Add external dfs filters whenever available
Query the external radar source and if external radars are
available use the external radars in addition to the internal
radars.

Change-Id: I9fe42ecaaf949f8e504c35ecb8cffb3e9e809fd0
CRs-Fixed: 2615278
2020-02-18 20:56:54 -08:00
Linux Build Service Account
16b11006ed Merge "qcacmn: Break up DMA mem alloc for HW desc banks in multi pages" 2020-02-18 18:08:17 -08:00
Nisha Menon
3e5b005e4e qcacmn: Break up DMA mem alloc for HW desc banks in multi pages
Break up the 2MB descriptor bank memory allocations for WBM
idle link ring. Use multiple page allocation and populate the
WBM idle link descriptor ring with physical addresses of each
DMA page allocated in the descriptor bank.
This is to ensure that no requests for contiguous memory
allocations are made that might result in allocation failures.

For MCL set the page size to 4KB and leave it to max_alloc_size
cfg ini param for WIN specific code.

Change-Id: Iec30321044827c0174366cc02df25a42d38309e0
CRs-Fixed: 2565817
2020-02-18 16:38:43 -08:00
Linux Build Service Account
1d96209158 Merge "qcacmn: Enable external processing of radar" 2020-02-18 15:37:23 -08:00
Santosh Anbu
b59fbe7504 qcacmn: Reduce log level of serialization deinit
Add change to reduce log level for the serialization deinit
debug string as part of bootlog cleanup.

Change-Id: Ibf1cf8352df053df0dba6239f503b868a870a04d
CRs-Fixed: 2623638
2020-02-18 12:48:45 -08:00
sheenam monga
933b129201 qcacmn: Change wlan driver prints from hex to decimal mode
Currently, wlan driver prints id in hex mode and
fw prints in decimal mode. Unnecessary hex to dec conversion
conversion is required while comparing with fw logs.

Fix is to change driver timestamp log from hex to decimal.

Change-Id: I78f9b7fe0ba590c53ea3e90b982691d91b7453e4
CRs-Fixed: 2620935
2020-02-18 08:11:15 -08:00
Santosh Anbu
cba0c2f7c5 qcacmn: Return status of multivdev restart request
Add change to return the status of multivdev restart request sending
to FW.

Change-Id: I48501323761256beac3b86e1b3cd3b476ee3ce82
CRs-Fixed: 2622200
2020-02-18 08:10:58 -08:00
Linux Build Service Account
d7586dd85c Merge "qcacmn: Add an enum value for DBDC Repeater flags" 2020-02-18 02:10:53 -08:00
nobelj
eaf0a8e1aa qcacmn: update tx rate stats only for transmitted packet
Fix issue, update tx rate stats only for transmitted packet

Change-Id: Ice13c99bf82380d56759eb180e774ffab21b66b0
2020-02-17 07:41:08 -08:00
Abhishek Ambure
ebb5e8667e qcacmn: Introduce QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO
This acts as a vendor event and is used to update the information
of a station from the driver to userspace.

Add an attribute for the driver to update the channels scanned in
the last connect/roam attempt.

Change-Id: I3e87292d6ef00c0242cb583183de2b441352c8a5
CRs-Fixed: 2622092
2020-02-17 04:56:12 -08:00
Vignesh U
265b3cb98d qcacmn: Enable external processing of radar
Enable external processing of confirm radar.

Change-Id: I241b73c93301728489342dd47fb130f366290aa0
CRs-Fixed: 2615270
2020-02-17 04:49:42 -08:00
Vignesh Mohan
3a795702fc qcacmn: Add a new CFG param for set opclass tbl cmd
Add a new enum in CFG __ol_ath_param list for set and
get opclass tbl command.

CRs-Fixed: 2621974
Change-Id: I9389f43b7ad5d1d338a8578c3dba39f41e29acce
2020-02-17 00:05:59 -08:00
Sravan Goud
b2c1b4a49b qcacmn: Ignore rx hw stats reo command status callback
Host queries for reo hw stats by sending reo queue status command
on all the rx tids. After sending host waits to receive for all the
rx tids reo hw stats. If the hw stats reo status is not received for
all the rx tids with in the specified timeout value corresponding
peers's reference is released. In parallel if disconnect happens
from userspace, there is always a chance to access the freed rxtid
reference in rx hw stats callback. So in case of rx hw stats event
timeout ignore processing the reo command status rx stats callback.

Change-Id: I0aba346a25564a3c29751f1f5a1d4e9204b93d33
CRs-Fixed: 2619720
2020-02-17 11:46:43 +08:00
Jianmin Zhu
c310645579 qcacmn: Fix get peer stats cmd timeout
Request is cleared before response for race condition between request
thread wificond and response work thread.
1. wificond thread sent get peer request and waited for
response.
2. worker thread got response from F/W, completed the request.
3. Wificond got the response, finished the request.
4. wificond triggered another get peer request, created
new request, set pending request bit TYPE_PEER_STATS.
5. Kworker thread clear the pending request bit
TYPE_PEER_STATS.
6. Cleared request TYPE_PEER_STATS couldn't be completed any
more, wificond thread waited for 1.6s, timeout happened.

Fix: Clear pending request bit TYPE_PEER_STATS before
complete the request, make sure old pending request bit is
cleared before new request of same type is set.

Change-Id: I058cada5fa870d95172122364903bff2b31eb277
CRs-Fixed: 2621914
2020-02-16 13:08:27 -08:00
Amar Singhal
70259d6252 qcacmn: Define a new regulatory API for frequency check
Given country from country IE and operating class, check
whether a channel frequency belongs to that pair.

Change-Id: I9bf711b2c52ad230a3066113a5aa7b8959219754
CRs-Fixed: 2620767
2020-02-16 02:05:29 -08:00
aloksing
f89f2b3e50 qcacmn: Fix wifi load issue on CYP
wifi load failed due to unknown symbol in qca_ol
Add export symbol inside compile time macro

Change-Id: If1bb24084a6f95678b51bb85aaa0b8a87df3d50b
CRs-Fixed: 2621904
2020-02-16 00:39:08 -08:00
Radha Krishna Simha Jiguru
b4c0f1fe75 qcacmn: Add HTT message for sending 3 tuple configuration
Add HTT message for 3 tuple hash reporting in packet TLVs.
Change-Id: Iacdeee178838b490b3ad7e79c8bf27ca06b371a6
2020-02-15 21:49:27 -08:00
Yeshwanth Sriram Guntuka
52a511822b qcacmn: Put the htc pkt in freelist on htc_send_pkt failure
In case of nbuf map failure as part of htc_send_pkt for
tx credit flow disabled endpoints, htc pkt is not put
back in the freelist as return status is not checked
resulting in memory leak.

Fix is to put the htc pkt back in the freelist based on
status returned by htc_send_pkt.

Change-Id: I9173fa3684bc887a360b92d48b689c53a5ad5dbe
CRs-Fixed: 2596297
2020-02-15 19:10:29 -08:00
Alok Kumar
7271755f47 qcacmn: Add static window support for UMAC and CE access in 6750
Use static window for accessing UMAC and CE register in qca6750. For
UMAC and CE register access, separate static window is mapped. Host
accesses these registers using relative offset to window address.

Change-Id: I7940336579553f05a11f1379f635689d08508c56
CRs-Fixed: 2617684
2020-02-15 17:42:01 -08:00
Chaoli Zhou
10cfeb84a4 qcacmn: Pass phy address PCIE_PCIE_SCRATCH_2 to IPA
Currently, the IPA GSI can't update the index to copy
engine 5 write index register since such kind of
register address is above 512k, so as a workaround,
we use PCIE_PCIE_SCRATCH_2 to replace copy engine 5
write index register for IPA update the index. And then
WLAN firmware will poll this register to check if this
index update or not, if updtae, WLAN firmware will be
as agent to update the index to real copy engine 5 write
index register, and then the data from IPA to WLAN will
work. Before the real fix is ready, we use this method
for workaround.

Change-Id: I383a7d52f5685b633f1bd44659b11f30231c8ca8
2020-02-15 17:41:40 -08:00
Linux Build Service Account
2bd1ed15c7 Merge "qcacmn: Add support to get fwr phymode for frequency" 2020-02-15 11:08:17 -08:00
Linux Build Service Account
67ef957780 Merge "qcacmn: Rename cmd ring to cmd_credit ring" 2020-02-15 11:08:15 -08:00
Vinay Gannevaram
2250592dcd qcacmn: Add support to get fwr phymode for frequency
Currently, wifi-pos uses channel number to get the fwr phymode.
For adding 6g support wifi-pos need to get the phymode from
frequency instead of channel number
As a part of fix, Add handler for getting phymode based on
frequency

CRs-Fixed: 2617903
Change-Id: I007edebe41bf5ca750a1262c85043f628dc9f89f
2020-02-15 04:43:36 -08:00
Ankit Kumar
f63aaef3d3 qcacmn: Rename cmd ring to cmd_credit ring
Command ring is now renamed to credit ring on QCN9000
and used for credit based flow.
Renaming the ring to give meaningful name.

Change-Id: I726aed19477fcfb256e4e0cca8ddb9389035b58c
CRs-Fixed: 2562640
2020-02-15 00:32:25 -08:00
Alok Kumar
281aa22857 qcacmn: Update CE registers and CE IRQ for qca6750
Update CE registers offset during hal srng configuration
and configure CE IRQ for qcac6750.

Change-Id: I4fd3d37783361f0029c7ef80e32425f8790d1250
CRs-Fixed: 2617699
2020-02-14 20:20:07 -08:00
Shashikala Prabhu
3aa150756b qcacmn: Use restricted 80+80 MHz service bit instead of 165 MHz
For restricted 80+80 MHz FR, target team initially added
wmi_service_bw_165mhz_support to indicate the target is capable of
supporting restricted 80+80 MHz.
Later, they have added wmi_service_bw_restricted_80p80_support to indicate
the same. Therefore rename wmi_service_bw_165mhz_support as
wmi_service_bw_restricted_80p80_support.

Change-Id: I12229b5d35911d4c34e63902c09592187d902bed
CRs-Fixed: 2621249
2020-02-14 10:46:07 -08:00
Yu Tian
0c6d94dd3e qcacmn: cdp: Implement API cdp_set_key_sec_type
Peer key security type is set in cdp_set_pn_check,
this API is called in key install step, but only
update Ucast field even if in Mcast key install.
This may be set wrongly if Ucast and Mcast security
modes are different. Add a new API to set security
modes of differ key types separately.

Change-Id: Icaa63139d117de75633ca1f81eb618c6b9294b53
CRs-Fixed: 2617461
2020-02-14 07:40:04 -08:00