Commit Graph

19919 次程式碼提交

作者 SHA1 備註 提交日期
Amit Mehta
63979604dd qcacmn: Add memory barrier to avoid inconsistent read for valid flag
Currently there is no memory barrier after valid flag read,
which can result in reading q_elem values in random order,
due to which host can read stale entried from the q_elem.

To fix the issue add memory barrier to avoid inconsistent
read for valid flag.

Change-Id: I9431d4f62188def37c2515e376a28f3985733f85
CRs-Fixed: 3577746
2023-08-10 14:43:39 -07:00
Manikanta Pubbisetty
882184c8f1 qcacmn: Increment TX enqueue stats on Rhine targets
Increment TX enqueue stats on Rhine targets.

Change-Id: I526ee8e1e1b2e8aa10e5c7a1c7dad2c45d236ba2
CRs-Fixed: 3574412
2023-08-10 14:43:28 -07:00
Deeksha Gupta
a2ccbeff4e qcacmn: Select best ML partner link info based on DBS or SBS mode
Select the best ML partner link based on DBS or SBS mode.

Change-Id: I5d7d9242b32fa4143e7bec5b9692689ac257ca4d
CRs-Fixed: 3530717
2023-08-10 14:43:18 -07:00
Thirusenthil Kumaran J
433eb772d1 qcacmn: Limit AFC maximum bandwidth in AFC list
Currently, maximum bandwidth in AFC channel list is set to 320 MHz.
Since 320 BW is supported only in 11BE mode, setting the maximum
bandwidth to 320 for devices that does not support 320 BW is not
correct.

Hence, to fix this issue, limit the Maximum AFC BW based on whether
the radio supports 11BE or not.

Move the puncture bitmap validation for 320 MHz BW in the API
'reg_get_320_bonded_channel_state_for_pwrmode' to within the
CONFIG_REG_CLIENT compilation flag. This validation of puncture
bitmap is currently done only for 320 MHz BW. The API used for lower
BW does not consider puncturing. This causes inconsistency in the
behaviour between 320 MHz BW and lower BWs.

Since the validation of puncture pattern is done separately for WIN,
add a WIN specific empty stub function.

Change-Id: Icbbbcae3fef2336df02291c5218d89942f3f1b68
CRs-Fixed: 3560313
2023-08-10 14:43:07 -07:00
Pragaspathi Thilagaraj
cbefdcb9f0 qcacmn: Add support for WMI_ROAM_SYNCH_KEY_EVENTID
Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID.
WMI_ROAM_SYNCH_KEY_EVENTID is received after roaming to 3 Link
MLO AP when standby link is supported.

Add changes to register handler function pointers and parse
the event.

Change-Id: Iee17560f9f1f3242ef512a550764a9c64319b67f
CRs-Fixed: 3571673
2023-08-10 14:42:56 -07:00
Karthik Kantamneni
6e1fe7f344 qcacmn: Reset nbuf data pointer properly in RX fast path handling
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.

Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.

Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
2023-08-10 14:42:45 -07:00
Paul Zhang
6ca876877a qcacmn: Ignore QDF_STATUS_E_ALREADY when vdev creating
Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.

Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
2023-08-10 05:13:55 -07:00
Nandha Kishore Easwaran
1f24545139 qcacmn: Suppress MLD print
Suppress MLD print since this print is unrelated for
non-mld platform.

Change-Id: I4cf04001d3f0e3c1c63b27adc5a71cc627a382fd
CRs-Fixed: 3582264
2023-08-10 05:13:44 -07:00
Vishal Miskin
9c509a66de qcacmn: Add QCA vendor attributes for user defined power save params
Extend QCA_WLAN_VENDOR_ATTR_CONFIG_OPTIMIZED_POWER_MANAGEMENT
attribute to support enum qca_wlan_vendor_opm_mode.

Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_ITO and
QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_SPEC_WAKE to configure inactivity
timeout and speculative wake interval in User defined optimized
power save mode.

Change-Id: I726ca91638e07fd1efae4921519bb6affc8b9c21
CRs-Fixed: 3567041
2023-08-10 05:13:32 -07:00
Manikanta Pubbisetty
3ac14805dd qcacmn: Fix issue with IRQ re-enablement for CE IRQs
Currently on WCN6450 which is based on IPCI, there is a problem
in re-enabling the IRQs while firmware recovery is in progress.

While processing the CE IRQs, if there’s an active recovery
happening in the host (due to FW assert), we are leaving the IRQs
disabled in the kernel.

Fix this by refactoring the code such that hif_irq_disable() is
called only when there is no active recovery.

Change-Id: I4e3ccbb5f820645597feb724ddfe321e7d7d1a5f
CRs-Fixed: 3579429
2023-08-10 05:13:21 -07:00
Aasir Rasheed
33f9c6eb46 qcacmn: Fix typographical errors
Currently, the host driver interprets an active link
status as 0 and an inactive link status as 1.
To comply with updated requirements, the change will
switch active links to be represented as 1 and inactive
links as 0, aligning with the correct status interpretation.

Change-Id: I5342e85106b4623ed4c79a4841884bfa8cd9d638
CRs-Fixed: 3581454
2023-08-09 17:26:11 -07:00
Harsh Kumar Bijlani
9cbb3b7b3e qcacmn: Change macro DP_MAX_STRING_LEN value to 1000
Change macro DP_MAX_STRING_LEN value to 1000.

Change-Id: I4220c6288a55700f2f3ed89db30ec01ae2d77771
CRs-Fixed: 3579776
2023-08-09 07:26:16 -07:00
Shwetha G K
923e2c3f6d qcacmn: Add enhanced AoA support
WMI changes to support enhanced AoA for CFR

CRs-Fixed: 3553719
Change-Id: Ic09940d3ce7d4eaed81e666b0c891294a82bc4bb
2023-08-09 07:26:06 -07:00
Shwetha G K
0536af115e qcacmn: Extract enhanced aoa data
Changes to extract enhanced aoa data from WMI event

CRs-Fixed: 3553725
Change-Id: I4a37fdb889cd5d461ee6ef92966a042aeed91fc8
2023-08-09 07:25:55 -07:00
Shwetha G K
2a073ca079 qcacmn: Add enhanced AoA support for 11be targets
Changes to support the enhanced AoA (multi gain table).

CRs-Fixed: 3553705
Change-Id: I75babad28aab53074e68266e8d98ad40a119fc69
2023-08-09 07:25:44 -07:00
Himanshu Batra
d0b09316c5 qcacmn: Add wait logic for sync mld disconnection
Add wait logic for sync mld disconnection

Change-Id: Ie0931cf77205dd4f88eb903e7b43a3735786c859
CRs-Fixed: 3570519
2023-08-09 04:01:55 -07:00
Santosh Anbu
535c58f795 qcacmn: Update start response reason as per FW event
A new start response reason was added by FW to indicate invalid config
of TX VAP. Update the corresponding enum on host to support this reason.

Change-Id: I924776a83176d495ac9e8b656a78b131bd0b0cc5
CRs-Fixed: 3582194
2023-08-09 04:01:44 -07:00
Vaishnavi Chekuru
e2b1461482 qcacmn: Using HAL_RX_GET_64 to read cfr elements
RCC mode of CFR capturing was not working on miami as
	bb_captured_channel field which is being accessed from
	RXPCU_PPDU_END_INFO tlv is not being set in host.
	These fields of cfr are fetched from HAL_RX_GET()
	which is being failed to read by host as it
	follows 32 bit approach and miami uses 64 bit format.
	Reading 4 bytes is not enough ,So changing HAL_RX_GET()
	to HAL_RX_GET_64() and this will read 8 bytes with
	which we get elements properly.

Change-Id: I8c669e5cc78ce856c1bc4b0449125aac45461a9b
CRs-Fixed: 3572563
2023-08-09 04:01:34 -07:00
Vaishnavi Chekuru
142ccb390a qcacmn: Use HAL_RX_GET_64 to read cfr elements
Host is failing to read few cfr elements by HAL_RX_GET for
pebble as HAL_RX_GET follows 32 bit approach and pebble uses 
64-bit format and so reading 4 bytes is not enough.
Used HAL_RX_GET_64 to read those cfr elements and this change 
reads 8 bytes and then the elements are properly read.

Change-Id: If6f0b8e2a215719a1e42828764db01fe99a7e48d
CRs-Fixed: 3575631
2023-08-08 18:39:09 -07:00
Amit Mehta
5748e165de qcacmn: Change log level for hal_info and hif_info
Currently hal_info and hif_info logs levels are set to
QDF_TRACE_LEVEL_INFO, which results in prints being logged
to dmesg buffer.

To prevent prints logging into dmesg buffer, changes logging
level to QDF_TRACE_LEVEL_INFO_HIGH.

Change-Id: I039c5e7b6b47f1ffda8e32ff44322d1963648c41
CRs-Fixed: 3577831
2023-08-08 15:27:30 -07:00
Shwetha G K
7d60fb8543 qcacmn: WMI changes to extract AoA capabilities
Add changes to extract AoA capabilities from EXT2
SERVICE READY EVENT

CRs-Fixed: 3553405
Change-Id: I240d8420a75419f3dde0abd03ef1d6b61abbc3e9
2023-08-08 15:27:19 -07:00
Shwetha G K
6828824ccd qcacmn: Extract enhanced AoA caps to tgt_info
Changes to extract enhanced AoA (multi gain table support)
capabilities from SERVICE_READY_EXT2 event

CRs-Fixed: 3553378
Change-Id: I8db093cfce7b8c8cacedef39f97911eabe062c19
2023-08-08 15:27:09 -07:00
Himanshu Batra
dd3ebd6336 qcacmn: Move HE downgrade logic under MLO_ADV_FEATURE macro
Move HE downgrade logic under MLO_ADV_FEATURE macro

Change-Id: Ib89a974f21332368f7deddf58a180f8d9f1bf118
CRs-Fixed: 3581460
2023-08-08 09:16:42 -07:00
nobelj
d26a05fafd qcacmn: Add fix to free buffer properly on error case
In rx monitor deliver, Buffer need to be free properly for any
failure after MPDU restitch.

Change-Id: I7d2f649e8266d91d50a429a92c07bc42d1d730eb
CRs-Fixed: 3580509
2023-08-08 06:11:04 -07:00
Srinivas Pitla
4251e4ac67 qcacmn: Add/Remove VDEV from MLD
This change adds APIs
1) remove VDEV from MLD
2) add VDEV to MLD

CRs-Fixed: 3579048
Change-Id: I5a81d7a50b0c3865c3ab914a3e10906e3010cb91
2023-08-08 06:10:53 -07:00
Jeevan Kukkalli
c92389fe5f qcacmn: Improve readability of monitor error messages
Improve readability of monitor filter update error messages.
This will help to avoid redundant error message printing from
caller.

Change-Id: I63dbc52be7a2f9537bf226fe0008c4efb51fe582
CRs-Fixed: 3576860
2023-08-08 00:01:41 -07:00
Rahul Gusain
ba9a0f4a3d qcacmn: Add EMLSR caps in ML STA context
Currently, driver extracts EMLSR caps info from association response
for assoc vdev but this info is not present in link vdev.
Thus, driver should cache this EMLSR caps info in ML STA context while
extracting for assoc vdev and use these values for link vdev.

So, for this, add EMLSR caps struct in ML STA context.

Change-Id: I0ecf32ed4af9fb07624498f2753c12c5420edec1
CRs-Fixed: 3578371
2023-08-07 16:29:14 -07:00
nobelj
641a8433ff qcacmn: Add support to enable monitor peer for all peer
monitor peer is not allocated for MLO MLD peer this lead to drop in
broadcast and multicast frame in legacy tx monitor path. Added support
to enable monitor peer for all peer.

Change-Id: I786554a918bae966a929e4c9188c1b0f324b5846
CRs-Fixed: 3544695
2023-08-07 16:29:04 -07:00
Sai Pratyusha Magam
ffa5a06030 qcacmn: Populate 11AZ SECURITY CONFIG in vdev_param_tlv
Populate 11AZ SECURITY CONFIG in vdev_param_tlv

Change-Id: Ifde9fea68534c00a74230bd886c694e7eb90988c
CRs-Fixed: 3575149
2023-08-07 08:09:41 -07:00
Prakash Manjunathappa
19c0d5f5e8 qcacmn: hal_rx_dump_msdu_end_tlv_kiwi skip logging reserved field
__reserved_g_0003 is not present for peach platform, remove logging of
it as it is not useful anyway to log reserved field.

Change-Id: I8a7c4df5d6b769387010304d0234932925c1a866
CRs-Fixed: 3580279
2023-08-07 05:07:17 -07:00
Shwetha G K
871160dafe qcacmn: Multi gain table support in waikiki AoA
Add multigain table support on Waikiki AoA feature

CRs-Fixed: 3560018
Change-Id: Ibd397bdaa603b49d3743f9f3fdd1329369b2eb09
2023-08-07 01:57:53 -07:00
Himanshu Batra
8bb0552080 qcacmn: Add qal API for of_get_named_gpio_flags
Add qal API for of_get_named_gpio_flags

Change-Id: I21eb27c72baa2057028a8565fc68754818fc641c
CRs-Fixed: 3579431
2023-08-07 01:57:40 -07:00
Himanshu Batra
1f2743f8d4 qcacmn: Add qal API for br_fdb_add_or_refresh_by_netdev
Add qal API for br_fdb_add_or_refresh_by_netdev

Change-Id: I17acacab27782a531fa278f1535b9424e34637f1
CRs-Fixed: 3579431
2023-08-07 01:57:26 -07:00
Aditya Kodukula
102d3add36 qcacmn: Update link's self_mac address properly
After successful connection with an AP, driver fills the struct
cfg80211_connect_resp_params and sends it to the kernel.
For an MLO connection, the link's mac address field in the struct
is updated by AP's mac address instead of link's self_mac address.

So, update the kernel struct properly, to avoid issues.

Change-Id: I4d1ea4ee3fe5272dd4e08c0edd22b1df5c7999a3
CRs-Fixed: 3579820
2023-08-04 12:35:24 -07:00
Liangwei Dong
796501841d qcacmn: Add link removal flag in link info struct
Previously, the link removal state is in vdev object, but
the standby link has no vdev and vdev maybe repurposed
to other link, so link removal flag has to be in link info
struct to record the link removal state of corresponding link.

Change-Id: I435a8910897b099cffcccb0e435b70efb896eb8a
CRs-Fixed: 3572873
2023-08-04 06:53:48 -07:00
Krunalsinh Padhar
d3e95e7607 qcacmn: Send rf path WMI command
Prepare and Send WMI command to fw to set the rf path. Also, add module
ID for rf path switch for qdf log prints.

CRs-Fixed: 3568221
Change-Id: I7ef0ffe66eaed837424699641d3e5b8537cd0304
2023-08-04 02:49:21 -07:00
Shivam Kumar
f7142b0fd4 qcacmn: add/remove recommended error/debug print
add/remove recommended error/debug print

Change-Id: I2c5e2ed73fbc4299289b0d6c3059c514ef5052e9
CRs-Fixed: 3528661
2023-08-03 22:43:05 -07:00
Shivam Kumar
f337d69b2a qcacmn: add/remove recommended error/debug print
add/remove recommended error/debug print

Change-Id: I23075a7e5a0512ac9a5d87748f1ef75e4a799fe1
CRs-Fixed: 3528661
2023-08-03 22:42:53 -07:00
Ripan Deuri
9e376fe3d8 qcacmn: Disable FW AST indication for WDS peer
Disable FW AST indication for WDS peer.

Change-Id: Ib2a34fe458841ae00c06be599d9620f4210e9148
CRs-Fixed: 3577688
2023-08-03 13:18:18 -07:00
Basamma Yakkanahalli
0c9830a0c5 qcacmn: Additional RNR Cache to support 11BE and legacy TBTT info
Added additional RNR cache to support legacy and 11BE TBTT info.

Change-Id: I000c990e0cb4388a66c773672b47825acdd66153
CRs-Fixed: 3570430
2023-08-03 13:18:06 -07:00
Amir Patel
8af70480b3 qcacmn: Fix compilation issues
Fix compilation issues when QCA_KMEM_CACHE_SUPPORT
is not defined

CRs-Fixed: 3577327
Change-Id: I0715e6d5702aab793823a0b42c1eea5322eadb74
2023-08-03 13:17:47 -07:00
Aravind Kishore Sukla
348c432963 qcacmn: Enable CFG80211_MULTI_AKM_CONNECT_SUPPORT from kernelv6.0
Current code supports CFG80211_MULTI_AKM_CONNECT_SUPPORT only for
v5.15 kernel.

Enable this feature support from kernelv6.0 by default.

Change-Id: Ie0d36c6e6d286a432bcaa99ee905858e70297ba1
CRs-Fixed: 3577264
2023-08-03 10:04:39 -07:00
Guru Pratap Sharma
202f03603c qcacmn: Adding WLAN_VDEV_RATEMASK_TYPE_EHT in vdev ratemask type
Adding WLAN_VDEV_RATEMASK_TYPE_EHT in vdev ratemask type enum

Change-Id: I3a75b02eb059bd8c7f504ce46685f9c038a75c82
CRs-Fixed: 3573994
2023-08-03 10:04:27 -07:00
jingxiang ge
6b70bdc5b0 qcacmn: restructure function in target_if_free_psoc_tgt_info
Restructure memory free function so both win&mcl can call
it. to avoid memory free mismatch.

Change-Id: I31634f94421f30d74d2eaad44e5df089d489d67f
CRs-Fixed: 3572976
2023-08-03 10:04:15 -07:00
Jeevan Kukkalli
2e35a8785e qcacmn: Fix lite mon deallocation
Lite monitor deallocation should happen before mon rings deinit.
Call lite monitor dealloc function before mon rings deinit

Change-Id: I9b93945ccc092ff524555e8a4aa9cd2e3877f70f
CRs-Fixed: 3578630
2023-08-03 10:04:02 -07:00
Shreedhar Parande
15f840d145 qcacmn: Create bridge peer under bridge vdev
Create and attach bridge peer under bridge vdev for 4-link
MLD.

If there are no bridge VDEVs, fall back to existing mechanism.

Change-Id: I32187bcc849fbe36200967bb7f88dfa56c22c3dc
CRs-Fixed: 3574491
2023-08-03 10:03:49 -07:00
Sai Pavan Akhil Remella
ef71aa4c26 qcacmn: Handle TWT enable/disable failure status
When HOST based TWT is triggered from userspace, while disabling
congestion based TWT, disable/enable TWT may fail due to ongoing
roam operations in firmware. These changes return error code EBUSY
in failure case in vendor command context to userspace.

Change-Id: I3da64b6ea4dcf08cf80966cd7639d8945fe46417
CRs-Fixed: 3520189
2023-08-03 03:41:42 -07:00
Sheenam Monga
024eb9d419 qcacmn: Add support to deregister CP callback
Currently, get_infra_cp_stats callback of
infra_cp_stats_req_context is not updated to
NULL after processing the command.

Deregister get_infra_cp_stats callback
function after processing CP stats command.

Change-Id: I916a9432acd7f97aabe0db8ea1cae4228362a8f1
CRs-Fixed: 3577645
2023-08-03 03:41:31 -07:00
Himanshu Batra
c290e36c21 qcacmn: Setup max BA value for tids for mesh peers during peer add
Setup max BA value for tids for mesh peers during peer add

Change-Id: Ia18f5d65db819d87b81c217e5e11fba3316b8d16
CRs-Fixed: 3536290
2023-08-03 03:41:19 -07:00
Gaurav Saini
a211d644c5 qcacmn: Finding ast entry based on vdev
Currently,  ast entry is not found when VDEV ALL
is there. Change is finding the ast entry when
particular vdev is passed and, also when vdev
all is passed.

Change-Id: Ib71b843c74b9a64cb15f221577ee8e2d30614973
CRs-Fixed: 3575721
2023-08-02 17:59:04 -07:00